c++/8591: g++ crashes while instantiating templates

bangerth@dealii.org bangerth@dealii.org
Fri Nov 15 08:52:00 GMT 2002

Synopsis: g++ crashes while instantiating templates

State-Changed-From-To: open->analyzed
State-Changed-By: bangerth
State-Changed-When: Fri Nov 15 08:52:05 2002
    Confirmed. A reduced testcase is
    namespace NS {
      template <class T1, class T2, class T3 = int, class T4 = int>
      struct C {};
    template <class T> class X {
        friend class NS::C;
    X<int> c;
    I get a segfault:
    tmp/g> /home/bangerth/bin/gcc-3.3x-pre/bin/g++ -c x.cc
    x.cc: In instantiation of `X<int>':
    x.cc:10:   instantiated from here
    x.cc:6: internal compiler error: Speicherzugriffsfehler
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
    This is for all versions of gcc, including present CVS.
    My list of similar reports (friends and templates and/or 
    namespaces) includes PRs 8355, 8280, 8099, 53, 641, 765, 
    1016, 6256. The last one may be the closest.
    By the way, the code is illegal, since you have to declare
    the friend as
      template <...> friend class NS::C;
    Fixing this makes the ICE go away.


More information about the Gcc-bugs mailing list