diff options
-rw-r--r-- | include/clang/AST/DeclGroup.h | 1 | ||||
-rw-r--r-- | lib/Sema/SemaStmt.cpp | 5 |
2 files changed, 4 insertions, 2 deletions
diff --git a/include/clang/AST/DeclGroup.h b/include/clang/AST/DeclGroup.h index 1a8546339b..65666899e2 100644 --- a/include/clang/AST/DeclGroup.h +++ b/include/clang/AST/DeclGroup.h @@ -84,6 +84,7 @@ public: typedef Decl** iterator; typedef Decl* const * const_iterator; + bool isNull() const { return D == 0; } bool isSingleDecl() const { return getKind() == SingleDeclKind; } bool isDeclGroup() const { return getKind() == DeclGroupKind; } diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp index d2e158658c..1428c48847 100644 --- a/lib/Sema/SemaStmt.cpp +++ b/lib/Sema/SemaStmt.cpp @@ -40,10 +40,11 @@ Sema::OwningStmtResult Sema::ActOnNullStmt(SourceLocation SemiLoc) { Sema::OwningStmtResult Sema::ActOnDeclStmt(DeclGroupPtrTy dg, SourceLocation StartLoc, SourceLocation EndLoc) { + DeclGroupRef DG = dg.getAsVal<DeclGroupRef>(); + // If we have an invalid decl, just return an error. - if (!dg) return StmtError(); + if (DG.isNull()) return StmtError(); - DeclGroupRef DG = dg.getAsVal<DeclGroupRef>(); return Owned(new (Context) DeclStmt(DG, StartLoc, EndLoc)); } |