diff options
author | Patrick Palka <ppalka@gcc.gnu.org> | 2016-09-19 18:12:36 +0000 |
---|---|---|
committer | Patrick Palka <ppalka@gcc.gnu.org> | 2016-09-19 18:12:36 +0000 |
commit | 6101a7ab878f784558c908d6e4773d49b0858e0e (patch) | |
tree | 418e0d7e8d09dbc87f2f70bec91de96afdb2fdff /gcc/cp/parser.c | |
parent | d0f5943566482b094ac600e63271c22ebf227c5f (diff) | |
download | gcc-6101a7ab878f784558c908d6e4773d49b0858e0e.zip gcc-6101a7ab878f784558c908d6e4773d49b0858e0e.tar.gz gcc-6101a7ab878f784558c908d6e4773d49b0858e0e.tar.bz2 |
Fix PR c++/77639 (ICE during error recovery)
gcc/cp/ChangeLog:
PR c++/77639
* parser.c (cp_parser_class_head): When
processing_template_parmlist, don't assume that the
class-head may start an explicit specialization.
gcc/testsuite/ChangeLog:
PR c++/77639
* g++.dg/template/error-recovery4.C: New test.
From-SVN: r240245
Diffstat (limited to 'gcc/cp/parser.c')
-rw-r--r-- | gcc/cp/parser.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index fb88021..c03b9c2 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -22025,6 +22025,7 @@ cp_parser_class_head (cp_parser* parser, it is not, try to recover gracefully. */ if (at_namespace_scope_p () && parser->num_template_parameter_lists == 0 + && !processing_template_parmlist && template_id_p) { /* Build a location of this form: |