ArcsinX wrote:

> > I'm not convinced that simply removing these flags would solve the problem. 
> > Clangd should be ignoring the flags, so they are noise on top of the 
> > behavior of clangd. As such, I would like to see confirmation first that 
> > this works without this change.
> 
> I have debugged many times. And have compared the command that clang++ used 
> with that gcc is using. Then I found these options are redundant. In fact, 
> clang++ also removes the mapfile in its commands, for example 
> @CMakeFiles/.../abc.modmap. So what I have changed is meaningful

It looks like we can just create `.clangd` config to remove these flags.
I.e.
```
CompileFlags:
  Remove: [-fmodule*, -fdeps-*]
```

And after that everything seems working fine

However, I also found that seem we don't forward command mangler right to 
modules dependency scanner, because I see some errors in logs:
```
E[10:34:07.505] Scanning modules dependencies for .../module-import/Use.cc 
failed: error: unknown argument: '-fmodules-ts'
error: unknown argument: '-fmodule-mapper=CMakeFiles/Use.dir/Use.cc.o.modmap'
error: unknown argument: '-fdeps-format=p1689r5'

E[10:34:07.506] The command line the scanning tool use is: /usr/bin/g++-14 
--driver-mode=g++ -O3 -DNDEBUG -std=gnu++20 -fmodules-ts 
-fmodule-mapper=CMakeFiles/Use.dir/Use.cc.o.modmap -MD -fdeps-format=p1689r
```

https://github.com/llvm/llvm-project/pull/200001
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to