a few minor cleanups


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63000 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Lex/PPDirectives.cpp b/lib/Lex/PPDirectives.cpp
index 4ab293b..1c8f7f1 100644
--- a/lib/Lex/PPDirectives.cpp
+++ b/lib/Lex/PPDirectives.cpp
@@ -629,10 +629,12 @@
   // FIXME: do something with the #line info.
 }
 
-
+/// HandleUserDiagnosticDirective - Handle a #warning or #error directive.
+///
 void Preprocessor::HandleUserDiagnosticDirective(Token &Tok, 
                                                  bool isWarning) {
-  if (!CurLexer)
+  // PTH doesn't emit #warning or #error directives.
+  if (CurPTHLexer)
     return CurPTHLexer->DiscardToEndOfLine();
 
   // Read the rest of the line raw.  We do this because we don't want macros
@@ -661,6 +663,8 @@
   if (StrTok.isNot(tok::string_literal) &&
       StrTok.isNot(tok::wide_string_literal)) {
     Diag(StrTok, diag::err_pp_malformed_ident);
+    if (StrTok.isNot(tok::eom))
+      DiscardUntilEndOfDirective();
     return;
   }