[clang-scan-deps] Don't inspect Args[0] as an option (#109050)
commit997b66e566886b8a395b852db46e7930f757b818
authorMartin Storsjö <martin@martin.st>
Thu, 19 Sep 2024 17:46:09 +0000 (19 20:46 +0300)
committerTobias Hieta <tobias@hieta.se>
Tue, 1 Oct 2024 06:53:03 +0000 (1 08:53 +0200)
treed819617862a5d7bbaf2e04535771bde422764337
parent2b6c23303f7c3f6397003cdac4be6e9e6b78d957
[clang-scan-deps] Don't inspect Args[0] as an option (#109050)

Since a26ec542371652e1d774696e90016fd5b0b1c191, we expand the executable
name to an absolute path, if it isn't already one, if found in path.

This broke a couple tests in some environments; when the clang workdir
resides in a path under e.g. /opt. Tests that only use a tool name like
"clang-cl" would get expanded to the absolute path in the build tree.
The loop for finding the last "-o" like option for clang-cl command
lines would inspect all arguments, including Args[0] which is the
executable name itself. As an /opt path matches Arg.starts_with("/o"),
this would get detected as an object file output name in cases where
there was no other explicit output argument.

Thus, this fixes those tests in workdirs under e.g. /opt.

(cherry picked from commit cead9044a995910306e2e64b426fcc8042d7e0ef)
clang/tools/clang-scan-deps/ClangScanDeps.cpp