diff --git a/clang/include/clang/Frontend/Utils.h b/clang/include/clang/Frontend/Utils.h --- a/clang/include/clang/Frontend/Utils.h +++ b/clang/include/clang/Frontend/Utils.h @@ -206,7 +206,7 @@ /// This is used to replace -include with -include-pch in the cc1 args. /// FIXME: ProbePrecompiled=true is a poor, historical default. /// It misbehaves if the PCH file is from GCC, has the wrong version, etc. - bool ProbePrecompiled = true; + bool ProbePrecompiled = false; /// If set, the target is populated with the cc1 args produced by the driver. /// This may be populated even if createInvocation returns nullptr. std::vector *CC1Args = nullptr; diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -1732,6 +1732,7 @@ CreateInvocationOptions CIOpts; CIOpts.VFS = VFS; CIOpts.Diags = Diags; + CIOpts.ProbePrecompiled = true; // FIXME: historical default. Needed? CI = createInvocation(llvm::makeArrayRef(ArgBegin, ArgEnd), std::move(CIOpts)); if (!CI) diff --git a/clang/tools/c-index-test/core_main.cpp b/clang/tools/c-index-test/core_main.cpp --- a/clang/tools/c-index-test/core_main.cpp +++ b/clang/tools/c-index-test/core_main.cpp @@ -223,6 +223,7 @@ Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions)); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.ProbePrecompiled = true; // FIXME: historical default. Needed? auto CInvok = createInvocation(ArgsWithProgName, std::move(CIOpts)); if (!CInvok) return true; diff --git a/clang/tools/libclang/Indexing.cpp b/clang/tools/libclang/Indexing.cpp --- a/clang/tools/libclang/Indexing.cpp +++ b/clang/tools/libclang/Indexing.cpp @@ -510,6 +510,7 @@ CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.ProbePrecompiled = true; // FIXME: historical default. Needed? std::shared_ptr CInvok = createInvocation(*Args, std::move(CIOpts)); diff --git a/clang/unittests/Frontend/UtilsTest.cpp b/clang/unittests/Frontend/UtilsTest.cpp --- a/clang/unittests/Frontend/UtilsTest.cpp +++ b/clang/unittests/Frontend/UtilsTest.cpp @@ -48,20 +48,20 @@ llvm::IntrusiveRefCntPtr CommandLineDiagsEngine = clang::CompilerInstance::createDiagnostics(new DiagnosticOptions, &D, false); - // Default: ProbePrecompiled is true. + // Default: ProbePrecompiled=false CreateInvocationOptions CIOpts; CIOpts.Diags = CommandLineDiagsEngine; CIOpts.VFS = FS; std::unique_ptr CI = createInvocation(Args, CIOpts); ASSERT_TRUE(CI); - EXPECT_THAT(CI->getPreprocessorOpts().Includes, ElementsAre()); - EXPECT_EQ(CI->getPreprocessorOpts().ImplicitPCHInclude, "foo.h.pch"); + EXPECT_THAT(CI->getPreprocessorOpts().Includes, ElementsAre("foo.h")); + EXPECT_EQ(CI->getPreprocessorOpts().ImplicitPCHInclude, ""); - CIOpts.ProbePrecompiled = false; + CIOpts.ProbePrecompiled = true; CI = createInvocation(Args, CIOpts); ASSERT_TRUE(CI); - EXPECT_THAT(CI->getPreprocessorOpts().Includes, ElementsAre("foo.h")); - EXPECT_EQ(CI->getPreprocessorOpts().ImplicitPCHInclude, ""); + EXPECT_THAT(CI->getPreprocessorOpts().Includes, ElementsAre()); + EXPECT_EQ(CI->getPreprocessorOpts().ImplicitPCHInclude, "foo.h.pch"); } } // namespace