================
@@ -3191,6 +3191,22 @@ static bool ParseHeaderSearchArgs(HeaderSearchOptions 
&Opts, ArgList &Args,
   bool IsIndexHeaderMap = false;
   bool IsSysrootSpecified =
       Args.hasArg(OPT__sysroot_EQ) || Args.hasArg(OPT_isysroot);
+
+  // Expand a leading `=` to the sysroot if one was passed (and it's not a
+  // framework flag).
+  auto PrefixHeaderPath = [IsSysrootSpecified,
----------------
fanghuaqi wrote:

Hello, I have a question about why `IsSysrootSpecified` is required, since the 
sysroot could use default sysroot defined in toolchain, for gcc, it is not 
required.

`If dir begins with ‘=’ or $SYSROOT, then the ‘=’ or $SYSROOT is replaced by 
the sysroot prefix; see --sysroot and -isysroot.`

So it will replace sysroot defined in toolchain, as tested below:

- gcc `-isystem=/include/libncrt`: 
`xxxxx/gcc/bin/../riscv64-unknown-elf/include/libncrt`, this is expected
- clang `-isystem=/include/libncrt`  : ignoring nonexistent directory 
"=/include/libncrt"


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

Reply via email to