diff options
author | Zahira Ammarguellat <zahira.ammarguellat@intel.com> | 2024-07-26 05:16:38 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-26 08:16:38 -0400 |
commit | c9c91f59c318e28d884e5762f303348ba5724d21 (patch) | |
tree | b5077ace99585096c7145dfe8fdea3b3265ca84d /clang/lib/Frontend/InitPreprocessor.cpp | |
parent | 844c188c7988f33e392cde06574d95dab3d0d60a (diff) | |
download | llvm-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.cpp | 2 |
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"); |