Home | History | Annotate | Download | only in llvm
      1 From 151501a13549a038efe4d67954175ead62fe16eb Mon Sep 17 00:00:00 2001
      2 From: Logan Chien <loganchien (a] google.com>
      3 Date: Wed, 12 Sep 2012 13:58:22 +0800
      4 Subject: [PATCH] Use proper postfix for pre-defined LDBL_*.
      5 
      6 ---
      7  .../tools/clang/lib/Frontend/InitPreprocessor.cpp  |   49 +++++++++--------
      8  llvm-3.1/tools/clang/test/Preprocessor/init.c      |   56 ++++++++++----------
      9  2 files changed, 53 insertions(+), 52 deletions(-)
     10 
     11 diff --git a/llvm-3.1/tools/clang/lib/Frontend/InitPreprocessor.cpp b/llvm-3.1/tools/clang/lib/Frontend/InitPreprocessor.cpp
     12 index 93d49b0..9d059c5 100644
     13 --- a/llvm-3.1/tools/clang/lib/Frontend/InitPreprocessor.cpp
     14 +++ b/llvm-3.1/tools/clang/lib/Frontend/InitPreprocessor.cpp
     15 @@ -102,51 +102,52 @@ static T PickFP(const llvm::fltSemantics *Sem, T IEEESingleVal,
     16  }
     17  
     18  static void DefineFloatMacros(MacroBuilder &Builder, StringRef Prefix,
     19 -                              const llvm::fltSemantics *Sem) {
     20 +                              const llvm::fltSemantics *Sem,
     21 +                              StringRef FmtPostfix) {
     22    const char *DenormMin, *Epsilon, *Max, *Min;
     23 -  DenormMin = PickFP(Sem, "1.40129846e-45F", "4.9406564584124654e-324",
     24 -                     "3.64519953188247460253e-4951L",
     25 -                     "4.94065645841246544176568792868221e-324L",
     26 -                     "6.47517511943802511092443895822764655e-4966L");
     27 +  DenormMin = PickFP(Sem, "1.40129846e-45", "4.9406564584124654e-324",
     28 +                     "3.64519953188247460253e-4951",
     29 +                     "4.94065645841246544176568792868221e-324",
     30 +                     "6.47517511943802511092443895822764655e-4966");
     31    int Digits = PickFP(Sem, 6, 15, 18, 31, 33);
     32 -  Epsilon = PickFP(Sem, "1.19209290e-7F", "2.2204460492503131e-16",
     33 -                   "1.08420217248550443401e-19L",
     34 -                   "4.94065645841246544176568792868221e-324L",
     35 -                   "1.92592994438723585305597794258492732e-34L");
     36 +  Epsilon = PickFP(Sem, "1.19209290e-7", "2.2204460492503131e-16",
     37 +                   "1.08420217248550443401e-19",
     38 +                   "4.94065645841246544176568792868221e-324",
     39 +                   "1.92592994438723585305597794258492732e-34");
     40    int MantissaDigits = PickFP(Sem, 24, 53, 64, 106, 113);
     41    int Min10Exp = PickFP(Sem, -37, -307, -4931, -291, -4931);
     42    int Max10Exp = PickFP(Sem, 38, 308, 4932, 308, 4932);
     43    int MinExp = PickFP(Sem, -125, -1021, -16381, -968, -16381);
     44    int MaxExp = PickFP(Sem, 128, 1024, 16384, 1024, 16384);
     45 -  Min = PickFP(Sem, "1.17549435e-38F", "2.2250738585072014e-308",
     46 -               "3.36210314311209350626e-4932L",
     47 -               "2.00416836000897277799610805135016e-292L",
     48 -               "3.36210314311209350626267781732175260e-4932L");
     49 -  Max = PickFP(Sem, "3.40282347e+38F", "1.7976931348623157e+308",
     50 -               "1.18973149535723176502e+4932L",
     51 -               "1.79769313486231580793728971405301e+308L",
     52 -               "1.18973149535723176508575932662800702e+4932L");
     53 +  Min = PickFP(Sem, "1.17549435e-38", "2.2250738585072014e-308",
     54 +               "3.36210314311209350626e-4932",
     55 +               "2.00416836000897277799610805135016e-292",
     56 +               "3.36210314311209350626267781732175260e-4932");
     57 +  Max = PickFP(Sem, "3.40282347e+38", "1.7976931348623157e+308",
     58 +               "1.18973149535723176502e+4932",
     59 +               "1.79769313486231580793728971405301e+308",
     60 +               "1.18973149535723176508575932662800702e+4932");
     61  
     62    SmallString<32> DefPrefix;
     63    DefPrefix = "__";
     64    DefPrefix += Prefix;
     65    DefPrefix += "_";
     66  
     67 -  Builder.defineMacro(DefPrefix + "DENORM_MIN__", DenormMin);
     68 +  Builder.defineMacro(DefPrefix + "DENORM_MIN__", Twine(DenormMin, FmtPostfix));
     69    Builder.defineMacro(DefPrefix + "HAS_DENORM__");
     70    Builder.defineMacro(DefPrefix + "DIG__", Twine(Digits));
     71 -  Builder.defineMacro(DefPrefix + "EPSILON__", Twine(Epsilon));
     72 +  Builder.defineMacro(DefPrefix + "EPSILON__", Twine(Epsilon, FmtPostfix));
     73    Builder.defineMacro(DefPrefix + "HAS_INFINITY__");
     74    Builder.defineMacro(DefPrefix + "HAS_QUIET_NAN__");
     75    Builder.defineMacro(DefPrefix + "MANT_DIG__", Twine(MantissaDigits));
     76  
     77    Builder.defineMacro(DefPrefix + "MAX_10_EXP__", Twine(Max10Exp));
     78    Builder.defineMacro(DefPrefix + "MAX_EXP__", Twine(MaxExp));
     79 -  Builder.defineMacro(DefPrefix + "MAX__", Twine(Max));
     80 +  Builder.defineMacro(DefPrefix + "MAX__", Twine(Max, FmtPostfix));
     81  
     82    Builder.defineMacro(DefPrefix + "MIN_10_EXP__","("+Twine(Min10Exp)+")");
     83    Builder.defineMacro(DefPrefix + "MIN_EXP__", "("+Twine(MinExp)+")");
     84 -  Builder.defineMacro(DefPrefix + "MIN__", Twine(Min));
     85 +  Builder.defineMacro(DefPrefix + "MIN__", Twine(Min, FmtPostfix));
     86  }
     87  
     88  
     89 @@ -490,9 +491,9 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
     90    DefineType("__CHAR16_TYPE__", TI.getChar16Type(), Builder);
     91    DefineType("__CHAR32_TYPE__", TI.getChar32Type(), Builder);
     92  
     93 -  DefineFloatMacros(Builder, "FLT", &TI.getFloatFormat());
     94 -  DefineFloatMacros(Builder, "DBL", &TI.getDoubleFormat());
     95 -  DefineFloatMacros(Builder, "LDBL", &TI.getLongDoubleFormat());
     96 +  DefineFloatMacros(Builder, "FLT", &TI.getFloatFormat(), "F");
     97 +  DefineFloatMacros(Builder, "DBL", &TI.getDoubleFormat(), "");
     98 +  DefineFloatMacros(Builder, "LDBL", &TI.getLongDoubleFormat(), "L");
     99  
    100    // Define a __POINTER_WIDTH__ macro for stdint.h.
    101    Builder.defineMacro("__POINTER_WIDTH__",
    102 diff --git a/llvm-3.1/tools/clang/test/Preprocessor/init.c b/llvm-3.1/tools/clang/test/Preprocessor/init.c
    103 index 0505fff..b8ef33d 100644
    104 --- a/llvm-3.1/tools/clang/test/Preprocessor/init.c
    105 +++ b/llvm-3.1/tools/clang/test/Preprocessor/init.c
    106 @@ -171,19 +171,19 @@
    107  // ARM:#define __INTPTR_TYPE__ long int
    108  // ARM:#define __INTPTR_WIDTH__ 32
    109  // ARM:#define __INT_MAX__ 2147483647
    110 -// ARM:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    111 +// ARM:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
    112  // ARM:#define __LDBL_DIG__ 15
    113 -// ARM:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    114 +// ARM:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
    115  // ARM:#define __LDBL_HAS_DENORM__ 1
    116  // ARM:#define __LDBL_HAS_INFINITY__ 1
    117  // ARM:#define __LDBL_HAS_QUIET_NAN__ 1
    118  // ARM:#define __LDBL_MANT_DIG__ 53
    119  // ARM:#define __LDBL_MAX_10_EXP__ 308
    120  // ARM:#define __LDBL_MAX_EXP__ 1024
    121 -// ARM:#define __LDBL_MAX__ 1.7976931348623157e+308
    122 +// ARM:#define __LDBL_MAX__ 1.7976931348623157e+308L
    123  // ARM:#define __LDBL_MIN_10_EXP__ (-307)
    124  // ARM:#define __LDBL_MIN_EXP__ (-1021)
    125 -// ARM:#define __LDBL_MIN__ 2.2250738585072014e-308
    126 +// ARM:#define __LDBL_MIN__ 2.2250738585072014e-308L
    127  // ARM:#define __LITTLE_ENDIAN__ 1
    128  // ARM:#define __LONG_LONG_MAX__ 9223372036854775807LL
    129  // ARM:#define __LONG_MAX__ 2147483647L
    130 @@ -463,19 +463,19 @@
    131  // MIPS32BE:#define __INTPTR_TYPE__ long int
    132  // MIPS32BE:#define __INTPTR_WIDTH__ 32
    133  // MIPS32BE:#define __INT_MAX__ 2147483647
    134 -// MIPS32BE:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    135 +// MIPS32BE:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
    136  // MIPS32BE:#define __LDBL_DIG__ 15
    137 -// MIPS32BE:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    138 +// MIPS32BE:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
    139  // MIPS32BE:#define __LDBL_HAS_DENORM__ 1
    140  // MIPS32BE:#define __LDBL_HAS_INFINITY__ 1
    141  // MIPS32BE:#define __LDBL_HAS_QUIET_NAN__ 1
    142  // MIPS32BE:#define __LDBL_MANT_DIG__ 53
    143  // MIPS32BE:#define __LDBL_MAX_10_EXP__ 308
    144  // MIPS32BE:#define __LDBL_MAX_EXP__ 1024
    145 -// MIPS32BE:#define __LDBL_MAX__ 1.7976931348623157e+308
    146 +// MIPS32BE:#define __LDBL_MAX__ 1.7976931348623157e+308L
    147  // MIPS32BE:#define __LDBL_MIN_10_EXP__ (-307)
    148  // MIPS32BE:#define __LDBL_MIN_EXP__ (-1021)
    149 -// MIPS32BE:#define __LDBL_MIN__ 2.2250738585072014e-308
    150 +// MIPS32BE:#define __LDBL_MIN__ 2.2250738585072014e-308L
    151  // MIPS32BE:#define __LONG_LONG_MAX__ 9223372036854775807LL
    152  // MIPS32BE:#define __LONG_MAX__ 2147483647L
    153  // MIPS32BE:#define __MIPSEB 1
    154 @@ -575,19 +575,19 @@
    155  // MIPS32EL:#define __INTPTR_TYPE__ long int
    156  // MIPS32EL:#define __INTPTR_WIDTH__ 32
    157  // MIPS32EL:#define __INT_MAX__ 2147483647
    158 -// MIPS32EL:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    159 +// MIPS32EL:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
    160  // MIPS32EL:#define __LDBL_DIG__ 15
    161 -// MIPS32EL:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    162 +// MIPS32EL:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
    163  // MIPS32EL:#define __LDBL_HAS_DENORM__ 1
    164  // MIPS32EL:#define __LDBL_HAS_INFINITY__ 1
    165  // MIPS32EL:#define __LDBL_HAS_QUIET_NAN__ 1
    166  // MIPS32EL:#define __LDBL_MANT_DIG__ 53
    167  // MIPS32EL:#define __LDBL_MAX_10_EXP__ 308
    168  // MIPS32EL:#define __LDBL_MAX_EXP__ 1024
    169 -// MIPS32EL:#define __LDBL_MAX__ 1.7976931348623157e+308
    170 +// MIPS32EL:#define __LDBL_MAX__ 1.7976931348623157e+308L
    171  // MIPS32EL:#define __LDBL_MIN_10_EXP__ (-307)
    172  // MIPS32EL:#define __LDBL_MIN_EXP__ (-1021)
    173 -// MIPS32EL:#define __LDBL_MIN__ 2.2250738585072014e-308
    174 +// MIPS32EL:#define __LDBL_MIN__ 2.2250738585072014e-308L
    175  // MIPS32EL:#define __LONG_LONG_MAX__ 9223372036854775807LL
    176  // MIPS32EL:#define __LONG_MAX__ 2147483647L
    177  // MIPS32EL:#define __MIPSEL 1
    178 @@ -911,19 +911,19 @@
    179  // MSP430:#define __INTPTR_TYPE__ short
    180  // MSP430:#define __INTPTR_WIDTH__ 16
    181  // MSP430:#define __INT_MAX__ 32767
    182 -// MSP430:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    183 +// MSP430:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
    184  // MSP430:#define __LDBL_DIG__ 15
    185 -// MSP430:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    186 +// MSP430:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
    187  // MSP430:#define __LDBL_HAS_DENORM__ 1
    188  // MSP430:#define __LDBL_HAS_INFINITY__ 1
    189  // MSP430:#define __LDBL_HAS_QUIET_NAN__ 1
    190  // MSP430:#define __LDBL_MANT_DIG__ 53
    191  // MSP430:#define __LDBL_MAX_10_EXP__ 308
    192  // MSP430:#define __LDBL_MAX_EXP__ 1024
    193 -// MSP430:#define __LDBL_MAX__ 1.7976931348623157e+308
    194 +// MSP430:#define __LDBL_MAX__ 1.7976931348623157e+308L
    195  // MSP430:#define __LDBL_MIN_10_EXP__ (-307)
    196  // MSP430:#define __LDBL_MIN_EXP__ (-1021)
    197 -// MSP430:#define __LDBL_MIN__ 2.2250738585072014e-308
    198 +// MSP430:#define __LDBL_MIN__ 2.2250738585072014e-308L
    199  // MSP430:#define __LONG_LONG_MAX__ 9223372036854775807LL
    200  // MSP430:#define __LONG_MAX__ 2147483647L
    201  // MSP430:#define __MSP430__ 1
    202 @@ -1407,19 +1407,19 @@
    203  // SPARC:#define __INTPTR_TYPE__ long int
    204  // SPARC:#define __INTPTR_WIDTH__ 32
    205  // SPARC:#define __INT_MAX__ 2147483647
    206 -// SPARC:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    207 +// SPARC:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
    208  // SPARC:#define __LDBL_DIG__ 15
    209 -// SPARC:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    210 +// SPARC:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
    211  // SPARC:#define __LDBL_HAS_DENORM__ 1
    212  // SPARC:#define __LDBL_HAS_INFINITY__ 1
    213  // SPARC:#define __LDBL_HAS_QUIET_NAN__ 1
    214  // SPARC:#define __LDBL_MANT_DIG__ 53
    215  // SPARC:#define __LDBL_MAX_10_EXP__ 308
    216  // SPARC:#define __LDBL_MAX_EXP__ 1024
    217 -// SPARC:#define __LDBL_MAX__ 1.7976931348623157e+308
    218 +// SPARC:#define __LDBL_MAX__ 1.7976931348623157e+308L
    219  // SPARC:#define __LDBL_MIN_10_EXP__ (-307)
    220  // SPARC:#define __LDBL_MIN_EXP__ (-1021)
    221 -// SPARC:#define __LDBL_MIN__ 2.2250738585072014e-308
    222 +// SPARC:#define __LDBL_MIN__ 2.2250738585072014e-308L
    223  // SPARC:#define __LONG_LONG_MAX__ 9223372036854775807LL
    224  // SPARC:#define __LONG_MAX__ 2147483647L
    225  // SPARC:#define __NO_INLINE__ 1
    226 @@ -1462,19 +1462,19 @@
    227  // TCE:#define __CHAR16_TYPE__ unsigned short
    228  // TCE:#define __CHAR32_TYPE__ unsigned int
    229  // TCE:#define __CHAR_BIT__ 8
    230 -// TCE:#define __DBL_DENORM_MIN__ 1.40129846e-45F
    231 +// TCE:#define __DBL_DENORM_MIN__ 1.40129846e-45
    232  // TCE:#define __DBL_DIG__ 6
    233 -// TCE:#define __DBL_EPSILON__ 1.19209290e-7F
    234 +// TCE:#define __DBL_EPSILON__ 1.19209290e-7
    235  // TCE:#define __DBL_HAS_DENORM__ 1
    236  // TCE:#define __DBL_HAS_INFINITY__ 1
    237  // TCE:#define __DBL_HAS_QUIET_NAN__ 1
    238  // TCE:#define __DBL_MANT_DIG__ 24
    239  // TCE:#define __DBL_MAX_10_EXP__ 38
    240  // TCE:#define __DBL_MAX_EXP__ 128
    241 -// TCE:#define __DBL_MAX__ 3.40282347e+38F
    242 +// TCE:#define __DBL_MAX__ 3.40282347e+38
    243  // TCE:#define __DBL_MIN_10_EXP__ (-37)
    244  // TCE:#define __DBL_MIN_EXP__ (-125)
    245 -// TCE:#define __DBL_MIN__ 1.17549435e-38F
    246 +// TCE:#define __DBL_MIN__ 1.17549435e-38
    247  // TCE:#define __DECIMAL_DIG__ -1
    248  // TCE:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    249  // TCE:#define __FLT_DIG__ 6
    250 @@ -1500,19 +1500,19 @@
    251  // TCE:#define __INTPTR_TYPE__ int
    252  // TCE:#define __INTPTR_WIDTH__ 32
    253  // TCE:#define __INT_MAX__ 2147483647
    254 -// TCE:#define __LDBL_DENORM_MIN__ 1.40129846e-45F
    255 +// TCE:#define __LDBL_DENORM_MIN__ 1.40129846e-45L
    256  // TCE:#define __LDBL_DIG__ 6
    257 -// TCE:#define __LDBL_EPSILON__ 1.19209290e-7F
    258 +// TCE:#define __LDBL_EPSILON__ 1.19209290e-7L
    259  // TCE:#define __LDBL_HAS_DENORM__ 1
    260  // TCE:#define __LDBL_HAS_INFINITY__ 1
    261  // TCE:#define __LDBL_HAS_QUIET_NAN__ 1
    262  // TCE:#define __LDBL_MANT_DIG__ 24
    263  // TCE:#define __LDBL_MAX_10_EXP__ 38
    264  // TCE:#define __LDBL_MAX_EXP__ 128
    265 -// TCE:#define __LDBL_MAX__ 3.40282347e+38F
    266 +// TCE:#define __LDBL_MAX__ 3.40282347e+38L
    267  // TCE:#define __LDBL_MIN_10_EXP__ (-37)
    268  // TCE:#define __LDBL_MIN_EXP__ (-125)
    269 -// TCE:#define __LDBL_MIN__ 1.17549435e-38F
    270 +// TCE:#define __LDBL_MIN__ 1.17549435e-38L
    271  // TCE:#define __LONG_LONG_MAX__ 2147483647LL
    272  // TCE:#define __LONG_MAX__ 2147483647L
    273  // TCE:#define __NO_INLINE__ 1
    274 -- 
    275 1.7.7.3
    276 
    277