================
@@ -3218,6 +3218,21 @@ 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 ConvertHeaderPath = [IsSysrootSpecified,
+ &Opts](const llvm::opt::Arg *A,
+ bool IsFramework = false) -> std::string {
+ if (IsSysrootSpecified && !IsFramework && A->getValue()[0] == '=') {
----------------
etcwilde wrote:
Maybe? The thing coming from `Args.filtered` should be populated though? Even
if it isn't, we shouldn't be entering the `for`-loop though. Perhaps
`Args.filtered` should result in iterator that emits a const reference? That
seems like a bigger, unrelated change though.
Added an assert and a test case. The arg parser will error out earlier if
nothing is passed to `-I`; `argument to '-I' is missing`. Is that sufficient?
https://github.com/llvm/llvm-project/pull/82084
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits