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