================ @@ -3256,12 +3262,14 @@ static bool ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args, } for (const auto *A : Args.filtered(OPT_idirafter)) - Opts.AddPath(A->getValue(), frontend::After, false, true); + Opts.AddPath(ConvertHeaderPath(A), frontend::After, false, true); for (const auto *A : Args.filtered(OPT_iquote)) - Opts.AddPath(A->getValue(), frontend::Quoted, false, true); - for (const auto *A : Args.filtered(OPT_isystem, OPT_iwithsysroot)) + Opts.AddPath(ConvertHeaderPath(A), frontend::Quoted, false, true); + for (const auto *A : Args.filtered(OPT_iwithsysroot)) Opts.AddPath(A->getValue(), frontend::System, false, - !A->getOption().matches(OPT_iwithsysroot)); + /*IgnoreSysRoot=*/false); + for (const auto *A : Args.filtered(OPT_isystem)) ---------------- jansvoboda11 wrote:
Handling `OPT_isystem` in a loop separate from `OPT_iwithsysroot` is a behavior change. Is that intentional? Previously "-isystem A -iwithsysroot B -isystem C" would result in "A B C", now it results in "B A C". https://github.com/llvm/llvm-project/pull/82084 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits