[PATCH] D140960: [clangd] Disable backend-releated filelist compiler options.
Haojian Wu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 4 04:04:17 PST 2023
hokein updated this revision to Diff 486231.
hokein marked an inline comment as done.
hokein added a comment.
address comment.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D140960/new/
https://reviews.llvm.org/D140960
Files:
clang-tools-extra/clangd/Compiler.cpp
clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
Index: clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
===================================================================
--- clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
+++ clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
@@ -824,6 +824,19 @@
EXPECT_THAT(*TU.build().getDiagnostics(), IsEmpty());
}
+TEST(DiagnosticTest, IgnoreBEFilelistOptions) {
+ auto TU = TestTU::withCode("");
+ TU.ExtraArgs.push_back("-Xclang");
+ for (const auto *DisableOption :
+ {"-fsanitize-ignorelist=null", "-fprofile-list=null",
+ "-fxray-always-instrument=null", "-fxray-never-instrument=null",
+ "-fxray-attr-list=null"}) {
+ TU.ExtraArgs.push_back(DisableOption);
+ EXPECT_THAT(*TU.build().getDiagnostics(), IsEmpty());
+ TU.ExtraArgs.pop_back();
+ }
+}
+
// Recursive main-file include is diagnosed, and doesn't crash.
TEST(DiagnosticsTest, RecursivePreamble) {
auto TU = TestTU::withCode(R"cpp(
Index: clang-tools-extra/clangd/Compiler.cpp
===================================================================
--- clang-tools-extra/clangd/Compiler.cpp
+++ clang-tools-extra/clangd/Compiler.cpp
@@ -80,6 +80,15 @@
CI.getFrontendOpts().PluginArgs.clear();
CI.getFrontendOpts().ProgramAction = frontend::ParseSyntaxOnly;
CI.getFrontendOpts().ActionName.clear();
+
+ // These options mostly affect codegen, and aren't relevant to clangd. And
+ // clang will die immediately when these files are not existed.
+ // Disable these uninteresting options to make clangd more robust.
+ CI.getLangOpts()->NoSanitizeFiles.clear();
+ CI.getLangOpts()->XRayAttrListFiles.clear();
+ CI.getLangOpts()->ProfileListFiles.clear();
+ CI.getLangOpts()->XRayAlwaysInstrumentFiles.clear();
+ CI.getLangOpts()->XRayNeverInstrumentFiles.clear();
}
std::unique_ptr<CompilerInvocation>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D140960.486231.patch
Type: text/x-patch
Size: 1836 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230104/8bcf59a7/attachment.bin>
More information about the cfe-commits
mailing list