Is there a way to pass a compile target flag to clangd? I primarily work with code cross-compiled using the Hexagon clang tool chain. The vanilla clang on my host PC generates a lot of errors for inline ASM code (e.g “unknown register name ‘r0’ in asm”). I noticed that I can pass “-ferror-limit=0” in compile_commands.json so that the number of diagnostics can exceed the default 20. This makes make wonder whether I can just tell clangd the target architecture. I tried but it seems architecture flags are ignored by clangd.
I verified that the official LLVM 9 binary can generate Hexgon code - e.g. “clang -target hexagon -c test.c” generates a valid .o output with hexagon assembly. So it seems not far fetched that one can make clangd support various registered targets of llvm. If this is possible and not implemented, I’d like to contribute.
Before migrating to clangd, I have been using libclang based plugin YouCompleteMe. This works out well for my purpose since I can switch libclang used by YCM with libclang from the Hexagon tool chain. Unfortunately, this is not possible with clangd.
Thanks for the great work!