diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-03-25 00:13:59 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-03-25 00:13:59 +0000 |
commit | 212e81cc5151b3c42346e43cfd42499a53ffd39a (patch) | |
tree | 7a4b325abeaee060e9487f8fc2d3feb3623d4d56 /include/clang/Parse/Action.h | |
parent | 50de12f5783b57c74fd30ebfa3945181313625ff (diff) |
In Parser::ParseClassSpecifier, don't conflate a NULL declaration with
failure to perform a declaration. Instead, explicitly note semantic
failures that occur during template parsing with a DeclResult. Fixes
PR3872.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67659 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Parse/Action.h')
-rw-r--r-- | include/clang/Parse/Action.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/clang/Parse/Action.h b/include/clang/Parse/Action.h index 4ff1ac175d..bd47d9df08 100644 --- a/include/clang/Parse/Action.h +++ b/include/clang/Parse/Action.h @@ -85,6 +85,7 @@ public: typedef ActionResult<2> TypeResult; typedef ActionResult<3> BaseResult; typedef ActionResult<4> MemInitResult; + typedef ActionResult<5> DeclResult; /// Same, but with ownership. typedef ASTOwningResult<&ActionBase::DeleteExpr> OwningExprResult; @@ -1169,7 +1170,7 @@ public: /// \brief Process the declaration or definition of a class template /// with the given template parameter lists. - virtual DeclTy * + virtual DeclResult ActOnClassTemplate(Scope *S, unsigned TagSpec, TagKind TK, SourceLocation KWLoc, const CXXScopeSpec &SS, IdentifierInfo *Name, SourceLocation NameLoc, @@ -1247,7 +1248,7 @@ public: /// common for users to provide the wrong number of template /// parameter lists (such as a missing \c template<> prior to a /// specialization); the parser does not check this condition. - virtual DeclTy * + virtual DeclResult ActOnClassTemplateSpecialization(Scope *S, unsigned TagSpec, TagKind TK, SourceLocation KWLoc, const CXXScopeSpec &SS, |