]> granicus.if.org Git - clang/commitdiff
Assert that tag decls are never marked (in)valid after definition is complete
authorAlp Toker <alp@nuanti.com>
Sat, 21 Dec 2013 01:10:54 +0000 (01:10 +0000)
committerAlp Toker <alp@nuanti.com>
Sat, 21 Dec 2013 01:10:54 +0000 (01:10 +0000)
Sema relies on this assumption.

Follow-up to r197848.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197850 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/DeclBase.cpp

index 4eceda4fac0f616a3cfa4c1fa3adec794405ce0f..8e7373631dbbbea7437216defd76b3b15b02662e 100644 (file)
@@ -85,6 +85,7 @@ const char *Decl::getDeclKindName() const {
 
 void Decl::setInvalidDecl(bool Invalid) {
   InvalidDecl = Invalid;
+  assert(!isa<TagDecl>(this) || !cast<TagDecl>(this)->isCompleteDefinition());
   if (Invalid && !isa<ParmVarDecl>(this)) {
     // Defensive maneuver for ill-formed code: we're likely not to make it to
     // a point where we set the access specifier, so default it to "public"