<div dir="ltr"><div>Thanks for describing the setup. Clang is generally good at mocking GCC rules for searching includes and such, but only for widely used targets (e.g. gcc targeting linux).</div><div>However, this does not seem to work as nicely for less supported toolchains (like the bare-metal arm toolchain you're using).</div><div><br></div><a class="gmail_plusreply" id="plusReplyChip-0" href="mailto:kadircet@google.com" tabindex="-1">+Kadir Çetinkaya</a> is working on adding a cquery-like configuration mechanism to clangd, that should address your use-case. And in general, this seems to be a reasonable<div>fallback mechanism in case we hit a toolchain not well-supported by clang.</div><div>At the same time, adding better support for bare-metal arm into clang's driver would give other benefits:</div><div>- other clang-based tools, like clang-tidy, would work without extra configuration;</div><div>- would allow to more closely mimic various non-include-path flags, which could also affect correctness for some corner cases;</div><div>- allow easy switching (no extra flags needed, etc) from gcc to clang for the actual builds.</div><div><br></div><div>But we don't plan to put more effort of the clangd team into the bare-metal toolchain's driver. Hopefully someone else will improve this in the future.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 11, 2019 at 9:40 PM Michael Steinberg <<a href="mailto:michsteinb@gmail.com">michsteinb@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>Hi there,</p>
<p>- I use cmake + ninja, which generates the necessary
compile_commands file.<br>
- I mentioned cquery, which opts to query the compiler found in
compile_commands for its builtins, as you can ask gcc to disclose
them<br>
- I would prefer not to be locked into actually using clang to
build the projects, and there are targets which clang does not
support<br>
- I could live really well with clangd ignoring inline assembly
and such, for which the syntax and availability of features
differs between clang and gcc<br>
</p>
<p>Kind Regards<br>
Michael<br>
</p>
<p><br>
</p>
<div class="gmail-m_581492412597620933moz-cite-prefix">Am 11.06.2019 um 16:13 schrieb Ilya
Biryukov:<br>
</div>
<blockquote type="cite">
<div dir="ltr">We don't really have alternatives to
compile_commands.json that support automatic indexing. You could
use 'compile_flags.txt', but the auto-indexing won't know which
files it should feed into.
<div><br>
</div>
<div>- What build system do you use and how did you generate the
compile_commands.json file?</div>
<div>- You mentioned ccls could index your project, did it work
out of the box? If it required user configuration, what was
it?</div>
<div><br>
</div>
<div>Clangd relies on clang's code to parse command line, which
is <b>mostly</b> compatible with GCC, but I'm not sure how it
handles custom GCC toolchains (and whether it handles those at
all).</div>
<div>In general, if you manage to set up your build so that it
uses clang and generate compile_commands.json from that
configuration - it should work just fine. </div>
<div><br>
</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sat, Jun 8, 2019 at 8:59 PM
Michael Steinberg via clangd-dev <<a href="mailto:clangd-dev@lists.llvm.org" target="_blank">clangd-dev@lists.llvm.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>Hello again,</p>
<p>is there maybe a way to add --include directives for the
clangd indexer only? I couldn't find any command line
option for this :( I don't really feel like adding around
400 defines through the commandline....</p>
<p>Regards<br>
Michael<br>
</p>
<p><br>
</p>
<div class="gmail-m_581492412597620933gmail-m_6038785356013037749moz-cite-prefix">Am
03.06.2019 um 11:52 schrieb Kadir Çetinkaya:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">Could you try adding "-log=verbose" to
clangd args? Which can be done by adding
<div>```<br>
<div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:"Droid Sans Mono",monospace,monospace,"Droid Sans Fallback";font-size:14px;line-height:19px;white-space:pre-wrap"><div> <span style="color:rgb(156,220,254)">"clangd.arguments"</span>: [</div><div> <span style="color:rgb(206,145,120)">"-log=verbose"</span>,</div><div> ],</div></div>
</div>
</div>
<div>```</div>
<div>to your settings.json. Then you should see the
diagnostics for those uncompilable errors.<br>
</div>
<div><br>
</div>
<div>Wild guess; it will most likely be fixed with: <a href="https://reviews.llvm.org/D62804" class="gmail-m_581492412597620933gmail-m_6038785356013037749cremed" target="_blank">https://reviews.llvm.org/D62804</a></div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sun, Jun 2, 2019
at 7:40 PM Michael Steinberg via clangd-dev <<a href="mailto:clangd-dev@lists.llvm.org" target="_blank">clangd-dev@lists.llvm.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi there,<br>
<br>
I'm trying to get clangd running inside vscode on
windows. The project <br>
is using the gnu-arm-none-eabi toolchain. For almost
all compilation <br>
units I get the error message "IndexingAction
failed: has uncompilable <br>
errors". Is there any way to get more infos about
the failure cause?<br>
<br>
Kind regards<br>
Michael<br>
<br>
<br>
_______________________________________________<br>
clangd-dev mailing list<br>
<a href="mailto:clangd-dev@lists.llvm.org" class="gmail-m_581492412597620933gmail-m_6038785356013037749cremed" target="_blank">clangd-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev" rel="noreferrer" class="gmail-m_581492412597620933gmail-m_6038785356013037749cremed" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev</a><br>
</blockquote>
</div>
</div>
</blockquote>
</div>
_______________________________________________<br>
clangd-dev mailing list<br>
<a href="mailto:clangd-dev@lists.llvm.org" target="_blank">clangd-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev</a><br>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr" class="gmail-m_581492412597620933gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>Regards,</div>
<div>Ilya Biryukov</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Regards,</div><div>Ilya Biryukov</div></div></div></div></div>