diff options
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
| -rw-r--r-- | clang/lib/Parse/ParseDecl.cpp | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index cdc3506d5c68..6353e14bc41a 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -3252,6 +3252,9 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,            goto DoneWithDeclSpec;          if (isTypeConstraintAnnotation())            continue; +        if (NextToken().is(tok::annot_template_id)) +          // Might have been annotated by TryAnnotateTypeConstraint. +          continue;          // Eat the scope spec so the identifier is current.          ConsumeAnnotationToken();          ParsedAttributesWithRange Attrs(AttrFactory); @@ -3405,6 +3408,9 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,            goto DoneWithDeclSpec;          if (isTypeConstraintAnnotation())            continue; +        if (Tok.is(tok::annot_template_id)) +          // Might have been annotated by TryAnnotateTypeConstraint. +          continue;          ParsedAttributesWithRange Attrs(AttrFactory);          if (ParseImplicitInt(DS, nullptr, TemplateInfo, AS, DSContext, Attrs)) {            if (!Attrs.empty()) {  | 
