[clang-tools-extra] [clangd] Report retired flags after parsing (PR #226360)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 24 22:31:56 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clangd
Author: Fangrui Song (MaskRay)
<details>
<summary>Changes</summary>
cl::callback will be removed to enable migration to TableGen
https://discourse.llvm.org/t/rfc-declare-library-command-line-options-in-tablegen-one-struct-per-library/91877/3
LLM-aided
---
Full diff: https://github.com/llvm/llvm-project/pull/226360.diff
1 Files Affected:
- (modified) clang-tools-extra/clangd/tool/ClangdMain.cpp (+9-5)
``````````diff
diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp
index 13fe4d3911731d..2446162fc4ce13 100644
--- a/clang-tools-extra/clangd/tool/ClangdMain.cpp
+++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp
@@ -91,16 +91,16 @@ OptionCategory Retired("clangd flags no longer in use");
const OptionCategory *ClangdCategories[] = {&Features, &Protocol,
&CompileCommands, &Misc, &Retired};
+std::vector<const llvm::cl::Option *> RetiredOptions;
+
template <typename T> class RetiredFlag {
opt<T> Option;
public:
RetiredFlag(llvm::StringRef Name)
- : Option(Name, cat(Retired), desc("Obsolete flag, ignored"), Hidden,
- llvm::cl::callback([Name](const T &) {
- llvm::errs()
- << "The flag `-" << Name << "` is obsolete and ignored.\n";
- })) {}
+ : Option(Name, cat(Retired), desc("Obsolete flag, ignored"), Hidden) {
+ RetiredOptions.push_back(&Option);
+ }
};
enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs };
@@ -798,6 +798,10 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var
llvm::cl::HideUnrelatedOptions(ClangdCategories);
llvm::cl::ParseCommandLineOptions(argc, argv, Overview, /*Errs=*/nullptr,
/*VFS=*/nullptr, FlagsEnvVar);
+ for (const llvm::cl::Option *O : RetiredOptions)
+ if (O->getNumOccurrences())
+ llvm::errs() << "The flag `-" << O->ArgStr
+ << "` is obsolete and ignored.\n";
if (Test) {
if (!Sync.getNumOccurrences())
Sync = true;
``````````
</details>
https://github.com/llvm/llvm-project/pull/226360
More information about the cfe-commits
mailing list