Bug 3350

Summary: another ICE (Error reporting routines re-entered)
Product: Sisyphus Reporter: Alexey Voinov <voins>
Component: gcc3.2-c++Assignee: Dmitry V. Levin <ldv>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2    
Version: unstable   
Hardware: all   
OS: Linux   

Description Alexey Voinov 2003-12-07 20:54:43 MSK
$ cat > a.cc
template <typename T> struct struct1: public T
{ struct1() : T() {} };
void g(void) { struct1<int *> c; }

$ g++ a.cc
a.cc: In instantiation of `struct1<int*>':
a.cc:3:   instantiated from here
a.cc:3: base type `int*' fails to be a struct or class type
a.cc: In constructor `struct1<T>::struct1() [with T = int*]':
a.cc:3:   instantiated from here
a.cc:2: type `
Internal compiler error: Error reporting routines re-entered.
Comment 1 Alexey Voinov 2003-12-30 14:40:52 MSK
$ g++-3.3 test.cc
test.cc: In instantiation of `struct1<int*>':
test.cc:3:   instantiated from here
test.cc:3: error: base type `int*' fails to be a struct or class type
test.cc: In constructor `struct1<T>::struct1() [with T = int*]':
test.cc:3:   instantiated from here
test.cc:2: error: type `
Internal compiler error: Error reporting routines re-entered.
Comment 2 Alexey Voinov 2005-01-11 18:35:54 MSK
still in gcc3.4
Comment 3 Dmitry V. Levin 2006-05-27 04:04:16 MSD
Fixed in g++ 4.1.1:
a.cc: In instantiation of 'struct1<int*>':
a.cc:3:   instantiated from here
a.cc:2: error: base type 'int*' fails to be a struct or class type
a.cc: In constructor 'struct1<T>::struct1() [with T = int*]':
a.cc:3:   instantiated from here
a.cc:2: error: type 'int*' is not a direct base of 'struct1<int*>'
Comment 4 Dmitry V. Levin 2006-05-27 04:04:34 MSD
Fixed in g++ 4.1.1:
a.cc: In instantiation of 'struct1<int*>':
a.cc:3:   instantiated from here
a.cc:2: error: base type 'int*' fails to be a struct or class type
a.cc: In constructor 'struct1<T>::struct1() [with T = int*]':
a.cc:3:   instantiated from here
a.cc:2: error: type 'int*' is not a direct base of 'struct1<int*>'