kadircet added a comment.

Hi @topisani, thanks for working on clangd!

Yes that bug fell through the cracks since the logs proposed in the comments 
were not making use of `-query-driver` option. Do you mind adding some logs to 
the bug report, without your patch so that we can clearly see its effect.

Initially we left it out, because it is always hairy to parse command line 
options textually, and also kind of unclear why clang wouldn't pick it up 
itself once you have `isysroot` or `sysroot` set, with extra logs we can be 
sure there are
no bugs in clang/clangd side, and it is just about a custom logic in the driver 
you are using.

We also need some tests, could you add some to 
`test/system-include-extractor.test` ?



================
Comment at: clang-tools-extra/clangd/QueryDriverDatabase.cpp:230
         Lang = Arg.drop_front(2).trim();
+      else if (Arg == "-nostdinc")
+        PreservedArgs.push_back(Arg);
----------------
we should also handle `-nobuiltininc`, `--no-standard-includes` and 
`-nostdinc++`.


================
Comment at: clang-tools-extra/clangd/QueryDriverDatabase.cpp:232
+        PreservedArgs.push_back(Arg);
+      else if (Arg == "--sysroot" && I + 1 < E) {
+        PreservedArgs.push_back(Arg);
----------------
could you also handle `isysroot` ?


================
Comment at: clang-tools-extra/clangd/QueryDriverDatabase.cpp:260
       else
-        DriverToIncludesCache[Key] = SystemIncludes =
-            extractSystemIncludes(Key.first, Key.second, QueryDriverRegex);
+        DriverToIncludesCache[Key] = SystemIncludes = extractSystemIncludes(
+            Key.first, Key.second, PreservedArgs, QueryDriverRegex);
----------------
let's pass the `Cmd->CommandLine` to `extractSystemIncludes` and perform the 
preservation logic there, so that we only do it once.


Repository:
  rCTE Clang Tools Extra

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

https://reviews.llvm.org/D73453



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

Reply via email to