aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/InitPreprocessor.cpp
diff options
context:
space:
mode:
authorZahira Ammarguellat <zahira.ammarguellat@intel.com>2024-07-26 05:16:38 -0700
committerGitHub <noreply@github.com>2024-07-26 08:16:38 -0400
commitc9c91f59c318e28d884e5762f303348ba5724d21 (patch)
treeb5077ace99585096c7145dfe8fdea3b3265ca84d /clang/lib/Frontend/InitPreprocessor.cpp
parent844c188c7988f33e392cde06574d95dab3d0d60a (diff)
downloadllvm-c9c91f59c318e28d884e5762f303348ba5724d21.zip
llvm-c9c91f59c318e28d884e5762f303348ba5724d21.tar.gz
llvm-c9c91f59c318e28d884e5762f303348ba5724d21.tar.bz2
Remove FiniteMathOnly and use only NoHonorINFs and NoHonorNANs. (#97342)
Currently `__FINITE_MATH_ONLY__` is set when `FiniteMathOnly`. And `FiniteMathOnly` is set when `NoHonorInfs` && `NoHonorNans` is true. But what happens one of the latter flags is false? To avoid potential inconsistencies, the internal option `FiniteMathOnly` is removed option and the macro `__FINITE_MATH_ONLY__` is set when `NoHonorInfs` && `NoHonorNans`.
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
-rw-r--r--clang/lib/Frontend/InitPreprocessor.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index 920ddf7..17b9ca7 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -1318,7 +1318,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
if (!LangOpts.MathErrno)
Builder.defineMacro("__NO_MATH_ERRNO__");
- if (LangOpts.FastMath || LangOpts.FiniteMathOnly)
+ if (LangOpts.FastMath || (LangOpts.NoHonorInfs && LangOpts.NoHonorNaNs))
Builder.defineMacro("__FINITE_MATH_ONLY__", "1");
else
Builder.defineMacro("__FINITE_MATH_ONLY__", "0");