http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54980
--- Comment #3 from Dmitry G. Dyachenko <dimhen at gmail dot com> 2012-10-19 00:08:54 UTC --- and more $ cat 1.ii class A { }; template < int (*t_parser) () > class B { virtual int parse () { A a; t_parser (); } }; extern "C" int f (); class C:B < f > { }; void g () { new C; } $ cat 2.ii extern "C" int f (); char *a[] = { 0, 0 }; void bar (char *); int f () { int i; while (1) bar (a[i++]); }