[clang] Remove FiniteMathOnly and use only NoHonorINFs and NoHonorNANs. (PR #97342)
Zahira Ammarguellat via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 15 11:03:17 PDT 2024
================
@@ -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);
----------------
zahiraam wrote:
Are you thinking of something like this?
`// Handle __FINITE_MATH_ONLY__ similarly.`
` if (!HonorINFs && !HonorNaNs)`
` CmdArgs.push_back("-ffinite-math-only");`
`else {`
` 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);`
` if (!NanValues && !InfValues)`
`CmdArgs.push_back("-ffinite-math-only");`
` }`
https://github.com/llvm/llvm-project/pull/97342
More information about the cfe-commits
mailing list