http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54625
--- Comment #3 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-09-22 08:06:55 UTC --- Here is another example (this one triggers the same gcc_assert as in HJ's regression report): markus@x4 moz_lto_debug % < test.i float a; double sin (); update_filter () { a = sin (0); } markus@x4 moz_lto_debug % < test.ii extern "C" double sin (double); typedef double (*UnaryFunType) (double); class A { public: int hash (); void lookup (UnaryFunType p1) { int a = hash (); p1 (0); } }; A b, c; void math_sin_impl () { b.lookup (sin); } void js_math_sqrt () { c.lookup (0); } markus@x4 moz_lto_debug % gcc -o test.o -c -flto test.i markus@x4 moz_lto_debug % g++ -r -nostdlib test.o test.ii -flto -O2 In file included from test.ii:1:0, from :4: test.ii: In function ‘math_sin_impl’: test.ii:17:19: internal compiler error: in cgraph_clone_edge, at cgraphclones.c:123 b.lookup (sin); ^ Please submit a full bug report,