Bugs item #2535084, was opened at 2009-01-25 01:59 Message generated for change (Comment added) made by paulmcq You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=616200&aid=2535084&group_id=96864
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Den Ivanov (dsdiv) Assigned to: Nobody/Anonymous (nobody) Summary: re2c 0.13.5 not compile with Sun C Initial Comment: re2c 0.13.5 not compile with Sun C compiler at Solaris 10 x64: CC -DHAVE_CONFIG_H -I. -g -c -o parser.o parser.cc "parser.y", line 98: Warning (Anachronism): Assigning std::pair<unsigned, re2c::RuleOp*> to std::pair<int, re2c::RegExp*>. "parser.y", line 98: Error: Cannot cast from std::pair<unsigned, re2c::RuleOp*> to std::pair<int, re2c::RegExp*>. 1 Error(s) and 1 Warning(s) detected. Compiler version: "Sun C 5.8 Patch 121016-07 2007/10/03" ---------------------------------------------------------------------- Comment By: Paul McQuesten (paulmcq) Date: 2011-05-24 00:57 Message: Note that the patch proposed by davidmarker on 2010-10-04 is dangerous: it assumes that an 'int' is as big as a 'size_t', which is not true for the default x86_64 memory models on Linux where int is 4 bytes but size_t is 8. ---------------------------------------------------------------------- Comment By: Paul McQuesten (paulmcq) Date: 2011-01-09 21:52 Message: I do not have your compilers, so cannot really check, but I think the proposed patch just hides a symptom. I think the actual fix should be on line 495 of re.h. Change first member of NRegExp to size_t: from: typedef std::pair<int, RegExp*> NRegExp; to: typedef std::pair<size_t, RegExp*> NRegExp; The second member is okay as is, because RuleOp is a derived class of RegExp. ---------------------------------------------------------------------- Comment By: David Marker (davidmarker) Date: 2010-10-04 13:35 Message: Hit same issue, resolved it with this patch (but haven't tested yet, just got it to build): --- parser.cc-orig Mon Oct 4 14:22:39 2010 +++ parser.cc Mon Oct 4 14:21:17 2010 @@ -198,7 +198,8 @@ else { size_t nIndex = specMap.size() + 1; // 0 is reserved for "0"-spec - specMap[*it] = std::make_pair(nIndex, rule); + //specMap[*it] = std::make_pair(nIndex, rule); + specMap[*it] = std::make_pair((int)nIndex, static_cast<RegExp*>(rule)); } } ---------------------------------------------------------------------- Comment By: Thomas Wagner (tom68) Date: 2009-02-13 05:41 Message: it is the same with sparc and "Sun Ceres C 5.10 SunOS_sparc 2008/10/22" (SunStudioExpress): pkgbuild: /opt/SUNWspro/bin/CC -DHAVE_CONFIG_H -I. -g -c -o parser.o parser.cc pkgbuild: "parser.y", line 98: Warning (Anachronism): Assigning std::pair<unsigned, re2c::RuleOp*> to std::pair<int, re2c::RegExp*>. pkgbuild: "parser.y", line 98: Error: Cannot cast from std::pair<unsigned, re2c::RuleOp*> to std::pair<int, re2c::RegExp*>. pkgbuild: 1 Error(s) and 1 Warning(s) detected. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=616200&aid=2535084&group_id=96864 ------------------------------------------------------------------------------ vRanger cuts backup time in half-while increasing security. With the market-leading solution for virtual backup and recovery, you get blazing-fast, flexible, and affordable data protection. Download your free trial now. http://p.sf.net/sfu/quest-d2dcopy1 _______________________________________________ Re2c-general mailing list Re2c-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/re2c-general