diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2024-07-10 09:49:21 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-10 09:49:21 -0400 |
commit | 0e7590a25cd2e49c5849cc7d2facd5810f8900ce (patch) | |
tree | 0ffca20ecde2d29f23605b405b2aa9b7040426c7 /clang/lib/Frontend/InitPreprocessor.cpp | |
parent | 4c0320728e1b0cd590c00e06130a2af7160715b6 (diff) | |
download | llvm-0e7590a25cd2e49c5849cc7d2facd5810f8900ce.zip llvm-0e7590a25cd2e49c5849cc7d2facd5810f8900ce.tar.gz llvm-0e7590a25cd2e49c5849cc7d2facd5810f8900ce.tar.bz2 |
[C23] Add *_NORM_MAX macros to <float.h> (#96643)
This adds the *_NORM_MAX macros to <float.h> for freestanding mode in
Clang; the values were chosen based on the behavior seen coming from GCC
and the values already produced for the *_MAX macros by Clang.
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
-rw-r--r-- | clang/lib/Frontend/InitPreprocessor.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 5e52555..d40d78a 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -113,7 +113,11 @@ static T PickFP(const llvm::fltSemantics *Sem, T IEEEHalfVal, T IEEESingleVal, static void DefineFloatMacros(MacroBuilder &Builder, StringRef Prefix, const llvm::fltSemantics *Sem, StringRef Ext) { - const char *DenormMin, *Epsilon, *Max, *Min; + const char *DenormMin, *NormMax, *Epsilon, *Max, *Min; + NormMax = PickFP(Sem, "6.5504e+4", "3.40282347e+38", + "1.7976931348623157e+308", "1.18973149535723176502e+4932", + "8.98846567431157953864652595394501e+307", + "1.18973149535723176508575932662800702e+4932"); DenormMin = PickFP(Sem, "5.9604644775390625e-8", "1.40129846e-45", "4.9406564584124654e-324", "3.64519953188247460253e-4951", "4.94065645841246544176568792868221e-324", @@ -144,6 +148,7 @@ static void DefineFloatMacros(MacroBuilder &Builder, StringRef Prefix, DefPrefix += "_"; Builder.defineMacro(DefPrefix + "DENORM_MIN__", Twine(DenormMin)+Ext); + Builder.defineMacro(DefPrefix + "NORM_MAX__", Twine(NormMax)+Ext); Builder.defineMacro(DefPrefix + "HAS_DENORM__"); Builder.defineMacro(DefPrefix + "DIG__", Twine(Digits)); Builder.defineMacro(DefPrefix + "DECIMAL_DIG__", Twine(DecimalDigits)); |