[modules] Add a comment to explain why -E leaves some #includes in the preprocessed...
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 8 Apr 2016 01:23:59 +0000 (01:23 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 8 Apr 2016 01:23:59 +0000 (01:23 +0000)
llvm-svn: 265766

clang/lib/Frontend/PrintPreprocessedOutput.cpp
clang/test/Modules/preprocess.cpp

index 9524b58..77b80e6 100644 (file)
@@ -336,7 +336,9 @@ void PrintPPOutputPPCallbacks::InclusionDirective(SourceLocation HashLoc,
       OS << "#include "
          << (IsAngled ? '<' : '"')
          << FileName
-         << (IsAngled ? '>' : '"');
+         << (IsAngled ? '>' : '"')
+         << " /* clang -E: implicit import for module "
+         << Imported->getFullModuleName() << " */";
     }
     // Since we want a newline after the @import, but not a #<line>, start a new
     // line immediately.
index aa28191..0615331 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: rm -rf %t
 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -x c++ -E %s | \
-// RUN:   FileCheck -strict-whitespace %s --check-prefix=CHECK --check-prefix=CXX
+// RUN:   FileCheck -strict-whitespace %s --check-prefix=CHECK --check-prefix=CXX --check-prefix=CXX-DASHE
 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -x objective-c -E %s | \
 // RUN:   FileCheck -strict-whitespace %s --check-prefix=CHECK --check-prefix=OBJC
 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -x c++ -E -frewrite-includes %s | \
@@ -14,7 +14,9 @@ foo bar baz
 // The weird {{ }} here is to prevent the -frewrite-includes test from matching its own CHECK lines.
 
 // CXX: #include{{ }}"dummy.h"
+// CXX-DASHE-SAME: /* clang -E: implicit import for module dummy */
 // CXX: #include{{ }}"dummy.h"
+// CXX-DASHE-SAME: /* clang -E: implicit import for module dummy */
 // CXX: foo bar baz
 
 // OBJC: @import{{ }}dummy; /* clang