[cairo-bugs] [Bug 31677] FYI: cairo-bentley-ottmann.c triggers bug in GCC 3.4.6 on Solaris/sparc

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Nov 25 02:52:29 PST 2010


https://bugs.freedesktop.org/show_bug.cgi?id=31677

--- Comment #2 from M Joonas Pihlaja <jpihlaja at cc.helsinki.fi> 2010-11-25 02:52:27 PST ---
We were aware of this bug but in the final rush to 1.10 decided it wasn't
really worth pursuing internal compiler errors further, especially for gcc that
old.  Having looked at it some more now, it seems that the problem stems from
gcc 3.4's buggy support for the __uint128_t datatype.  The following code
triggers the bug as well:


#include <stdlib.h>
#include <inttypes.h>

int
main(int argc, char **argv)
{ 
  __uint128_t a = atol(argv[1]);
  a *= a;
  return 0;
}


As a workaround, you could disable using intrinsic 128 bit arithmetic in the
cairo-wideint-type-private.h header by commenting out the block following the
comment "/* gcc has a non-standard name */".  The problem had been fixed in
later gcc releases, but I'm told gcc 4.5 has regressed.  A more robust fix
(probably a link test for the wideint code) is needed avoid future regressions.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the cairo-bugs mailing list