================
@@ -816,6 +816,11 @@ class FPOptions {
     setAllowFPReassociate(LO.AllowFPReassoc);
     setNoHonorNaNs(LO.NoHonorNaNs);
     setNoHonorInfs(LO.NoHonorInfs);
+    // Ensure that if FiniteMathOnly is enabled, NoHonorNaNs and NoHonorInfs 
are
+    // also enabled. This is because FiniteMathOnly mode assumes no NaNs or 
Infs
+    // are present in computations.
+    assert((LO.FiniteMathOnly == (LO.NoHonorInfs && LO.NoHonorNaNs)) &&
----------------
AaronBallman wrote:

Correct, that assertion can go away (don't forget to update the PR title and 
summary accordingly as well).

>  I suppose CLFiniteMathOnly should be removed too, right?

CC @AnastasiaStulova as OpenCL code owner.

I think `CLFiniteMathOnly` is a combination of `NoHonorInfs`, `NoHonorNaNs`, 
and `OpenCL` language mode. However, I don't see `CLFiniteMathOnly` being 
*used* by anything when I grep over the source. We set the flag from Options.td 
via marshaling, but we don't seem to ever check the value of the LangOpt 
anywhere. So it seems like `CLFiniteMathOnly` can be removed and maybe 
`-cl-finite-math-only` could be deprecated and eventually removed?

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