g++ bug: Internal compile error: Error reporting routines re-entered
David Flynn
dav@chess.plus.com
Fri Feb 14 17:24:00 GMT 2003
g++ --version
g++ (GCC) 3.2
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Code:
class my_class {
public:
void f(int a, int b);
void f2(int a, (my_class::*f)(int b));
};
void my_class::f(int a, int b)
{
}
void my_class::f2(int a, void (my_class::*f)(int b))
{
(this->*blah)(a, 1);
}
int main(int argc, char* argv[])
{
my_class i;
i.f2(2, &my_class::f);
return 0;
}
Note that in the class definition for f2 a void is missing for f2's class
function parameter. This causes the following error:
test.cc:4: type specifier omitted for parameter `
Internal compiler error: Error reporting routines re-entered.
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
This only is a problem if there are previous parameters (here int a) and so
perhaps the , is confusing it.
David
More information about the Gcc-bugs
mailing list