================ @@ -3298,7 +3298,18 @@ static void RenderFloatingPointOptions(const ToolChain &TC, const Driver &D, } // Handle __FINITE_MATH_ONLY__ similarly. - if (!HonorINFs && !HonorNaNs) + bool InfValues = true; + bool NanValues = true; + auto processArg = [&](const auto *Arg) { + if (StringRef(Arg->getValue()) == "-menable-no-nans") + NanValues = false; + if (StringRef(Arg->getValue()) == "-menable-no-infs") + InfValues = false; + }; + for (auto *Arg : Args.filtered(options::OPT_Xclang)) + processArg(Arg); ---------------- AaronBallman wrote:
That could work, I was thinking along these lines: ``` // Explanation of why we need to do this dance goes here. auto NaNsAndInfs = [&] { bool InfValues = true; bool NanValues = true; auto processArg = [&](const auto *Arg) { if (StringRef(Arg->getValue()) == "-menable-no-nans") NanValues = false; if (StringRef(Arg->getValue()) == "-menable-no-infs") InfValues = false; }; for (auto *Arg : Args.filtered(options::OPT_Xclang)) processArg(Arg); return InfValues && NanValues; }; if ((!HonorINFs && !HonorNaNs) || !NaNsAndInfs()) CmdArgs.push_back("-ffinite-math-only"); ``` I leave it to driver folks to say what they'd prefer if they have a strong preference. https://github.com/llvm/llvm-project/pull/97342 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits