This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


>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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]