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,