mstorsjo wrote:

> Can you explain why exactly is this necessary/beneficial? If the compilation 
> database got created with just the tool name, I'd expect the rest of the 
> build to be able to use just the tool name when the scanner spits it out 
> again, no? If this is about the scanner finding the right config, sysroot, 
> resource directory, etc., I'd expect that to already happen, since the 
> scanner needs to be colocated with the toolchain itself (since `clang` and 
> `clang-scan-deps` are effectively version-locked).

It's about the scanner finding the right config files and sysroot.

Even if `clang-scan-deps` is colocated with the toolchain, the tool never 
assumes that. Normally when you invoke `clang` to compile, it sets the 
executable directory so that within the `clang::Driver` class, `Dir` points to 
where clang resides.

Now when `clang-scan-deps` inspects one or more `clang` tool invocations, the 
`clang::Driver` class never gets set up with the `Dir` of the `clang-scan-deps` 
executable - it only sets things based on what it literally sees in the command 
lines, without any outside assumptions about default directory.

https://github.com/llvm/llvm-project/pull/108539
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to