c++/5723: GCC 3.0.3 crashes when compiling template forward declaration

matthias@schlaffi.walpergenhaus matthias@schlaffi.walpergenhaus
Mon Feb 18 10:05:00 GMT 2002


>Number:         5723
>Category:       c++
>Synopsis:       GCC 3.0.3 crashes when compiling template forward declaration
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 18 09:46:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Matthias Kleinmann
>Release:        3.0.3
>Organization:
>Environment:
System: Linux 2.4.17-xfs #2 Sun Feb 3 19:44:37 CET 2002 i686 unknown
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc-3.0.3/configure --enable-threads --enable-languages=c,c++
>Description:
g++ segfaults if you correctly do a forward declaration of a class, wich was
previoulsy declared within a template class. Maybe it is not even legal code.
>How-To-Repeat:
compile this as t.cc with "g++ -save-temps t.cc" :

---
template <typename T>
class class1{class class2;};

template <typename T>
class class1<T>::class2;

int main(){return 0;}
---

to produce this t.ii:

---
# 1 "t.cc"
template <typename T>
class class1{class class2;};

template <typename T>
class class1<T>::class2;

int main(){return 0;}
---

and this error:

---
t.cc:5: Internal error: Segmentation fault
---


>Fix:
I do not see any need for such a forward declaration at all.

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list