nridge added a comment.

In D138546#4017356 <https://reviews.llvm.org/D138546#4017356>, @ArcsinX wrote:

> In other words, with this patch we preserve `--target=...`, but this option 
> can appear from 
> https://github.com/llvm/llvm-project/blob/main/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp#L253

Huh, I had no idea we had logic to add a `--target` flag there. (Nor that gcc 
does not recognize this option.)

@cpsauer just to double-check, in your case the `--target` flag is explicitly 
written in the `compile_commands.json`, and the idea is that in such case we 
want to pass it to the system include extractor (since it's safe to assume the 
compiler supports the flag in that case), but not in the case where we add it?

In D138546#4018119 <https://reviews.llvm.org/D138546#4018119>, @cpsauer wrote:

> probably we should be relayering things to operate on raw commands for query 
> driver?

Not quite **raw** commands: the fix for 
https://github.com/clangd/clangd/issues/1173 was to make sure the inferred 
language (e.g. `-x c++`) is added before query-driver, and the fix for 
https://github.com/clangd/clangd/issues/1089 was to make sure that edits from 
the config file are applied before query-driver (because `Compiler` can be 
overridden there).

But I think we could achieve the intended effect by removing the call to 
`inferTargetAndDriverMode()` from `GlobalCompilationDatabase.cpp`, and instead 
performing the equivalent logic in `CommandMangler`, //after// invoking the 
`SystemIncludeExtractor`?

Any thoughts on whether that would be reasonable / whether it would break 
anything else, are welcome.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138546/new/

https://reviews.llvm.org/D138546

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to