On Tue, Apr 18, 2023 at 1:36 PM Joel Fernandes <joel@xxxxxxxxxxxxxxxxx> wrote: > > On Fri, Apr 14, 2023 at 03:47:51PM -0700, Nick Desaulniers wrote: > > On Thu, Apr 13, 2023 at 5:53 PM Joel Fernandes <joel@xxxxxxxxxxxxxxxxx> wrote: > > > > > > Hello! > > > > > > I have been trying to get clangd working properly with tree_nocb.h. clangd > > > trips quite badly when trying to build tree_nocb.h to generate ASTs. > > > > Hi Joel, > > Thanks for the report. What are you using clangd for? I'll bet > > something interesting. > > Thanks for the response and sorry for the late reply. I am at the OSPM > conference. I use vim and vscode with clangd. In vim, YCM uses it to > highlight compiler errors live while editing, I am pretty happy with it so > far and has been a huge time saver. Enough that now I want to use it for > everything... Cool! I use vim, can you share more info about your set up for this? I'll have to try it. > > I first came across clangd when developing Chrome userspace code which is C++ > :). In Chrome, ninja builds can be made to output compile_commands.json. > However, now I noticed the support in the kernel and was like, wow I need to > try it. Further, YCM seems to work much better with it than without :) > > > I've never used it myself, so I don't know where to even begin with > > how to reproduce the issue. > > Ah ok. :). When I ran get_maintainer on the script, your name popped up and > someone also suggested that you're the goto person for clang on the kernel > (which I kind of already knew ;) You've cc'ed the right set of folks. We might not have the expertise related to clangd specifically, but we can point you in the right direction. > > > It might be worth filing a bug upstream at > > https://github.com/llvm/llvm-project/issues > > or internally under the component > > Language Platforms > C++ > Clang > Tools > Clangd > > with detailed steps to reproduce (and what the observed error actually > > is). Feel free to cc me, though I don't know the first thing about > > clangd. > > Ok I will consider doing this if needed. One thing I do observe is lack of > good support for header files and it is a known clangd issue [1]. > > However, the fixes I was proposing can purely be done in the kernel itself > since all it'd require is generating compile_compands.json with the -D<macro> > and editing files to keep clangd happy. I guess one question is, how welcome > would such changes to header files be since they're for tooling and isn't > code that will be compiled outside of clangd. Specifically your patch sites some log print that doesn't look indicative of a failure: https://github.com/llvm/llvm-project/blob/53430bfd5c9d0074dd6de06dccea366e1d40bce4/clang-tools-extra/clangd/TUScheduler.cpp#L903-L906 so something else is going on here. Just trying to make sure we root cause this. > > (Linked issue may not directly related to what I'm saying) > [1] https://discourse.llvm.org/t/header-file-heuristics-issue/1749 > > Thanks. > -- Thanks, ~Nick Desaulniers