I stumbled upon this very unusual error. I don't know if it's worth investigating, since I'm note even sure that this is legal code: Anyway, GCC says: test.cpp:8: internal compiler error: in digest_init, at cp/typeck2.c:709 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://bugzilla.redhat.com/bugzilla> for instructions. Preprocessed source stored into /tmp/ccxi24ed.out file, please attach this to your bugreport. --------------------------- here is the offending code: --------------------------- #include <iostream> using namespace std; void paperino() { cout << __FUNCTION__ << endl; } void pippo() { cout << __FUNCTION__ << endl; } template<class T> void func(const T& x) { T other(x); other(); } int main() { func(paperino); func(&pippo); }
Created attachment 18233 [details] preprocessor output (I guess) compiler intermediate output
This was fixed in GCC 4.1.2.