mark the declspec as invalid when we recover instead of forcing to int,
this allows downstream diags to be properly silenced.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68917 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index ae00ada..5b8963f 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -681,9 +681,10 @@
         }
         
         // Since this is almost certainly an invalid type name, emit a
-        // diagnostic that says it, eat the token, and pretend we saw an 'int'.
+        // diagnostic that says it, eat the token, and mark the declspec as
+        // invalid.
         Diag(Loc, diag::err_unknown_typename) << Tok.getIdentifierInfo();
-        DS.SetTypeSpecType(DeclSpec::TST_int, Loc, PrevSpec);
+        DS.SetTypeSpecType(DeclSpec::TST_error, Loc, PrevSpec);
         DS.SetRangeEnd(Tok.getLocation());
         ConsumeToken();
         
@@ -691,7 +692,6 @@
         // avoid rippling error messages on subsequent uses of the same type,
         // could be useful if #include was forgotten.
         
-        // FIXME: Mark DeclSpec as invalid.
         goto DoneWithDeclSpec;
       }