Clean up after ourselves when there's an error parsing the base clause.
Fixes the crash-on-invalid in PR6629.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98698 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp
index 11f84ed..9e232cb 100644
--- a/lib/Parse/ParseDeclCXX.cpp
+++ b/lib/Parse/ParseDeclCXX.cpp
@@ -1520,6 +1520,9 @@
 
     if (!Tok.is(tok::l_brace)) {
       Diag(Tok, diag::err_expected_lbrace_after_base_specifiers);
+
+      if (TagDecl)
+        Actions.ActOnTagDefinitionError(CurScope, TagDecl);
       return;
     }
   }
@@ -1596,11 +1599,11 @@
     ParseLexedMethodDefs(getCurrentClass());
   }
 
+  Actions.ActOnTagFinishDefinition(CurScope, TagDecl, RBraceLoc);
+
   // Leave the class scope.
   ParsingDef.Pop();
   ClassScope.Exit();
-
-  Actions.ActOnTagFinishDefinition(CurScope, TagDecl, RBraceLoc);
 }
 
 /// ParseConstructorInitializer - Parse a C++ constructor initializer,