================
@@ -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
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to