finish the implementation of -imacros.  The driver still needs to be hooked up.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68640 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Lex/PPDirectives.cpp b/lib/Lex/PPDirectives.cpp
index 034d484..ba321a7 100644
--- a/lib/Lex/PPDirectives.cpp
+++ b/lib/Lex/PPDirectives.cpp
@@ -1050,8 +1050,7 @@
     return;
   }
   
-  // Verify that there is nothing after the filename, other than EOM.  Use the
-  // preprocessor to lex this in case lexing the filename entered a macro.
+  // Verify that there is nothing after the filename, other than EOM.
   CheckEndOfDirective("#include");
 
   // Check that we don't have infinite #include recursion.
@@ -1141,8 +1140,15 @@
     return;
   }
   
-  // TODO: implement me :)
-  DiscardUntilEndOfDirective();
+  // Treat this as a normal #include for checking purposes.  If this is
+  // successful, it will push a new lexer onto the include stack.
+  HandleIncludeDirective(IncludeMacrosTok, 0, false);
+  
+  Token TmpTok;
+  do {
+    Lex(TmpTok);
+    assert(TmpTok.isNot(tok::eof) && "Didn't find end of -imacros!");
+  } while (TmpTok.isNot(tok::hashhash));
 }
 
 //===----------------------------------------------------------------------===//