re PR c++/27667 (ICE with in-class specialization)
authorLee Millward <lee.millward@codesourcery.com>
Mon, 25 Sep 2006 19:58:10 +0000 (19:58 +0000)
committerLee Millward <lmillward@gcc.gnu.org>
Mon, 25 Sep 2006 19:58:10 +0000 (19:58 +0000)
commit9b910171a09f1ea69821c0c8a7f53cc0c33401f7
tree2c56dcc26e3d0df9849f035f979db2f24b1c0063
parent60feef2c2dd41cc6c6e9cd492c3e1199595326d8
re PR c++/27667 (ICE with in-class specialization)

        PR c++/27667
        * cp-tree.h (begin_specialization): Return bool instead of void.
        * pt.c (check_specialization_scope): Likwise. Adjust comment.
        Return false if a specialization isn't permitted in the current scope,.
        (begin_specialization): Use the return value of
        check_specialization_scope.
        * parser.c (cp_parser_explicit_specialization): If
        begin_specialization returned false, skip the rest of the
        specialization.

        * g++.dg/template/spec33.C: New test.
        * g++.old-deja/g++.pt/spec20.C: Adjust error markers.

From-SVN: r117206
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/parser.c
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/spec33.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/spec20.C