[PATCH] D99523: [clangd] Use command line adjusters for inserting compile flags
Sam McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 1 03:26:50 PDT 2021
sammccall accepted this revision.
sammccall added a comment.
This revision is now accepted and ready to land.
Herald added a subscriber: cfe-commits.
Thanks for fixing!
================
Comment at: clang-tools-extra/clangd/CompileCommands.cpp:225
+ Cmd = tooling::getInsertArgumentAdjuster(
+ ToAppend, tooling::ArgumentInsertPosition::END)(Cmd, "");
----------------
This extra copy is really silly :-(
please `move(ToAppend)` and make the whole thing conditional on `!ToAppend.empty()` (even though that'll be pretty much always...). Sadly move(Cmd) won't work.
One day if we feel like shaving a yak, we could add migrate to an ArgsAdjuster interface that takes a mutable CompileCommand&...
================
Comment at: clang-tools-extra/clangd/ConfigCompile.cpp:271
Out.Apply.push_back([Add(std::move(Add))](const Params &, Config &C) {
C.CompileFlags.Edits.push_back([Add](std::vector<std::string> &Args) {
+ auto It = llvm::find(Args, "--");
----------------
Hmm, with this new logic in place, if we "normalized" command lines by moving the filename to the end, we'd resolve https://github.com/clangd/clangd/issues/555 without having to complicate the config file model.
I wonder how hard that is...
================
Comment at: clang-tools-extra/clangd/ConfigCompile.cpp:272
C.CompileFlags.Edits.push_back([Add](std::vector<std::string> &Args) {
- Args.insert(Args.end(), Add.begin(), Add.end());
+ auto It = llvm::find(Args, "--");
+ Args.insert(It, Add.begin(), Add.end());
----------------
maybe a comment "The point to insert at - usually the end"?
(Since this looks suspiciously like an unhandled error case)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99523/new/
https://reviews.llvm.org/D99523
More information about the cfe-commits
mailing list