Author: Kadir Cetinkaya Date: 2021-07-23T17:15:05+02:00 New Revision: d2a6ec8eae75b60081e081eeb37022839f4f2d04
URL: https://github.com/llvm/llvm-project/commit/d2a6ec8eae75b60081e081eeb37022839f4f2d04 DIFF: https://github.com/llvm/llvm-project/commit/d2a6ec8eae75b60081e081eeb37022839f4f2d04.diff LOG: [clangd] Use CommandMangler in TestTU This makes testing setup look closer to production. Differential Revision: https://reviews.llvm.org/D106535 Added: Modified: clang-tools-extra/clangd/unittests/TestTU.cpp clang/lib/Frontend/CreateInvocationFromCommandLine.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/unittests/TestTU.cpp b/clang-tools-extra/clangd/unittests/TestTU.cpp index cb258a5ccb549..052603ce6851a 100644 --- a/clang-tools-extra/clangd/unittests/TestTU.cpp +++ b/clang-tools-extra/clangd/unittests/TestTU.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// #include "TestTU.h" +#include "CompileCommands.h" #include "Compiler.h" #include "Diagnostics.h" #include "TestFS.h" @@ -56,6 +57,9 @@ ParseInputs TestTU::inputs(MockFS &FS) const { // Put the file name at the end -- this allows the extra arg (-xc++) to // override the language setting. Argv.push_back(FullFilename); + + auto Mangler = CommandMangler::forTests(); + Mangler.adjust(Inputs.CompileCommand.CommandLine); Inputs.CompileCommand.Filename = FullFilename; Inputs.CompileCommand.Directory = testRoot(); Inputs.Contents = Code; diff --git a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp index ff0aa6faf33f6..2e23ebfdf1602 100644 --- a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp +++ b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp @@ -10,15 +10,17 @@ // //===----------------------------------------------------------------------===// -#include "clang/Frontend/Utils.h" #include "clang/Basic/DiagnosticOptions.h" +#include "clang/Driver/Action.h" #include "clang/Driver/Compilation.h" #include "clang/Driver/Driver.h" -#include "clang/Driver/Action.h" #include "clang/Driver/Options.h" #include "clang/Driver/Tool.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendDiagnostic.h" +#include "clang/Frontend/Utils.h" +#include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/StringRef.h" #include "llvm/Option/ArgList.h" #include "llvm/Support/Host.h" using namespace clang; @@ -37,7 +39,10 @@ std::unique_ptr<CompilerInvocation> clang::createInvocationFromCommandLine( SmallVector<const char *, 16> Args(ArgList.begin(), ArgList.end()); // FIXME: Find a cleaner way to force the driver into restricted modes. - Args.push_back("-fsyntax-only"); + Args.insert( + llvm::find_if( + Args, [](const char *Elem) { return llvm::StringRef(Elem) == "--"; }), + "-fsyntax-only"); // FIXME: We shouldn't have to pass in the path info. driver::Driver TheDriver(Args[0], llvm::sys::getDefaultTargetTriple(), *Diags, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits