From 149d9522fb6579008ac79213c620ab1549dbc50b Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Wed, 23 Mar 2016 18:00:22 +0000 Subject: clang-cl: Include /FI headers in /showIncludes output. -H in gcc mode doesn't print -include headers, but they are included in depfiles written by MMD and friends. Since /showIncludes is what's used instead of depfiles, printing /FI there seems important (and matches cl.exe). Instead of giving HeaderIncludeGen more options, just switch on ShowAllHeaders in clang-cl mode and let clang::InitializePreprocessor() not put -include flags in the block. This changes the behavior of -E slightly, and it removes the flag from the output triggered by setting the obscure CC_PRINT_HEADERS=1 env var to true while running clang. Both of these seem ok to change. http://reviews.llvm.org/D18401 llvm-svn: 264174 --- clang/lib/Frontend/InitPreprocessor.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'clang/lib/Frontend/InitPreprocessor.cpp') diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 6a70b9010c4..403a5c9ed0f 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -972,6 +972,10 @@ void clang::InitializePreprocessor( PP.getDiagnostics()); } + // Exit the command line and go back to (2 is LC_LEAVE). + if (!PP.getLangOpts().AsmPreprocessor) + Builder.append("# 1 \"\" 2"); + // If -imacros are specified, include them now. These are processed before // any -include directives. for (unsigned i = 0, e = InitOpts.MacroIncludes.size(); i != e; ++i) @@ -990,10 +994,6 @@ void clang::InitializePreprocessor( AddImplicitInclude(Builder, Path); } - // Exit the command line and go back to (2 is LC_LEAVE). - if (!PP.getLangOpts().AsmPreprocessor) - Builder.append("# 1 \"\" 2"); - // Instruct the preprocessor to skip the preamble. PP.setSkipMainFilePreamble(InitOpts.PrecompiledPreambleBytes.first, InitOpts.PrecompiledPreambleBytes.second); -- cgit v1.2.3