[clang] d2a6ec8 - [clangd] Use CommandMangler in TestTU
Kadir Cetinkaya via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 23 08:15:51 PDT 2021
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,
More information about the cfe-commits
mailing list