$ cat ice.ii class A; class B { }; extern const double NaN; B foo(A* exec, double d); inline B baz(A* a) { return foo(a, NaN); } B bar(A* a) { return baz(a); } extern const double NaN = (__builtin_nanf(""));
$ ./xgcc -B. -m4 -ml -fvisibility=hidden -O2 -finline-functions ice.ii ice.ii: In function 'B baz(A*)': ice.ii:11: internal compiler error: in set_lattice_value, at tree-ssa-ccp.c:468 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $ ./xgcc -v Using built-in specs. Target: sh4-unknown-linux-gnu Configured with: ../configure --build=i486-build_pc-linux-gnu --host=i486-build_pc-linux-gnu --target=sh4-unknown-linux-gnu --prefix=/home/ryan/crosstool-ng-1.3.1/targets/sh4-unknown-linux-gnu/build/gcc-core-static --with-local-prefix=/home/ryan/x-tools/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sys-root --disable-multilib --with-sysroot=/home/ryan/x-tools/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sys-root --with-newlib --enable-threads=no --disable-shared --enable-__cxa_atexit --disable-nls --enable-symvers=gnu --enable-languages=c++ --enable-target-optspace Thread model: single gcc version 4.5.0 20090413 (experimental) [trunk revision 146016] (GCC) I also reproduced the ICE in 4.3.3 and 4.4.0 -- Summary: ICE in set_lattice_value, at tree-ssa-ccp.c:468 Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rmansfield at qnx dot com GCC build triplet: i486-build_pc-linux-gnu GCC host triplet: i486-build_pc-linux-gnu GCC target triplet: sh4-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39764