c++/9453: [3.4 regression] ICE in is_specialization_of, at cp/pt.c:860

bangerth@ticam.utexas.edu bangerth@ticam.utexas.edu
Mon Jan 27 16:26:00 GMT 2003


>Number:         9453
>Category:       c++
>Synopsis:       [3.4 regression] ICE in is_specialization_of, at cp/pt.c:860
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Mon Jan 27 16:06:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Wolfgang Bangerth
>Release:        unknown-1.0
>Organization:
>Environment:
3.4
>Description:
This is a regression on 3.4:
------------------------
template <typename> class X {
  private:
    struct Inner;

    template <typename R>
    friend typename X<R>::Inner * foo () { return 0; };
};
template class X<void>;

struct U {
    void bar () { foo<void> (); };
};
-------------------------

g/a> /home/bangerth/bin/gcc-3.4-pre/bin/c++ -c bug33-1.cc
bug33-1.cc: In function `typename X<R>::Inner* foo()':
bug33-1.cc:6: internal compiler error: in is_specialization_of, at cp/pt.c:860
Please submit a full bug report,

The code does compile with 3.2.2, so this is a regression.
Presently, the code does not compile with 3.3, but that is
a separate matter: Kriang has fixed this on the mainline,
but apparently the fix has not been backported to 3.3, 
although the patch that caused this has been applied to 3.3.
I'll contact him separately about this.

W,
>How-To-Repeat:

>Fix:

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



More information about the Gcc-bugs mailing list