Home | History | Annotate | Download | only in Preprocessor
      1 // RUN: %clang_cc1 -E -dM -x assembler-with-cpp < /dev/null | FileCheck -check-prefix ASM %s
      2 //
      3 // ASM:#define __ASSEMBLER__ 1
      4 //
      5 //
      6 // RUN: %clang_cc1 -fblocks -E -dM < /dev/null | FileCheck -check-prefix BLOCKS %s
      7 //
      8 // BLOCKS:#define __BLOCKS__ 1
      9 // BLOCKS:#define __block __attribute__((__blocks__(byref)))
     10 //
     11 //
     12 // RUN: %clang_cc1 -x c++ -std=c++0x -E -dM < /dev/null | FileCheck -check-prefix CXX0X %s
     13 //
     14 // CXX0X:#define __GNUG__
     15 // CXX0X:#define __GXX_EXPERIMENTAL_CXX0X__ 1
     16 // CXX0X:#define __GXX_RTTI 1
     17 // CXX0X:#define __GXX_WEAK__ 1
     18 // CXX0X:#define __cplusplus 201103L
     19 // CXX0X:#define __private_extern__ extern
     20 //
     21 //
     22 // RUN: %clang_cc1 -x c++ -std=c++98 -E -dM < /dev/null | FileCheck -check-prefix CXX98 %s
     23 //
     24 // CXX98:#define __GNUG__
     25 // CXX98:#define __GXX_RTTI 1
     26 // CXX98:#define __GXX_WEAK__ 1
     27 // CXX98:#define __cplusplus 199711L
     28 // CXX98:#define __private_extern__ extern
     29 //
     30 //
     31 // RUN: %clang_cc1 -fdeprecated-macro -E -dM < /dev/null | FileCheck -check-prefix DEPRECATED %s
     32 //
     33 // DEPRECATED:#define __DEPRECATED 1
     34 //
     35 //
     36 // RUN: %clang_cc1 -std=c99 -E -dM < /dev/null | FileCheck -check-prefix C99 %s
     37 //
     38 // C99:#define __STDC_VERSION__ 199901L
     39 // C99:#define __STRICT_ANSI__ 1
     40 //
     41 //
     42 // RUN: %clang_cc1 -E -dM < /dev/null | FileCheck -check-prefix COMMON %s
     43 //
     44 // COMMON:#define __CONSTANT_CFSTRINGS__ 1
     45 // COMMON:#define __FINITE_MATH_ONLY__ 0
     46 // COMMON:#define __GNUC_MINOR__
     47 // COMMON:#define __GNUC_PATCHLEVEL__
     48 // COMMON:#define __GNUC_STDC_INLINE__ 1
     49 // COMMON:#define __GNUC__
     50 // COMMON:#define __GXX_ABI_VERSION
     51 // COMMON:#define __STDC_HOSTED__ 1
     52 // COMMON:#define __STDC_VERSION__
     53 // COMMON:#define __STDC__ 1
     54 // COMMON:#define __VERSION__
     55 // COMMON:#define __clang__ 1
     56 // COMMON:#define __clang_major__ {{[0-9]+}}
     57 // COMMON:#define __clang_minor__ {{[0-9]+}}
     58 // COMMON:#define __clang_patchlevel__ {{[0-9]+}}
     59 // COMMON:#define __clang_version__
     60 // COMMON:#define __llvm__ 1
     61 //
     62 //
     63 // RUN: %clang_cc1 -ffreestanding -E -dM < /dev/null | FileCheck -check-prefix FREESTANDING %s
     64 // FREESTANDING:#define __STDC_HOSTED__ 0
     65 //
     66 // RUN: %clang_cc1 -x c++ -std=gnu++98 -E -dM < /dev/null | FileCheck -check-prefix GXX98 %s
     67 //
     68 // GXX98:#define __GNUG__
     69 // GXX98:#define __GXX_WEAK__ 1
     70 // GXX98:#define __cplusplus 1
     71 // GXX98:#define __private_extern__ extern
     72 //
     73 //
     74 // RUN: %clang_cc1 -std=iso9899:199409 -E -dM < /dev/null | FileCheck -check-prefix C94 %s
     75 //
     76 // C94:#define __STDC_VERSION__ 199409L
     77 //
     78 //
     79 // RUN: %clang_cc1 -fms-extensions -triple i686-pc-win32 -E -dM < /dev/null | FileCheck -check-prefix MSEXT %s
     80 //
     81 // MSEXT-NOT:#define __STDC__
     82 // MSEXT:#define _INTEGRAL_MAX_BITS 64
     83 //
     84 //
     85 // RUN: %clang_cc1 -x objective-c -E -dM < /dev/null | FileCheck -check-prefix OBJC %s
     86 //
     87 // OBJC:#define OBJC_NEW_PROPERTIES 1
     88 // OBJC:#define __NEXT_RUNTIME__ 1
     89 // OBJC:#define __OBJC__ 1
     90 //
     91 //
     92 // RUN: %clang_cc1 -x objective-c -fobjc-gc -E -dM < /dev/null | FileCheck -check-prefix OBJCGC %s
     93 //
     94 // OBJCGC:#define __OBJC_GC__ 1
     95 //
     96 //
     97 // RUN: %clang_cc1 -x objective-c -fobjc-nonfragile-abi -E -dM < /dev/null | FileCheck -check-prefix NONFRAGILE %s
     98 //
     99 // NONFRAGILE:#define OBJC_ZEROCOST_EXCEPTIONS 1
    100 // NONFRAGILE:#define __OBJC2__ 1
    101 //
    102 //
    103 // RUN: %clang_cc1 -O1 -E -dM < /dev/null | FileCheck -check-prefix O1 %s
    104 //
    105 // O1:#define __OPTIMIZE__ 1
    106 //
    107 //
    108 // RUN: %clang_cc1 -fpascal-strings -E -dM < /dev/null | FileCheck -check-prefix PASCAL %s
    109 //
    110 // PASCAL:#define __PASCAL_STRINGS__ 1
    111 //
    112 //
    113 // RUN: %clang_cc1 -E -dM < /dev/null | FileCheck -check-prefix SCHAR %s
    114 //
    115 // SCHAR:#define __STDC__ 1
    116 // SCHAR-NOT:#define __UNSIGNED_CHAR__
    117 // SCHAR:#define __clang__ 1
    118 //
    119 // RUN: %clang_cc1 -E -dM -fshort-wchar < /dev/null | FileCheck -check-prefix SHORTWCHAR %s
    120 //
    121 // SHORTWCHAR: #define __SIZEOF_WCHAR_T__ 2
    122 // SHORTWCHAR: #define __WCHAR_MAX__ 65535U
    123 // SHORTWCHAR: #define __WCHAR_TYPE__ unsigned short
    124 // SHORTWCHAR: #define __WCHAR_WIDTH__ 16
    125 //
    126 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-none-none < /dev/null | FileCheck -check-prefix ARM %s
    127 //
    128 // ARM:#define __APCS_32__ 1
    129 // ARM:#define __ARMEL__ 1
    130 // ARM:#define __ARM_ARCH_6J__ 1
    131 // ARM:#define __CHAR16_TYPE__ unsigned short
    132 // ARM:#define __CHAR32_TYPE__ unsigned int
    133 // ARM:#define __CHAR_BIT__ 8
    134 // ARM:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
    135 // ARM:#define __DBL_DIG__ 15
    136 // ARM:#define __DBL_EPSILON__ 2.2204460492503131e-16
    137 // ARM:#define __DBL_HAS_DENORM__ 1
    138 // ARM:#define __DBL_HAS_INFINITY__ 1
    139 // ARM:#define __DBL_HAS_QUIET_NAN__ 1
    140 // ARM:#define __DBL_MANT_DIG__ 53
    141 // ARM:#define __DBL_MAX_10_EXP__ 308
    142 // ARM:#define __DBL_MAX_EXP__ 1024
    143 // ARM:#define __DBL_MAX__ 1.7976931348623157e+308
    144 // ARM:#define __DBL_MIN_10_EXP__ (-307)
    145 // ARM:#define __DBL_MIN_EXP__ (-1021)
    146 // ARM:#define __DBL_MIN__ 2.2250738585072014e-308
    147 // ARM:#define __DECIMAL_DIG__ 17
    148 // ARM:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    149 // ARM:#define __FLT_DIG__ 6
    150 // ARM:#define __FLT_EPSILON__ 1.19209290e-7F
    151 // ARM:#define __FLT_EVAL_METHOD__ 0
    152 // ARM:#define __FLT_HAS_DENORM__ 1
    153 // ARM:#define __FLT_HAS_INFINITY__ 1
    154 // ARM:#define __FLT_HAS_QUIET_NAN__ 1
    155 // ARM:#define __FLT_MANT_DIG__ 24
    156 // ARM:#define __FLT_MAX_10_EXP__ 38
    157 // ARM:#define __FLT_MAX_EXP__ 128
    158 // ARM:#define __FLT_MAX__ 3.40282347e+38F
    159 // ARM:#define __FLT_MIN_10_EXP__ (-37)
    160 // ARM:#define __FLT_MIN_EXP__ (-125)
    161 // ARM:#define __FLT_MIN__ 1.17549435e-38F
    162 // ARM:#define __FLT_RADIX__ 2
    163 // ARM:#define __INT16_TYPE__ short
    164 // ARM:#define __INT32_TYPE__ int
    165 // ARM:#define __INT64_C_SUFFIX__ LL
    166 // ARM:#define __INT64_TYPE__ long long int
    167 // ARM:#define __INT8_TYPE__ char
    168 // ARM:#define __INTMAX_MAX__ 9223372036854775807LL
    169 // ARM:#define __INTMAX_TYPE__ long long int
    170 // ARM:#define __INTMAX_WIDTH__ 64
    171 // ARM:#define __INTPTR_TYPE__ long int
    172 // ARM:#define __INTPTR_WIDTH__ 32
    173 // ARM:#define __INT_MAX__ 2147483647
    174 // ARM:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    175 // ARM:#define __LDBL_DIG__ 15
    176 // ARM:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    177 // ARM:#define __LDBL_HAS_DENORM__ 1
    178 // ARM:#define __LDBL_HAS_INFINITY__ 1
    179 // ARM:#define __LDBL_HAS_QUIET_NAN__ 1
    180 // ARM:#define __LDBL_MANT_DIG__ 53
    181 // ARM:#define __LDBL_MAX_10_EXP__ 308
    182 // ARM:#define __LDBL_MAX_EXP__ 1024
    183 // ARM:#define __LDBL_MAX__ 1.7976931348623157e+308
    184 // ARM:#define __LDBL_MIN_10_EXP__ (-307)
    185 // ARM:#define __LDBL_MIN_EXP__ (-1021)
    186 // ARM:#define __LDBL_MIN__ 2.2250738585072014e-308
    187 // ARM:#define __LITTLE_ENDIAN__ 1
    188 // ARM:#define __LONG_LONG_MAX__ 9223372036854775807LL
    189 // ARM:#define __LONG_MAX__ 2147483647L
    190 // ARM:#define __NO_INLINE__ 1
    191 // ARM:#define __POINTER_WIDTH__ 32
    192 // ARM:#define __PTRDIFF_TYPE__ int
    193 // ARM:#define __PTRDIFF_WIDTH__ 32
    194 // ARM:#define __REGISTER_PREFIX__
    195 // ARM:#define __SCHAR_MAX__ 127
    196 // ARM:#define __SHRT_MAX__ 32767
    197 // ARM:#define __SIG_ATOMIC_WIDTH__ 32
    198 // ARM:#define __SIZEOF_DOUBLE__ 8
    199 // ARM:#define __SIZEOF_FLOAT__ 4
    200 // ARM:#define __SIZEOF_INT__ 4
    201 // ARM:#define __SIZEOF_LONG_DOUBLE__ 8
    202 // ARM:#define __SIZEOF_LONG_LONG__ 8
    203 // ARM:#define __SIZEOF_LONG__ 4
    204 // ARM:#define __SIZEOF_POINTER__ 4
    205 // ARM:#define __SIZEOF_PTRDIFF_T__ 4
    206 // ARM:#define __SIZEOF_SHORT__ 2
    207 // ARM:#define __SIZEOF_SIZE_T__ 4
    208 // ARM:#define __SIZEOF_WCHAR_T__ 4
    209 // ARM:#define __SIZEOF_WINT_T__ 4
    210 // ARM:#define __SIZE_TYPE__ unsigned int
    211 // ARM:#define __SIZE_WIDTH__ 32
    212 // ARM:#define __THUMB_INTERWORK__ 1
    213 // ARM:#define __UINTMAX_TYPE__ long long unsigned int
    214 // ARM:#define __USER_LABEL_PREFIX__ _
    215 // ARM:#define __WCHAR_MAX__ 2147483647
    216 // ARM:#define __WCHAR_TYPE__ int
    217 // ARM:#define __WCHAR_WIDTH__ 32
    218 // ARM:#define __WINT_TYPE__ int
    219 // ARM:#define __WINT_WIDTH__ 32
    220 // ARM:#define __arm 1
    221 // ARM:#define __arm__ 1
    222 //
    223 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=bfin-none-none < /dev/null | FileCheck -check-prefix BFIN %s
    224 //
    225 // BFIN:#define BFIN 1
    226 // BFIN:#define __ADSPBLACKFIN__ 1
    227 // BFIN:#define __ADSPLPBLACKFIN__ 1
    228 // BFIN:#define __BFIN 1
    229 // BFIN:#define __BFIN__ 1
    230 // BFIN:#define __CHAR16_TYPE__ unsigned short
    231 // BFIN:#define __CHAR32_TYPE__ unsigned int
    232 // BFIN:#define __CHAR_BIT__ 8
    233 // BFIN:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
    234 // BFIN:#define __DBL_DIG__ 15
    235 // BFIN:#define __DBL_EPSILON__ 2.2204460492503131e-16
    236 // BFIN:#define __DBL_HAS_DENORM__ 1
    237 // BFIN:#define __DBL_HAS_INFINITY__ 1
    238 // BFIN:#define __DBL_HAS_QUIET_NAN__ 1
    239 // BFIN:#define __DBL_MANT_DIG__ 53
    240 // BFIN:#define __DBL_MAX_10_EXP__ 308
    241 // BFIN:#define __DBL_MAX_EXP__ 1024
    242 // BFIN:#define __DBL_MAX__ 1.7976931348623157e+308
    243 // BFIN:#define __DBL_MIN_10_EXP__ (-307)
    244 // BFIN:#define __DBL_MIN_EXP__ (-1021)
    245 // BFIN:#define __DBL_MIN__ 2.2250738585072014e-308
    246 // BFIN:#define __DECIMAL_DIG__ 17
    247 // BFIN:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    248 // BFIN:#define __FLT_DIG__ 6
    249 // BFIN:#define __FLT_EPSILON__ 1.19209290e-7F
    250 // BFIN:#define __FLT_EVAL_METHOD__ 0
    251 // BFIN:#define __FLT_HAS_DENORM__ 1
    252 // BFIN:#define __FLT_HAS_INFINITY__ 1
    253 // BFIN:#define __FLT_HAS_QUIET_NAN__ 1
    254 // BFIN:#define __FLT_MANT_DIG__ 24
    255 // BFIN:#define __FLT_MAX_10_EXP__ 38
    256 // BFIN:#define __FLT_MAX_EXP__ 128
    257 // BFIN:#define __FLT_MAX__ 3.40282347e+38F
    258 // BFIN:#define __FLT_MIN_10_EXP__ (-37)
    259 // BFIN:#define __FLT_MIN_EXP__ (-125)
    260 // BFIN:#define __FLT_MIN__ 1.17549435e-38F
    261 // BFIN:#define __FLT_RADIX__ 2
    262 // BFIN:#define __INT16_TYPE__ short
    263 // BFIN:#define __INT32_TYPE__ int
    264 // BFIN:#define __INT64_C_SUFFIX__ LL
    265 // BFIN:#define __INT64_TYPE__ long long int
    266 // BFIN:#define __INT8_TYPE__ char
    267 // BFIN:#define __INTMAX_MAX__ 9223372036854775807LL
    268 // BFIN:#define __INTMAX_TYPE__ long long int
    269 // BFIN:#define __INTMAX_WIDTH__ 64
    270 // BFIN:#define __INTPTR_TYPE__ long int
    271 // BFIN:#define __INTPTR_WIDTH__ 32
    272 // BFIN:#define __INT_MAX__ 2147483647
    273 // BFIN:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    274 // BFIN:#define __LDBL_DIG__ 15
    275 // BFIN:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    276 // BFIN:#define __LDBL_HAS_DENORM__ 1
    277 // BFIN:#define __LDBL_HAS_INFINITY__ 1
    278 // BFIN:#define __LDBL_HAS_QUIET_NAN__ 1
    279 // BFIN:#define __LDBL_MANT_DIG__ 53
    280 // BFIN:#define __LDBL_MAX_10_EXP__ 308
    281 // BFIN:#define __LDBL_MAX_EXP__ 1024
    282 // BFIN:#define __LDBL_MAX__ 1.7976931348623157e+308
    283 // BFIN:#define __LDBL_MIN_10_EXP__ (-307)
    284 // BFIN:#define __LDBL_MIN_EXP__ (-1021)
    285 // BFIN:#define __LDBL_MIN__ 2.2250738585072014e-308
    286 // BFIN:#define __LONG_LONG_MAX__ 9223372036854775807LL
    287 // BFIN:#define __LONG_MAX__ 2147483647L
    288 // BFIN:#define __NO_INLINE__ 1
    289 // BFIN:#define __POINTER_WIDTH__ 32
    290 // BFIN:#define __PTRDIFF_TYPE__ long int
    291 // BFIN:#define __PTRDIFF_WIDTH__ 32
    292 // BFIN:#define __SCHAR_MAX__ 127
    293 // BFIN:#define __SHRT_MAX__ 32767
    294 // BFIN:#define __SIG_ATOMIC_WIDTH__ 32
    295 // BFIN:#define __SIZEOF_DOUBLE__ 8
    296 // BFIN:#define __SIZEOF_FLOAT__ 4
    297 // BFIN:#define __SIZEOF_INT__ 4
    298 // BFIN:#define __SIZEOF_LONG_DOUBLE__ 8
    299 // BFIN:#define __SIZEOF_LONG_LONG__ 8
    300 // BFIN:#define __SIZEOF_LONG__ 4
    301 // BFIN:#define __SIZEOF_POINTER__ 4
    302 // BFIN:#define __SIZEOF_PTRDIFF_T__ 4
    303 // BFIN:#define __SIZEOF_SHORT__ 2
    304 // BFIN:#define __SIZEOF_SIZE_T__ 4
    305 // BFIN:#define __SIZEOF_WCHAR_T__ 4
    306 // BFIN:#define __SIZEOF_WINT_T__ 4
    307 // BFIN:#define __SIZE_TYPE__ long unsigned int
    308 // BFIN:#define __SIZE_WIDTH__ 32
    309 // BFIN:#define __UINTMAX_TYPE__ long long unsigned int
    310 // BFIN:#define __USER_LABEL_PREFIX__ _
    311 // BFIN:#define __WCHAR_MAX__ 2147483647
    312 // BFIN:#define __WCHAR_TYPE__ int
    313 // BFIN:#define __WCHAR_WIDTH__ 32
    314 // BFIN:#define __WINT_TYPE__ int
    315 // BFIN:#define __WINT_WIDTH__ 32
    316 // BFIN:#define __bfin 1
    317 // BFIN:#define __bfin__ 1
    318 // BFIN:#define bfin 1
    319 //
    320 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-none-none < /dev/null | FileCheck -check-prefix I386 %s
    321 //
    322 // I386:#define __CHAR16_TYPE__ unsigned short
    323 // I386:#define __CHAR32_TYPE__ unsigned int
    324 // I386:#define __CHAR_BIT__ 8
    325 // I386:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
    326 // I386:#define __DBL_DIG__ 15
    327 // I386:#define __DBL_EPSILON__ 2.2204460492503131e-16
    328 // I386:#define __DBL_HAS_DENORM__ 1
    329 // I386:#define __DBL_HAS_INFINITY__ 1
    330 // I386:#define __DBL_HAS_QUIET_NAN__ 1
    331 // I386:#define __DBL_MANT_DIG__ 53
    332 // I386:#define __DBL_MAX_10_EXP__ 308
    333 // I386:#define __DBL_MAX_EXP__ 1024
    334 // I386:#define __DBL_MAX__ 1.7976931348623157e+308
    335 // I386:#define __DBL_MIN_10_EXP__ (-307)
    336 // I386:#define __DBL_MIN_EXP__ (-1021)
    337 // I386:#define __DBL_MIN__ 2.2250738585072014e-308
    338 // I386:#define __DECIMAL_DIG__ 21
    339 // I386:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    340 // I386:#define __FLT_DIG__ 6
    341 // I386:#define __FLT_EPSILON__ 1.19209290e-7F
    342 // I386:#define __FLT_EVAL_METHOD__ 0
    343 // I386:#define __FLT_HAS_DENORM__ 1
    344 // I386:#define __FLT_HAS_INFINITY__ 1
    345 // I386:#define __FLT_HAS_QUIET_NAN__ 1
    346 // I386:#define __FLT_MANT_DIG__ 24
    347 // I386:#define __FLT_MAX_10_EXP__ 38
    348 // I386:#define __FLT_MAX_EXP__ 128
    349 // I386:#define __FLT_MAX__ 3.40282347e+38F
    350 // I386:#define __FLT_MIN_10_EXP__ (-37)
    351 // I386:#define __FLT_MIN_EXP__ (-125)
    352 // I386:#define __FLT_MIN__ 1.17549435e-38F
    353 // I386:#define __FLT_RADIX__ 2
    354 // I386:#define __INT16_TYPE__ short
    355 // I386:#define __INT32_TYPE__ int
    356 // I386:#define __INT64_C_SUFFIX__ LL
    357 // I386:#define __INT64_TYPE__ long long int
    358 // I386:#define __INT8_TYPE__ char
    359 // I386:#define __INTMAX_MAX__ 9223372036854775807LL
    360 // I386:#define __INTMAX_TYPE__ long long int
    361 // I386:#define __INTMAX_WIDTH__ 64
    362 // I386:#define __INTPTR_TYPE__ int
    363 // I386:#define __INTPTR_WIDTH__ 32
    364 // I386:#define __INT_MAX__ 2147483647
    365 // I386:#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
    366 // I386:#define __LDBL_DIG__ 18
    367 // I386:#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
    368 // I386:#define __LDBL_HAS_DENORM__ 1
    369 // I386:#define __LDBL_HAS_INFINITY__ 1
    370 // I386:#define __LDBL_HAS_QUIET_NAN__ 1
    371 // I386:#define __LDBL_MANT_DIG__ 64
    372 // I386:#define __LDBL_MAX_10_EXP__ 4932
    373 // I386:#define __LDBL_MAX_EXP__ 16384
    374 // I386:#define __LDBL_MAX__ 1.18973149535723176502e+4932L
    375 // I386:#define __LDBL_MIN_10_EXP__ (-4931)
    376 // I386:#define __LDBL_MIN_EXP__ (-16381)
    377 // I386:#define __LDBL_MIN__ 3.36210314311209350626e-4932L
    378 // I386:#define __LITTLE_ENDIAN__ 1
    379 // I386:#define __LONG_LONG_MAX__ 9223372036854775807LL
    380 // I386:#define __LONG_MAX__ 2147483647L
    381 // I386:#define __NO_INLINE__ 1
    382 // I386:#define __NO_MATH_INLINES 1
    383 // I386:#define __POINTER_WIDTH__ 32
    384 // I386:#define __PTRDIFF_TYPE__ int
    385 // I386:#define __PTRDIFF_WIDTH__ 32
    386 // I386:#define __REGISTER_PREFIX__
    387 // I386:#define __SCHAR_MAX__ 127
    388 // I386:#define __SHRT_MAX__ 32767
    389 // I386:#define __SIG_ATOMIC_WIDTH__ 32
    390 // I386:#define __SIZEOF_DOUBLE__ 8
    391 // I386:#define __SIZEOF_FLOAT__ 4
    392 // I386:#define __SIZEOF_INT__ 4
    393 // I386:#define __SIZEOF_LONG_DOUBLE__ 12
    394 // I386:#define __SIZEOF_LONG_LONG__ 8
    395 // I386:#define __SIZEOF_LONG__ 4
    396 // I386:#define __SIZEOF_POINTER__ 4
    397 // I386:#define __SIZEOF_PTRDIFF_T__ 4
    398 // I386:#define __SIZEOF_SHORT__ 2
    399 // I386:#define __SIZEOF_SIZE_T__ 4
    400 // I386:#define __SIZEOF_WCHAR_T__ 4
    401 // I386:#define __SIZEOF_WINT_T__ 4
    402 // I386:#define __SIZE_TYPE__ unsigned int
    403 // I386:#define __SIZE_WIDTH__ 32
    404 // I386:#define __UINTMAX_TYPE__ long long unsigned int
    405 // I386:#define __USER_LABEL_PREFIX__ _
    406 // I386:#define __WCHAR_MAX__ 2147483647
    407 // I386:#define __WCHAR_TYPE__ int
    408 // I386:#define __WCHAR_WIDTH__ 32
    409 // I386:#define __WINT_TYPE__ int
    410 // I386:#define __WINT_WIDTH__ 32
    411 // I386:#define __i386 1
    412 // I386:#define __i386__ 1
    413 // I386:#define __nocona 1
    414 // I386:#define __nocona__ 1
    415 // I386:#define __tune_nocona__ 1
    416 // I386:#define i386 1
    417 //
    418 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-pc-linux-gnu < /dev/null | FileCheck -check-prefix I386-LINUX %s
    419 //
    420 // I386-LINUX:#define __CHAR16_TYPE__ unsigned short
    421 // I386-LINUX:#define __CHAR32_TYPE__ unsigned int
    422 // I386-LINUX:#define __CHAR_BIT__ 8
    423 // I386-LINUX:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
    424 // I386-LINUX:#define __DBL_DIG__ 15
    425 // I386-LINUX:#define __DBL_EPSILON__ 2.2204460492503131e-16
    426 // I386-LINUX:#define __DBL_HAS_DENORM__ 1
    427 // I386-LINUX:#define __DBL_HAS_INFINITY__ 1
    428 // I386-LINUX:#define __DBL_HAS_QUIET_NAN__ 1
    429 // I386-LINUX:#define __DBL_MANT_DIG__ 53
    430 // I386-LINUX:#define __DBL_MAX_10_EXP__ 308
    431 // I386-LINUX:#define __DBL_MAX_EXP__ 1024
    432 // I386-LINUX:#define __DBL_MAX__ 1.7976931348623157e+308
    433 // I386-LINUX:#define __DBL_MIN_10_EXP__ (-307)
    434 // I386-LINUX:#define __DBL_MIN_EXP__ (-1021)
    435 // I386-LINUX:#define __DBL_MIN__ 2.2250738585072014e-308
    436 // I386-LINUX:#define __DECIMAL_DIG__ 21
    437 // I386-LINUX:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    438 // I386-LINUX:#define __FLT_DIG__ 6
    439 // I386-LINUX:#define __FLT_EPSILON__ 1.19209290e-7F
    440 // I386-LINUX:#define __FLT_EVAL_METHOD__ 0
    441 // I386-LINUX:#define __FLT_HAS_DENORM__ 1
    442 // I386-LINUX:#define __FLT_HAS_INFINITY__ 1
    443 // I386-LINUX:#define __FLT_HAS_QUIET_NAN__ 1
    444 // I386-LINUX:#define __FLT_MANT_DIG__ 24
    445 // I386-LINUX:#define __FLT_MAX_10_EXP__ 38
    446 // I386-LINUX:#define __FLT_MAX_EXP__ 128
    447 // I386-LINUX:#define __FLT_MAX__ 3.40282347e+38F
    448 // I386-LINUX:#define __FLT_MIN_10_EXP__ (-37)
    449 // I386-LINUX:#define __FLT_MIN_EXP__ (-125)
    450 // I386-LINUX:#define __FLT_MIN__ 1.17549435e-38F
    451 // I386-LINUX:#define __FLT_RADIX__ 2
    452 // I386-LINUX:#define __INT16_TYPE__ short
    453 // I386-LINUX:#define __INT32_TYPE__ int
    454 // I386-LINUX:#define __INT64_C_SUFFIX__ LL
    455 // I386-LINUX:#define __INT64_TYPE__ long long int
    456 // I386-LINUX:#define __INT8_TYPE__ char
    457 // I386-LINUX:#define __INTMAX_MAX__ 9223372036854775807LL
    458 // I386-LINUX:#define __INTMAX_TYPE__ long long int
    459 // I386-LINUX:#define __INTMAX_WIDTH__ 64
    460 // I386-LINUX:#define __INTPTR_TYPE__ int
    461 // I386-LINUX:#define __INTPTR_WIDTH__ 32
    462 // I386-LINUX:#define __INT_MAX__ 2147483647
    463 // I386-LINUX:#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
    464 // I386-LINUX:#define __LDBL_DIG__ 18
    465 // I386-LINUX:#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
    466 // I386-LINUX:#define __LDBL_HAS_DENORM__ 1
    467 // I386-LINUX:#define __LDBL_HAS_INFINITY__ 1
    468 // I386-LINUX:#define __LDBL_HAS_QUIET_NAN__ 1
    469 // I386-LINUX:#define __LDBL_MANT_DIG__ 64
    470 // I386-LINUX:#define __LDBL_MAX_10_EXP__ 4932
    471 // I386-LINUX:#define __LDBL_MAX_EXP__ 16384
    472 // I386-LINUX:#define __LDBL_MAX__ 1.18973149535723176502e+4932L
    473 // I386-LINUX:#define __LDBL_MIN_10_EXP__ (-4931)
    474 // I386-LINUX:#define __LDBL_MIN_EXP__ (-16381)
    475 // I386-LINUX:#define __LDBL_MIN__ 3.36210314311209350626e-4932L
    476 // I386-LINUX:#define __LITTLE_ENDIAN__ 1
    477 // I386-LINUX:#define __LONG_LONG_MAX__ 9223372036854775807LL
    478 // I386-LINUX:#define __LONG_MAX__ 2147483647L
    479 // I386-LINUX:#define __NO_INLINE__ 1
    480 // I386-LINUX:#define __NO_MATH_INLINES 1
    481 // I386-LINUX:#define __POINTER_WIDTH__ 32
    482 // I386-LINUX:#define __PTRDIFF_TYPE__ int
    483 // I386-LINUX:#define __PTRDIFF_WIDTH__ 32
    484 // I386-LINUX:#define __REGISTER_PREFIX__
    485 // I386-LINUX:#define __SCHAR_MAX__ 127
    486 // I386-LINUX:#define __SHRT_MAX__ 32767
    487 // I386-LINUX:#define __SIG_ATOMIC_WIDTH__ 32
    488 // I386-LINUX:#define __SIZEOF_DOUBLE__ 8
    489 // I386-LINUX:#define __SIZEOF_FLOAT__ 4
    490 // I386-LINUX:#define __SIZEOF_INT__ 4
    491 // I386-LINUX:#define __SIZEOF_LONG_DOUBLE__ 12
    492 // I386-LINUX:#define __SIZEOF_LONG_LONG__ 8
    493 // I386-LINUX:#define __SIZEOF_LONG__ 4
    494 // I386-LINUX:#define __SIZEOF_POINTER__ 4
    495 // I386-LINUX:#define __SIZEOF_PTRDIFF_T__ 4
    496 // I386-LINUX:#define __SIZEOF_SHORT__ 2
    497 // I386-LINUX:#define __SIZEOF_SIZE_T__ 4
    498 // I386-LINUX:#define __SIZEOF_WCHAR_T__ 4
    499 // I386-LINUX:#define __SIZEOF_WINT_T__ 4
    500 // I386-LINUX:#define __SIZE_TYPE__ unsigned int
    501 // I386-LINUX:#define __SIZE_WIDTH__ 32
    502 // I386-LINUX:#define __UINTMAX_TYPE__ long long unsigned int
    503 // I386-LINUX:#define __USER_LABEL_PREFIX__
    504 // I386-LINUX:#define __WCHAR_MAX__ 2147483647
    505 // I386-LINUX:#define __WCHAR_TYPE__ int
    506 // I386-LINUX:#define __WCHAR_WIDTH__ 32
    507 // I386-LINUX:#define __WINT_TYPE__ unsigned int
    508 // I386-LINUX:#define __WINT_WIDTH__ 32
    509 // I386-LINUX:#define __i386 1
    510 // I386-LINUX:#define __i386__ 1
    511 // I386-LINUX:#define __nocona 1
    512 // I386-LINUX:#define __nocona__ 1
    513 // I386-LINUX:#define __tune_nocona__ 1
    514 // I386-LINUX:#define i386 1
    515 //
    516 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=msp430-none-none < /dev/null | FileCheck -check-prefix MSP430 %s
    517 //
    518 // MSP430:#define MSP430 1
    519 // MSP430:#define __CHAR16_TYPE__ unsigned short
    520 // MSP430:#define __CHAR32_TYPE__ unsigned int
    521 // MSP430:#define __CHAR_BIT__ 8
    522 // MSP430:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
    523 // MSP430:#define __DBL_DIG__ 15
    524 // MSP430:#define __DBL_EPSILON__ 2.2204460492503131e-16
    525 // MSP430:#define __DBL_HAS_DENORM__ 1
    526 // MSP430:#define __DBL_HAS_INFINITY__ 1
    527 // MSP430:#define __DBL_HAS_QUIET_NAN__ 1
    528 // MSP430:#define __DBL_MANT_DIG__ 53
    529 // MSP430:#define __DBL_MAX_10_EXP__ 308
    530 // MSP430:#define __DBL_MAX_EXP__ 1024
    531 // MSP430:#define __DBL_MAX__ 1.7976931348623157e+308
    532 // MSP430:#define __DBL_MIN_10_EXP__ (-307)
    533 // MSP430:#define __DBL_MIN_EXP__ (-1021)
    534 // MSP430:#define __DBL_MIN__ 2.2250738585072014e-308
    535 // MSP430:#define __DECIMAL_DIG__ 17
    536 // MSP430:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    537 // MSP430:#define __FLT_DIG__ 6
    538 // MSP430:#define __FLT_EPSILON__ 1.19209290e-7F
    539 // MSP430:#define __FLT_EVAL_METHOD__ 0
    540 // MSP430:#define __FLT_HAS_DENORM__ 1
    541 // MSP430:#define __FLT_HAS_INFINITY__ 1
    542 // MSP430:#define __FLT_HAS_QUIET_NAN__ 1
    543 // MSP430:#define __FLT_MANT_DIG__ 24
    544 // MSP430:#define __FLT_MAX_10_EXP__ 38
    545 // MSP430:#define __FLT_MAX_EXP__ 128
    546 // MSP430:#define __FLT_MAX__ 3.40282347e+38F
    547 // MSP430:#define __FLT_MIN_10_EXP__ (-37)
    548 // MSP430:#define __FLT_MIN_EXP__ (-125)
    549 // MSP430:#define __FLT_MIN__ 1.17549435e-38F
    550 // MSP430:#define __FLT_RADIX__ 2
    551 // MSP430:#define __INT16_TYPE__ short
    552 // MSP430:#define __INT32_C_SUFFIX__ L
    553 // MSP430:#define __INT32_TYPE__ long int
    554 // MSP430:#define __INT8_TYPE__ char
    555 // MSP430:#define __INTMAX_MAX__ 2147483647L
    556 // MSP430:#define __INTMAX_TYPE__ long int
    557 // MSP430:#define __INTMAX_WIDTH__ 32
    558 // MSP430:#define __INTPTR_TYPE__ short
    559 // MSP430:#define __INTPTR_WIDTH__ 16
    560 // MSP430:#define __INT_MAX__ 32767
    561 // MSP430:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    562 // MSP430:#define __LDBL_DIG__ 15
    563 // MSP430:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    564 // MSP430:#define __LDBL_HAS_DENORM__ 1
    565 // MSP430:#define __LDBL_HAS_INFINITY__ 1
    566 // MSP430:#define __LDBL_HAS_QUIET_NAN__ 1
    567 // MSP430:#define __LDBL_MANT_DIG__ 53
    568 // MSP430:#define __LDBL_MAX_10_EXP__ 308
    569 // MSP430:#define __LDBL_MAX_EXP__ 1024
    570 // MSP430:#define __LDBL_MAX__ 1.7976931348623157e+308
    571 // MSP430:#define __LDBL_MIN_10_EXP__ (-307)
    572 // MSP430:#define __LDBL_MIN_EXP__ (-1021)
    573 // MSP430:#define __LDBL_MIN__ 2.2250738585072014e-308
    574 // MSP430:#define __LONG_LONG_MAX__ 9223372036854775807LL
    575 // MSP430:#define __LONG_MAX__ 2147483647L
    576 // MSP430:#define __MSP430__ 1
    577 // MSP430:#define __NO_INLINE__ 1
    578 // MSP430:#define __POINTER_WIDTH__ 16
    579 // MSP430:#define __PTRDIFF_TYPE__ int
    580 // MSP430:#define __PTRDIFF_WIDTH__ 16
    581 // MSP430:#define __SCHAR_MAX__ 127
    582 // MSP430:#define __SHRT_MAX__ 32767
    583 // MSP430:#define __SIG_ATOMIC_WIDTH__ 32
    584 // MSP430:#define __SIZEOF_DOUBLE__ 8
    585 // MSP430:#define __SIZEOF_FLOAT__ 4
    586 // MSP430:#define __SIZEOF_INT__ 2
    587 // MSP430:#define __SIZEOF_LONG_DOUBLE__ 8
    588 // MSP430:#define __SIZEOF_LONG_LONG__ 8
    589 // MSP430:#define __SIZEOF_LONG__ 4
    590 // MSP430:#define __SIZEOF_POINTER__ 2
    591 // MSP430:#define __SIZEOF_PTRDIFF_T__ 2
    592 // MSP430:#define __SIZEOF_SHORT__ 2
    593 // MSP430:#define __SIZEOF_SIZE_T__ 2
    594 // MSP430:#define __SIZEOF_WCHAR_T__ 2
    595 // MSP430:#define __SIZEOF_WINT_T__ 2
    596 // MSP430:#define __SIZE_TYPE__ unsigned int
    597 // MSP430:#define __SIZE_WIDTH__ 16
    598 // MSP430:#define __UINTMAX_TYPE__ long unsigned int
    599 // MSP430:#define __USER_LABEL_PREFIX__ _
    600 // MSP430:#define __WCHAR_MAX__ 32767
    601 // MSP430:#define __WCHAR_TYPE__ int
    602 // MSP430:#define __WCHAR_WIDTH__ 16
    603 // MSP430:#define __WINT_TYPE__ int
    604 // MSP430:#define __WINT_WIDTH__ 16
    605 // MSP430:#define __clang__ 1
    606 //
    607 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-none-none -fno-signed-char < /dev/null | FileCheck -check-prefix PPC64 %s
    608 //
    609 // PPC64:#define _ARCH_PPC 1
    610 // PPC64:#define _ARCH_PPC64 1
    611 // PPC64:#define _BIG_ENDIAN 1
    612 // PPC64:#define _LP64 1
    613 // PPC64:#define __BIG_ENDIAN__ 1
    614 // PPC64:#define __CHAR16_TYPE__ unsigned short
    615 // PPC64:#define __CHAR32_TYPE__ unsigned int
    616 // PPC64:#define __CHAR_BIT__ 8
    617 // PPC64:#define __CHAR_UNSIGNED__ 1
    618 // PPC64:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
    619 // PPC64:#define __DBL_DIG__ 15
    620 // PPC64:#define __DBL_EPSILON__ 2.2204460492503131e-16
    621 // PPC64:#define __DBL_HAS_DENORM__ 1
    622 // PPC64:#define __DBL_HAS_INFINITY__ 1
    623 // PPC64:#define __DBL_HAS_QUIET_NAN__ 1
    624 // PPC64:#define __DBL_MANT_DIG__ 53
    625 // PPC64:#define __DBL_MAX_10_EXP__ 308
    626 // PPC64:#define __DBL_MAX_EXP__ 1024
    627 // PPC64:#define __DBL_MAX__ 1.7976931348623157e+308
    628 // PPC64:#define __DBL_MIN_10_EXP__ (-307)
    629 // PPC64:#define __DBL_MIN_EXP__ (-1021)
    630 // PPC64:#define __DBL_MIN__ 2.2250738585072014e-308
    631 // PPC64:#define __DECIMAL_DIG__ 17
    632 // PPC64:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    633 // PPC64:#define __FLT_DIG__ 6
    634 // PPC64:#define __FLT_EPSILON__ 1.19209290e-7F
    635 // PPC64:#define __FLT_EVAL_METHOD__ 0
    636 // PPC64:#define __FLT_HAS_DENORM__ 1
    637 // PPC64:#define __FLT_HAS_INFINITY__ 1
    638 // PPC64:#define __FLT_HAS_QUIET_NAN__ 1
    639 // PPC64:#define __FLT_MANT_DIG__ 24
    640 // PPC64:#define __FLT_MAX_10_EXP__ 38
    641 // PPC64:#define __FLT_MAX_EXP__ 128
    642 // PPC64:#define __FLT_MAX__ 3.40282347e+38F
    643 // PPC64:#define __FLT_MIN_10_EXP__ (-37)
    644 // PPC64:#define __FLT_MIN_EXP__ (-125)
    645 // PPC64:#define __FLT_MIN__ 1.17549435e-38F
    646 // PPC64:#define __FLT_RADIX__ 2
    647 // PPC64:#define __INT16_TYPE__ short
    648 // PPC64:#define __INT32_TYPE__ int
    649 // PPC64:#define __INT64_C_SUFFIX__ L
    650 // PPC64:#define __INT64_TYPE__ long int
    651 // PPC64:#define __INT8_TYPE__ char
    652 // PPC64:#define __INTMAX_MAX__ 9223372036854775807L
    653 // PPC64:#define __INTMAX_TYPE__ long int
    654 // PPC64:#define __INTMAX_WIDTH__ 64
    655 // PPC64:#define __INTPTR_TYPE__ long int
    656 // PPC64:#define __INTPTR_WIDTH__ 64
    657 // PPC64:#define __INT_MAX__ 2147483647
    658 // PPC64:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    659 // PPC64:#define __LDBL_DIG__ 15
    660 // PPC64:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    661 // PPC64:#define __LDBL_HAS_DENORM__ 1
    662 // PPC64:#define __LDBL_HAS_INFINITY__ 1
    663 // PPC64:#define __LDBL_HAS_QUIET_NAN__ 1
    664 // PPC64:#define __LDBL_MANT_DIG__ 53
    665 // PPC64:#define __LDBL_MAX_10_EXP__ 308
    666 // PPC64:#define __LDBL_MAX_EXP__ 1024
    667 // PPC64:#define __LDBL_MAX__ 1.7976931348623157e+308
    668 // PPC64:#define __LDBL_MIN_10_EXP__ (-307)
    669 // PPC64:#define __LDBL_MIN_EXP__ (-1021)
    670 // PPC64:#define __LDBL_MIN__ 2.2250738585072014e-308
    671 // PPC64:#define __LONG_DOUBLE_128__ 1
    672 // PPC64:#define __LONG_LONG_MAX__ 9223372036854775807LL
    673 // PPC64:#define __LONG_MAX__ 9223372036854775807L
    674 // PPC64:#define __LP64__ 1
    675 // PPC64:#define __NATURAL_ALIGNMENT__ 1
    676 // PPC64:#define __NO_INLINE__ 1
    677 // PPC64:#define __POINTER_WIDTH__ 64
    678 // PPC64:#define __POWERPC__ 1
    679 // PPC64:#define __PTRDIFF_TYPE__ long int
    680 // PPC64:#define __PTRDIFF_WIDTH__ 64
    681 // PPC64:#define __REGISTER_PREFIX__
    682 // PPC64:#define __SCHAR_MAX__ 127
    683 // PPC64:#define __SHRT_MAX__ 32767
    684 // PPC64:#define __SIG_ATOMIC_WIDTH__ 32
    685 // PPC64:#define __SIZEOF_DOUBLE__ 8
    686 // PPC64:#define __SIZEOF_FLOAT__ 4
    687 // PPC64:#define __SIZEOF_INT__ 4
    688 // PPC64:#define __SIZEOF_LONG_DOUBLE__ 8
    689 // PPC64:#define __SIZEOF_LONG_LONG__ 8
    690 // PPC64:#define __SIZEOF_LONG__ 8
    691 // PPC64:#define __SIZEOF_POINTER__ 8
    692 // PPC64:#define __SIZEOF_PTRDIFF_T__ 8
    693 // PPC64:#define __SIZEOF_SHORT__ 2
    694 // PPC64:#define __SIZEOF_SIZE_T__ 8
    695 // PPC64:#define __SIZEOF_WCHAR_T__ 4
    696 // PPC64:#define __SIZEOF_WINT_T__ 4
    697 // PPC64:#define __SIZE_TYPE__ long unsigned int
    698 // PPC64:#define __SIZE_WIDTH__ 64
    699 // PPC64:#define __UINTMAX_TYPE__ long unsigned int
    700 // PPC64:#define __USER_LABEL_PREFIX__ _
    701 // PPC64:#define __WCHAR_MAX__ 2147483647
    702 // PPC64:#define __WCHAR_TYPE__ int
    703 // PPC64:#define __WCHAR_WIDTH__ 32
    704 // PPC64:#define __WINT_TYPE__ int
    705 // PPC64:#define __WINT_WIDTH__ 32
    706 // PPC64:#define __ppc64__ 1
    707 // PPC64:#define __ppc__ 1
    708 //
    709 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-none-none -fno-signed-char < /dev/null | FileCheck -check-prefix PPC %s
    710 //
    711 // PPC:#define _ARCH_PPC 1
    712 // PPC:#define _BIG_ENDIAN 1
    713 // PPC:#define __BIG_ENDIAN__ 1
    714 // PPC:#define __CHAR16_TYPE__ unsigned short
    715 // PPC:#define __CHAR32_TYPE__ unsigned int
    716 // PPC:#define __CHAR_BIT__ 8
    717 // PPC:#define __CHAR_UNSIGNED__ 1
    718 // PPC:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
    719 // PPC:#define __DBL_DIG__ 15
    720 // PPC:#define __DBL_EPSILON__ 2.2204460492503131e-16
    721 // PPC:#define __DBL_HAS_DENORM__ 1
    722 // PPC:#define __DBL_HAS_INFINITY__ 1
    723 // PPC:#define __DBL_HAS_QUIET_NAN__ 1
    724 // PPC:#define __DBL_MANT_DIG__ 53
    725 // PPC:#define __DBL_MAX_10_EXP__ 308
    726 // PPC:#define __DBL_MAX_EXP__ 1024
    727 // PPC:#define __DBL_MAX__ 1.7976931348623157e+308
    728 // PPC:#define __DBL_MIN_10_EXP__ (-307)
    729 // PPC:#define __DBL_MIN_EXP__ (-1021)
    730 // PPC:#define __DBL_MIN__ 2.2250738585072014e-308
    731 // PPC:#define __DECIMAL_DIG__ 17
    732 // PPC:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    733 // PPC:#define __FLT_DIG__ 6
    734 // PPC:#define __FLT_EPSILON__ 1.19209290e-7F
    735 // PPC:#define __FLT_EVAL_METHOD__ 0
    736 // PPC:#define __FLT_HAS_DENORM__ 1
    737 // PPC:#define __FLT_HAS_INFINITY__ 1
    738 // PPC:#define __FLT_HAS_QUIET_NAN__ 1
    739 // PPC:#define __FLT_MANT_DIG__ 24
    740 // PPC:#define __FLT_MAX_10_EXP__ 38
    741 // PPC:#define __FLT_MAX_EXP__ 128
    742 // PPC:#define __FLT_MAX__ 3.40282347e+38F
    743 // PPC:#define __FLT_MIN_10_EXP__ (-37)
    744 // PPC:#define __FLT_MIN_EXP__ (-125)
    745 // PPC:#define __FLT_MIN__ 1.17549435e-38F
    746 // PPC:#define __FLT_RADIX__ 2
    747 // PPC:#define __INT16_TYPE__ short
    748 // PPC:#define __INT32_TYPE__ int
    749 // PPC:#define __INT64_C_SUFFIX__ LL
    750 // PPC:#define __INT64_TYPE__ long long int
    751 // PPC:#define __INT8_TYPE__ char
    752 // PPC:#define __INTMAX_MAX__ 9223372036854775807LL
    753 // PPC:#define __INTMAX_TYPE__ long long int
    754 // PPC:#define __INTMAX_WIDTH__ 64
    755 // PPC:#define __INTPTR_TYPE__ long int
    756 // PPC:#define __INTPTR_WIDTH__ 32
    757 // PPC:#define __INT_MAX__ 2147483647
    758 // PPC:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    759 // PPC:#define __LDBL_DIG__ 15
    760 // PPC:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    761 // PPC:#define __LDBL_HAS_DENORM__ 1
    762 // PPC:#define __LDBL_HAS_INFINITY__ 1
    763 // PPC:#define __LDBL_HAS_QUIET_NAN__ 1
    764 // PPC:#define __LDBL_MANT_DIG__ 53
    765 // PPC:#define __LDBL_MAX_10_EXP__ 308
    766 // PPC:#define __LDBL_MAX_EXP__ 1024
    767 // PPC:#define __LDBL_MAX__ 1.7976931348623157e+308
    768 // PPC:#define __LDBL_MIN_10_EXP__ (-307)
    769 // PPC:#define __LDBL_MIN_EXP__ (-1021)
    770 // PPC:#define __LDBL_MIN__ 2.2250738585072014e-308
    771 // PPC:#define __LONG_DOUBLE_128__ 1
    772 // PPC:#define __LONG_LONG_MAX__ 9223372036854775807LL
    773 // PPC:#define __LONG_MAX__ 2147483647L
    774 // PPC:#define __NATURAL_ALIGNMENT__ 1
    775 // PPC:#define __NO_INLINE__ 1
    776 // PPC:#define __POINTER_WIDTH__ 32
    777 // PPC:#define __POWERPC__ 1
    778 // PPC:#define __PTRDIFF_TYPE__ long int
    779 // PPC:#define __PTRDIFF_WIDTH__ 32
    780 // PPC:#define __REGISTER_PREFIX__
    781 // PPC:#define __SCHAR_MAX__ 127
    782 // PPC:#define __SHRT_MAX__ 32767
    783 // PPC:#define __SIG_ATOMIC_WIDTH__ 32
    784 // PPC:#define __SIZEOF_DOUBLE__ 8
    785 // PPC:#define __SIZEOF_FLOAT__ 4
    786 // PPC:#define __SIZEOF_INT__ 4
    787 // PPC:#define __SIZEOF_LONG_DOUBLE__ 8
    788 // PPC:#define __SIZEOF_LONG_LONG__ 8
    789 // PPC:#define __SIZEOF_LONG__ 4
    790 // PPC:#define __SIZEOF_POINTER__ 4
    791 // PPC:#define __SIZEOF_PTRDIFF_T__ 4
    792 // PPC:#define __SIZEOF_SHORT__ 2
    793 // PPC:#define __SIZEOF_SIZE_T__ 4
    794 // PPC:#define __SIZEOF_WCHAR_T__ 4
    795 // PPC:#define __SIZEOF_WINT_T__ 4
    796 // PPC:#define __SIZE_TYPE__ long unsigned int
    797 // PPC:#define __SIZE_WIDTH__ 32
    798 // PPC:#define __UINTMAX_TYPE__ long long unsigned int
    799 // PPC:#define __USER_LABEL_PREFIX__ _
    800 // PPC:#define __WCHAR_MAX__ 2147483647
    801 // PPC:#define __WCHAR_TYPE__ int
    802 // PPC:#define __WCHAR_WIDTH__ 32
    803 // PPC:#define __WINT_TYPE__ int
    804 // PPC:#define __WINT_WIDTH__ 32
    805 // PPC:#define __ppc__ 1
    806 //
    807 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-none -fno-signed-char < /dev/null | FileCheck -check-prefix S390X %s
    808 //
    809 // S390X:#define __CHAR16_TYPE__ unsigned short
    810 // S390X:#define __CHAR32_TYPE__ unsigned int
    811 // S390X:#define __CHAR_BIT__ 8
    812 // S390X:#define __CHAR_UNSIGNED__ 1
    813 // S390X:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
    814 // S390X:#define __DBL_DIG__ 15
    815 // S390X:#define __DBL_EPSILON__ 2.2204460492503131e-16
    816 // S390X:#define __DBL_HAS_DENORM__ 1
    817 // S390X:#define __DBL_HAS_INFINITY__ 1
    818 // S390X:#define __DBL_HAS_QUIET_NAN__ 1
    819 // S390X:#define __DBL_MANT_DIG__ 53
    820 // S390X:#define __DBL_MAX_10_EXP__ 308
    821 // S390X:#define __DBL_MAX_EXP__ 1024
    822 // S390X:#define __DBL_MAX__ 1.7976931348623157e+308
    823 // S390X:#define __DBL_MIN_10_EXP__ (-307)
    824 // S390X:#define __DBL_MIN_EXP__ (-1021)
    825 // S390X:#define __DBL_MIN__ 2.2250738585072014e-308
    826 // S390X:#define __DECIMAL_DIG__ 17
    827 // S390X:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    828 // S390X:#define __FLT_DIG__ 6
    829 // S390X:#define __FLT_EPSILON__ 1.19209290e-7F
    830 // S390X:#define __FLT_EVAL_METHOD__ 0
    831 // S390X:#define __FLT_HAS_DENORM__ 1
    832 // S390X:#define __FLT_HAS_INFINITY__ 1
    833 // S390X:#define __FLT_HAS_QUIET_NAN__ 1
    834 // S390X:#define __FLT_MANT_DIG__ 24
    835 // S390X:#define __FLT_MAX_10_EXP__ 38
    836 // S390X:#define __FLT_MAX_EXP__ 128
    837 // S390X:#define __FLT_MAX__ 3.40282347e+38F
    838 // S390X:#define __FLT_MIN_10_EXP__ (-37)
    839 // S390X:#define __FLT_MIN_EXP__ (-125)
    840 // S390X:#define __FLT_MIN__ 1.17549435e-38F
    841 // S390X:#define __FLT_RADIX__ 2
    842 // S390X:#define __INT16_TYPE__ short
    843 // S390X:#define __INT32_TYPE__ int
    844 // S390X:#define __INT64_C_SUFFIX__ L
    845 // S390X:#define __INT64_TYPE__ long long int
    846 // S390X:#define __INT8_TYPE__ char
    847 // S390X:#define __INTMAX_MAX__ 9223372036854775807LL
    848 // S390X:#define __INTMAX_TYPE__ long long int
    849 // S390X:#define __INTMAX_WIDTH__ 64
    850 // S390X:#define __INTPTR_TYPE__ long int
    851 // S390X:#define __INTPTR_WIDTH__ 64
    852 // S390X:#define __INT_MAX__ 2147483647
    853 // S390X:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    854 // S390X:#define __LDBL_DIG__ 15
    855 // S390X:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    856 // S390X:#define __LDBL_HAS_DENORM__ 1
    857 // S390X:#define __LDBL_HAS_INFINITY__ 1
    858 // S390X:#define __LDBL_HAS_QUIET_NAN__ 1
    859 // S390X:#define __LDBL_MANT_DIG__ 53
    860 // S390X:#define __LDBL_MAX_10_EXP__ 308
    861 // S390X:#define __LDBL_MAX_EXP__ 1024
    862 // S390X:#define __LDBL_MAX__ 1.7976931348623157e+308
    863 // S390X:#define __LDBL_MIN_10_EXP__ (-307)
    864 // S390X:#define __LDBL_MIN_EXP__ (-1021)
    865 // S390X:#define __LDBL_MIN__ 2.2250738585072014e-308
    866 // S390X:#define __LONG_LONG_MAX__ 9223372036854775807LL
    867 // S390X:#define __LONG_MAX__ 9223372036854775807L
    868 // S390X:#define __NO_INLINE__ 1
    869 // S390X:#define __POINTER_WIDTH__ 64
    870 // S390X:#define __PTRDIFF_TYPE__ long int
    871 // S390X:#define __PTRDIFF_WIDTH__ 64
    872 // S390X:#define __SCHAR_MAX__ 127
    873 // S390X:#define __SHRT_MAX__ 32767
    874 // S390X:#define __SIG_ATOMIC_WIDTH__ 32
    875 // S390X:#define __SIZEOF_DOUBLE__ 8
    876 // S390X:#define __SIZEOF_FLOAT__ 4
    877 // S390X:#define __SIZEOF_INT__ 4
    878 // S390X:#define __SIZEOF_LONG_DOUBLE__ 8
    879 // S390X:#define __SIZEOF_LONG_LONG__ 8
    880 // S390X:#define __SIZEOF_LONG__ 8
    881 // S390X:#define __SIZEOF_POINTER__ 8
    882 // S390X:#define __SIZEOF_PTRDIFF_T__ 8
    883 // S390X:#define __SIZEOF_SHORT__ 2
    884 // S390X:#define __SIZEOF_SIZE_T__ 8
    885 // S390X:#define __SIZEOF_WCHAR_T__ 4
    886 // S390X:#define __SIZEOF_WINT_T__ 4
    887 // S390X:#define __SIZE_TYPE__ long unsigned int
    888 // S390X:#define __SIZE_WIDTH__ 64
    889 // S390X:#define __UINTMAX_TYPE__ long long unsigned int
    890 // S390X:#define __USER_LABEL_PREFIX__ _
    891 // S390X:#define __WCHAR_MAX__ 2147483647
    892 // S390X:#define __WCHAR_TYPE__ int
    893 // S390X:#define __WCHAR_WIDTH__ 32
    894 // S390X:#define __WINT_TYPE__ int
    895 // S390X:#define __WINT_WIDTH__ 32
    896 // S390X:#define __s390__ 1
    897 // S390X:#define __s390x__ 1
    898 //
    899 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc-none-none < /dev/null | FileCheck -check-prefix SPARC %s
    900 //
    901 // SPARC:#define __CHAR16_TYPE__ unsigned short
    902 // SPARC:#define __CHAR32_TYPE__ unsigned int
    903 // SPARC:#define __CHAR_BIT__ 8
    904 // SPARC:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
    905 // SPARC:#define __DBL_DIG__ 15
    906 // SPARC:#define __DBL_EPSILON__ 2.2204460492503131e-16
    907 // SPARC:#define __DBL_HAS_DENORM__ 1
    908 // SPARC:#define __DBL_HAS_INFINITY__ 1
    909 // SPARC:#define __DBL_HAS_QUIET_NAN__ 1
    910 // SPARC:#define __DBL_MANT_DIG__ 53
    911 // SPARC:#define __DBL_MAX_10_EXP__ 308
    912 // SPARC:#define __DBL_MAX_EXP__ 1024
    913 // SPARC:#define __DBL_MAX__ 1.7976931348623157e+308
    914 // SPARC:#define __DBL_MIN_10_EXP__ (-307)
    915 // SPARC:#define __DBL_MIN_EXP__ (-1021)
    916 // SPARC:#define __DBL_MIN__ 2.2250738585072014e-308
    917 // SPARC:#define __DECIMAL_DIG__ 17
    918 // SPARC:#define __FLT_DENORM_MIN__ 1.40129846e-45F
    919 // SPARC:#define __FLT_DIG__ 6
    920 // SPARC:#define __FLT_EPSILON__ 1.19209290e-7F
    921 // SPARC:#define __FLT_EVAL_METHOD__ 0
    922 // SPARC:#define __FLT_HAS_DENORM__ 1
    923 // SPARC:#define __FLT_HAS_INFINITY__ 1
    924 // SPARC:#define __FLT_HAS_QUIET_NAN__ 1
    925 // SPARC:#define __FLT_MANT_DIG__ 24
    926 // SPARC:#define __FLT_MAX_10_EXP__ 38
    927 // SPARC:#define __FLT_MAX_EXP__ 128
    928 // SPARC:#define __FLT_MAX__ 3.40282347e+38F
    929 // SPARC:#define __FLT_MIN_10_EXP__ (-37)
    930 // SPARC:#define __FLT_MIN_EXP__ (-125)
    931 // SPARC:#define __FLT_MIN__ 1.17549435e-38F
    932 // SPARC:#define __FLT_RADIX__ 2
    933 // SPARC:#define __INT16_TYPE__ short
    934 // SPARC:#define __INT32_TYPE__ int
    935 // SPARC:#define __INT64_C_SUFFIX__ LL
    936 // SPARC:#define __INT64_TYPE__ long long int
    937 // SPARC:#define __INT8_TYPE__ char
    938 // SPARC:#define __INTMAX_MAX__ 9223372036854775807LL
    939 // SPARC:#define __INTMAX_TYPE__ long long int
    940 // SPARC:#define __INTMAX_WIDTH__ 64
    941 // SPARC:#define __INTPTR_TYPE__ long int
    942 // SPARC:#define __INTPTR_WIDTH__ 32
    943 // SPARC:#define __INT_MAX__ 2147483647
    944 // SPARC:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324
    945 // SPARC:#define __LDBL_DIG__ 15
    946 // SPARC:#define __LDBL_EPSILON__ 2.2204460492503131e-16
    947 // SPARC:#define __LDBL_HAS_DENORM__ 1
    948 // SPARC:#define __LDBL_HAS_INFINITY__ 1
    949 // SPARC:#define __LDBL_HAS_QUIET_NAN__ 1
    950 // SPARC:#define __LDBL_MANT_DIG__ 53
    951 // SPARC:#define __LDBL_MAX_10_EXP__ 308
    952 // SPARC:#define __LDBL_MAX_EXP__ 1024
    953 // SPARC:#define __LDBL_MAX__ 1.7976931348623157e+308
    954 // SPARC:#define __LDBL_MIN_10_EXP__ (-307)
    955 // SPARC:#define __LDBL_MIN_EXP__ (-1021)
    956 // SPARC:#define __LDBL_MIN__ 2.2250738585072014e-308
    957 // SPARC:#define __LONG_LONG_MAX__ 9223372036854775807LL
    958 // SPARC:#define __LONG_MAX__ 2147483647L
    959 // SPARC:#define __NO_INLINE__ 1
    960 // SPARC:#define __POINTER_WIDTH__ 32
    961 // SPARC:#define __PTRDIFF_TYPE__ long int
    962 // SPARC:#define __PTRDIFF_WIDTH__ 32
    963 // SPARC:#define __REGISTER_PREFIX__
    964 // SPARC:#define __SCHAR_MAX__ 127
    965 // SPARC:#define __SHRT_MAX__ 32767
    966 // SPARC:#define __SIG_ATOMIC_WIDTH__ 32
    967 // SPARC:#define __SIZEOF_DOUBLE__ 8
    968 // SPARC:#define __SIZEOF_FLOAT__ 4
    969 // SPARC:#define __SIZEOF_INT__ 4
    970 // SPARC:#define __SIZEOF_LONG_DOUBLE__ 8
    971 // SPARC:#define __SIZEOF_LONG_LONG__ 8
    972 // SPARC:#define __SIZEOF_LONG__ 4
    973 // SPARC:#define __SIZEOF_POINTER__ 4
    974 // SPARC:#define __SIZEOF_PTRDIFF_T__ 4
    975 // SPARC:#define __SIZEOF_SHORT__ 2
    976 // SPARC:#define __SIZEOF_SIZE_T__ 4
    977 // SPARC:#define __SIZEOF_WCHAR_T__ 4
    978 // SPARC:#define __SIZEOF_WINT_T__ 4
    979 // SPARC:#define __SIZE_TYPE__ long unsigned int
    980 // SPARC:#define __SIZE_WIDTH__ 32
    981 // SPARC:#define __UINTMAX_TYPE__ long long unsigned int
    982 // SPARC:#define __USER_LABEL_PREFIX__ _
    983 // SPARC:#define __VERSION__ "4.2.1 Compatible
    984 // SPARC:#define __WCHAR_MAX__ 2147483647
    985 // SPARC:#define __WCHAR_TYPE__ int
    986 // SPARC:#define __WCHAR_WIDTH__ 32
    987 // SPARC:#define __WINT_TYPE__ int
    988 // SPARC:#define __WINT_WIDTH__ 32
    989 // SPARC:#define __sparc 1
    990 // SPARC:#define __sparc__ 1
    991 // SPARC:#define __sparcv8 1
    992 // SPARC:#define sparc 1
    993 //
    994 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=tce-none-none < /dev/null | FileCheck -check-prefix TCE %s
    995 //
    996 // TCE:#define __CHAR16_TYPE__ unsigned short
    997 // TCE:#define __CHAR32_TYPE__ unsigned int
    998 // TCE:#define __CHAR_BIT__ 8
    999 // TCE:#define __DBL_DENORM_MIN__ 1.40129846e-45F
   1000 // TCE:#define __DBL_DIG__ 6
   1001 // TCE:#define __DBL_EPSILON__ 1.19209290e-7F
   1002 // TCE:#define __DBL_HAS_DENORM__ 1
   1003 // TCE:#define __DBL_HAS_INFINITY__ 1
   1004 // TCE:#define __DBL_HAS_QUIET_NAN__ 1
   1005 // TCE:#define __DBL_MANT_DIG__ 24
   1006 // TCE:#define __DBL_MAX_10_EXP__ 38
   1007 // TCE:#define __DBL_MAX_EXP__ 128
   1008 // TCE:#define __DBL_MAX__ 3.40282347e+38F
   1009 // TCE:#define __DBL_MIN_10_EXP__ (-37)
   1010 // TCE:#define __DBL_MIN_EXP__ (-125)
   1011 // TCE:#define __DBL_MIN__ 1.17549435e-38F
   1012 // TCE:#define __DECIMAL_DIG__ -1
   1013 // TCE:#define __FLT_DENORM_MIN__ 1.40129846e-45F
   1014 // TCE:#define __FLT_DIG__ 6
   1015 // TCE:#define __FLT_EPSILON__ 1.19209290e-7F
   1016 // TCE:#define __FLT_EVAL_METHOD__ 0
   1017 // TCE:#define __FLT_HAS_DENORM__ 1
   1018 // TCE:#define __FLT_HAS_INFINITY__ 1
   1019 // TCE:#define __FLT_HAS_QUIET_NAN__ 1
   1020 // TCE:#define __FLT_MANT_DIG__ 24
   1021 // TCE:#define __FLT_MAX_10_EXP__ 38
   1022 // TCE:#define __FLT_MAX_EXP__ 128
   1023 // TCE:#define __FLT_MAX__ 3.40282347e+38F
   1024 // TCE:#define __FLT_MIN_10_EXP__ (-37)
   1025 // TCE:#define __FLT_MIN_EXP__ (-125)
   1026 // TCE:#define __FLT_MIN__ 1.17549435e-38F
   1027 // TCE:#define __FLT_RADIX__ 2
   1028 // TCE:#define __INT16_TYPE__ short
   1029 // TCE:#define __INT32_TYPE__ int
   1030 // TCE:#define __INT8_TYPE__ char
   1031 // TCE:#define __INTMAX_MAX__ 2147483647L
   1032 // TCE:#define __INTMAX_TYPE__ long int
   1033 // TCE:#define __INTMAX_WIDTH__ 32
   1034 // TCE:#define __INTPTR_TYPE__ int
   1035 // TCE:#define __INTPTR_WIDTH__ 32
   1036 // TCE:#define __INT_MAX__ 2147483647
   1037 // TCE:#define __LDBL_DENORM_MIN__ 1.40129846e-45F
   1038 // TCE:#define __LDBL_DIG__ 6
   1039 // TCE:#define __LDBL_EPSILON__ 1.19209290e-7F
   1040 // TCE:#define __LDBL_HAS_DENORM__ 1
   1041 // TCE:#define __LDBL_HAS_INFINITY__ 1
   1042 // TCE:#define __LDBL_HAS_QUIET_NAN__ 1
   1043 // TCE:#define __LDBL_MANT_DIG__ 24
   1044 // TCE:#define __LDBL_MAX_10_EXP__ 38
   1045 // TCE:#define __LDBL_MAX_EXP__ 128
   1046 // TCE:#define __LDBL_MAX__ 3.40282347e+38F
   1047 // TCE:#define __LDBL_MIN_10_EXP__ (-37)
   1048 // TCE:#define __LDBL_MIN_EXP__ (-125)
   1049 // TCE:#define __LDBL_MIN__ 1.17549435e-38F
   1050 // TCE:#define __LONG_LONG_MAX__ 2147483647LL
   1051 // TCE:#define __LONG_MAX__ 2147483647L
   1052 // TCE:#define __NO_INLINE__ 1
   1053 // TCE:#define __POINTER_WIDTH__ 32
   1054 // TCE:#define __PTRDIFF_TYPE__ int
   1055 // TCE:#define __PTRDIFF_WIDTH__ 32
   1056 // TCE:#define __SCHAR_MAX__ 127
   1057 // TCE:#define __SHRT_MAX__ 32767
   1058 // TCE:#define __SIG_ATOMIC_WIDTH__ 32
   1059 // TCE:#define __SIZEOF_DOUBLE__ 4
   1060 // TCE:#define __SIZEOF_FLOAT__ 4
   1061 // TCE:#define __SIZEOF_INT__ 4
   1062 // TCE:#define __SIZEOF_LONG_DOUBLE__ 4
   1063 // TCE:#define __SIZEOF_LONG_LONG__ 4
   1064 // TCE:#define __SIZEOF_LONG__ 4
   1065 // TCE:#define __SIZEOF_POINTER__ 4
   1066 // TCE:#define __SIZEOF_PTRDIFF_T__ 4
   1067 // TCE:#define __SIZEOF_SHORT__ 2
   1068 // TCE:#define __SIZEOF_SIZE_T__ 4
   1069 // TCE:#define __SIZEOF_WCHAR_T__ 4
   1070 // TCE:#define __SIZEOF_WINT_T__ 4
   1071 // TCE:#define __SIZE_TYPE__ unsigned int
   1072 // TCE:#define __SIZE_WIDTH__ 32
   1073 // TCE:#define __TCE_V1__ 1
   1074 // TCE:#define __TCE__ 1
   1075 // TCE:#define __UINTMAX_TYPE__ long unsigned int
   1076 // TCE:#define __USER_LABEL_PREFIX__ _
   1077 // TCE:#define __WCHAR_MAX__ 2147483647
   1078 // TCE:#define __WCHAR_TYPE__ int
   1079 // TCE:#define __WCHAR_WIDTH__ 32
   1080 // TCE:#define __WINT_TYPE__ int
   1081 // TCE:#define __WINT_WIDTH__ 32
   1082 // TCE:#define __tce 1
   1083 // TCE:#define __tce__ 1
   1084 // TCE:#define tce 1
   1085 //
   1086 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-none-none < /dev/null | FileCheck -check-prefix X86_64 %s
   1087 //
   1088 // X86_64:#define _LP64 1
   1089 // X86_64:#define __CHAR16_TYPE__ unsigned short
   1090 // X86_64:#define __CHAR32_TYPE__ unsigned int
   1091 // X86_64:#define __CHAR_BIT__ 8
   1092 // X86_64:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
   1093 // X86_64:#define __DBL_DIG__ 15
   1094 // X86_64:#define __DBL_EPSILON__ 2.2204460492503131e-16
   1095 // X86_64:#define __DBL_HAS_DENORM__ 1
   1096 // X86_64:#define __DBL_HAS_INFINITY__ 1
   1097 // X86_64:#define __DBL_HAS_QUIET_NAN__ 1
   1098 // X86_64:#define __DBL_MANT_DIG__ 53
   1099 // X86_64:#define __DBL_MAX_10_EXP__ 308
   1100 // X86_64:#define __DBL_MAX_EXP__ 1024
   1101 // X86_64:#define __DBL_MAX__ 1.7976931348623157e+308
   1102 // X86_64:#define __DBL_MIN_10_EXP__ (-307)
   1103 // X86_64:#define __DBL_MIN_EXP__ (-1021)
   1104 // X86_64:#define __DBL_MIN__ 2.2250738585072014e-308
   1105 // X86_64:#define __DECIMAL_DIG__ 21
   1106 // X86_64:#define __FLT_DENORM_MIN__ 1.40129846e-45F
   1107 // X86_64:#define __FLT_DIG__ 6
   1108 // X86_64:#define __FLT_EPSILON__ 1.19209290e-7F
   1109 // X86_64:#define __FLT_EVAL_METHOD__ 0
   1110 // X86_64:#define __FLT_HAS_DENORM__ 1
   1111 // X86_64:#define __FLT_HAS_INFINITY__ 1
   1112 // X86_64:#define __FLT_HAS_QUIET_NAN__ 1
   1113 // X86_64:#define __FLT_MANT_DIG__ 24
   1114 // X86_64:#define __FLT_MAX_10_EXP__ 38
   1115 // X86_64:#define __FLT_MAX_EXP__ 128
   1116 // X86_64:#define __FLT_MAX__ 3.40282347e+38F
   1117 // X86_64:#define __FLT_MIN_10_EXP__ (-37)
   1118 // X86_64:#define __FLT_MIN_EXP__ (-125)
   1119 // X86_64:#define __FLT_MIN__ 1.17549435e-38F
   1120 // X86_64:#define __FLT_RADIX__ 2
   1121 // X86_64:#define __INT16_TYPE__ short
   1122 // X86_64:#define __INT32_TYPE__ int
   1123 // X86_64:#define __INT64_C_SUFFIX__ L
   1124 // X86_64:#define __INT64_TYPE__ long int
   1125 // X86_64:#define __INT8_TYPE__ char
   1126 // X86_64:#define __INTMAX_MAX__ 9223372036854775807L
   1127 // X86_64:#define __INTMAX_TYPE__ long int
   1128 // X86_64:#define __INTMAX_WIDTH__ 64
   1129 // X86_64:#define __INTPTR_TYPE__ long int
   1130 // X86_64:#define __INTPTR_WIDTH__ 64
   1131 // X86_64:#define __INT_MAX__ 2147483647
   1132 // X86_64:#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
   1133 // X86_64:#define __LDBL_DIG__ 18
   1134 // X86_64:#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
   1135 // X86_64:#define __LDBL_HAS_DENORM__ 1
   1136 // X86_64:#define __LDBL_HAS_INFINITY__ 1
   1137 // X86_64:#define __LDBL_HAS_QUIET_NAN__ 1
   1138 // X86_64:#define __LDBL_MANT_DIG__ 64
   1139 // X86_64:#define __LDBL_MAX_10_EXP__ 4932
   1140 // X86_64:#define __LDBL_MAX_EXP__ 16384
   1141 // X86_64:#define __LDBL_MAX__ 1.18973149535723176502e+4932L
   1142 // X86_64:#define __LDBL_MIN_10_EXP__ (-4931)
   1143 // X86_64:#define __LDBL_MIN_EXP__ (-16381)
   1144 // X86_64:#define __LDBL_MIN__ 3.36210314311209350626e-4932L
   1145 // X86_64:#define __LITTLE_ENDIAN__ 1
   1146 // X86_64:#define __LONG_LONG_MAX__ 9223372036854775807LL
   1147 // X86_64:#define __LONG_MAX__ 9223372036854775807L
   1148 // X86_64:#define __LP64__ 1
   1149 // X86_64:#define __MMX__ 1
   1150 // X86_64:#define __NO_INLINE__ 1
   1151 // X86_64:#define __NO_MATH_INLINES 1
   1152 // X86_64:#define __POINTER_WIDTH__ 64
   1153 // X86_64:#define __PTRDIFF_TYPE__ long int
   1154 // X86_64:#define __PTRDIFF_WIDTH__ 64
   1155 // X86_64:#define __REGISTER_PREFIX__
   1156 // X86_64:#define __SCHAR_MAX__ 127
   1157 // X86_64:#define __SHRT_MAX__ 32767
   1158 // X86_64:#define __SIG_ATOMIC_WIDTH__ 32
   1159 // X86_64:#define __SIZEOF_DOUBLE__ 8
   1160 // X86_64:#define __SIZEOF_FLOAT__ 4
   1161 // X86_64:#define __SIZEOF_INT__ 4
   1162 // X86_64:#define __SIZEOF_LONG_DOUBLE__ 16
   1163 // X86_64:#define __SIZEOF_LONG_LONG__ 8
   1164 // X86_64:#define __SIZEOF_LONG__ 8
   1165 // X86_64:#define __SIZEOF_POINTER__ 8
   1166 // X86_64:#define __SIZEOF_PTRDIFF_T__ 8
   1167 // X86_64:#define __SIZEOF_SHORT__ 2
   1168 // X86_64:#define __SIZEOF_SIZE_T__ 8
   1169 // X86_64:#define __SIZEOF_WCHAR_T__ 4
   1170 // X86_64:#define __SIZEOF_WINT_T__ 4
   1171 // X86_64:#define __SIZE_TYPE__ long unsigned int
   1172 // X86_64:#define __SIZE_WIDTH__ 64
   1173 // X86_64:#define __SSE2_MATH__ 1
   1174 // X86_64:#define __SSE2__ 1
   1175 // X86_64:#define __SSE_MATH__ 1
   1176 // X86_64:#define __SSE__ 1
   1177 // X86_64:#define __UINTMAX_TYPE__ long unsigned int
   1178 // X86_64:#define __USER_LABEL_PREFIX__ _
   1179 // X86_64:#define __WCHAR_MAX__ 2147483647
   1180 // X86_64:#define __WCHAR_TYPE__ int
   1181 // X86_64:#define __WCHAR_WIDTH__ 32
   1182 // X86_64:#define __WINT_TYPE__ int
   1183 // X86_64:#define __WINT_WIDTH__ 32
   1184 // X86_64:#define __amd64 1
   1185 // X86_64:#define __amd64__ 1
   1186 // X86_64:#define __nocona 1
   1187 // X86_64:#define __nocona__ 1
   1188 // X86_64:#define __tune_nocona__ 1
   1189 // X86_64:#define __x86_64 1
   1190 // X86_64:#define __x86_64__ 1
   1191 //
   1192 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-pc-linux-gnu < /dev/null | FileCheck -check-prefix X86_64-LINUX %s
   1193 //
   1194 // X86_64-LINUX:#define _LP64 1
   1195 // X86_64-LINUX:#define __CHAR16_TYPE__ unsigned short
   1196 // X86_64-LINUX:#define __CHAR32_TYPE__ unsigned int
   1197 // X86_64-LINUX:#define __CHAR_BIT__ 8
   1198 // X86_64-LINUX:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
   1199 // X86_64-LINUX:#define __DBL_DIG__ 15
   1200 // X86_64-LINUX:#define __DBL_EPSILON__ 2.2204460492503131e-16
   1201 // X86_64-LINUX:#define __DBL_HAS_DENORM__ 1
   1202 // X86_64-LINUX:#define __DBL_HAS_INFINITY__ 1
   1203 // X86_64-LINUX:#define __DBL_HAS_QUIET_NAN__ 1
   1204 // X86_64-LINUX:#define __DBL_MANT_DIG__ 53
   1205 // X86_64-LINUX:#define __DBL_MAX_10_EXP__ 308
   1206 // X86_64-LINUX:#define __DBL_MAX_EXP__ 1024
   1207 // X86_64-LINUX:#define __DBL_MAX__ 1.7976931348623157e+308
   1208 // X86_64-LINUX:#define __DBL_MIN_10_EXP__ (-307)
   1209 // X86_64-LINUX:#define __DBL_MIN_EXP__ (-1021)
   1210 // X86_64-LINUX:#define __DBL_MIN__ 2.2250738585072014e-308
   1211 // X86_64-LINUX:#define __DECIMAL_DIG__ 21
   1212 // X86_64-LINUX:#define __FLT_DENORM_MIN__ 1.40129846e-45F
   1213 // X86_64-LINUX:#define __FLT_DIG__ 6
   1214 // X86_64-LINUX:#define __FLT_EPSILON__ 1.19209290e-7F
   1215 // X86_64-LINUX:#define __FLT_EVAL_METHOD__ 0
   1216 // X86_64-LINUX:#define __FLT_HAS_DENORM__ 1
   1217 // X86_64-LINUX:#define __FLT_HAS_INFINITY__ 1
   1218 // X86_64-LINUX:#define __FLT_HAS_QUIET_NAN__ 1
   1219 // X86_64-LINUX:#define __FLT_MANT_DIG__ 24
   1220 // X86_64-LINUX:#define __FLT_MAX_10_EXP__ 38
   1221 // X86_64-LINUX:#define __FLT_MAX_EXP__ 128
   1222 // X86_64-LINUX:#define __FLT_MAX__ 3.40282347e+38F
   1223 // X86_64-LINUX:#define __FLT_MIN_10_EXP__ (-37)
   1224 // X86_64-LINUX:#define __FLT_MIN_EXP__ (-125)
   1225 // X86_64-LINUX:#define __FLT_MIN__ 1.17549435e-38F
   1226 // X86_64-LINUX:#define __FLT_RADIX__ 2
   1227 // X86_64-LINUX:#define __INT16_TYPE__ short
   1228 // X86_64-LINUX:#define __INT32_TYPE__ int
   1229 // X86_64-LINUX:#define __INT64_C_SUFFIX__ L
   1230 // X86_64-LINUX:#define __INT64_TYPE__ long int
   1231 // X86_64-LINUX:#define __INT8_TYPE__ char
   1232 // X86_64-LINUX:#define __INTMAX_MAX__ 9223372036854775807L
   1233 // X86_64-LINUX:#define __INTMAX_TYPE__ long int
   1234 // X86_64-LINUX:#define __INTMAX_WIDTH__ 64
   1235 // X86_64-LINUX:#define __INTPTR_TYPE__ long int
   1236 // X86_64-LINUX:#define __INTPTR_WIDTH__ 64
   1237 // X86_64-LINUX:#define __INT_MAX__ 2147483647
   1238 // X86_64-LINUX:#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
   1239 // X86_64-LINUX:#define __LDBL_DIG__ 18
   1240 // X86_64-LINUX:#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
   1241 // X86_64-LINUX:#define __LDBL_HAS_DENORM__ 1
   1242 // X86_64-LINUX:#define __LDBL_HAS_INFINITY__ 1
   1243 // X86_64-LINUX:#define __LDBL_HAS_QUIET_NAN__ 1
   1244 // X86_64-LINUX:#define __LDBL_MANT_DIG__ 64
   1245 // X86_64-LINUX:#define __LDBL_MAX_10_EXP__ 4932
   1246 // X86_64-LINUX:#define __LDBL_MAX_EXP__ 16384
   1247 // X86_64-LINUX:#define __LDBL_MAX__ 1.18973149535723176502e+4932L
   1248 // X86_64-LINUX:#define __LDBL_MIN_10_EXP__ (-4931)
   1249 // X86_64-LINUX:#define __LDBL_MIN_EXP__ (-16381)
   1250 // X86_64-LINUX:#define __LDBL_MIN__ 3.36210314311209350626e-4932L
   1251 // X86_64-LINUX:#define __LITTLE_ENDIAN__ 1
   1252 // X86_64-LINUX:#define __LONG_LONG_MAX__ 9223372036854775807LL
   1253 // X86_64-LINUX:#define __LONG_MAX__ 9223372036854775807L
   1254 // X86_64-LINUX:#define __LP64__ 1
   1255 // X86_64-LINUX:#define __MMX__ 1
   1256 // X86_64-LINUX:#define __NO_INLINE__ 1
   1257 // X86_64-LINUX:#define __NO_MATH_INLINES 1
   1258 // X86_64-LINUX:#define __POINTER_WIDTH__ 64
   1259 // X86_64-LINUX:#define __PTRDIFF_TYPE__ long int
   1260 // X86_64-LINUX:#define __PTRDIFF_WIDTH__ 64
   1261 // X86_64-LINUX:#define __REGISTER_PREFIX__
   1262 // X86_64-LINUX:#define __SCHAR_MAX__ 127
   1263 // X86_64-LINUX:#define __SHRT_MAX__ 32767
   1264 // X86_64-LINUX:#define __SIG_ATOMIC_WIDTH__ 32
   1265 // X86_64-LINUX:#define __SIZEOF_DOUBLE__ 8
   1266 // X86_64-LINUX:#define __SIZEOF_FLOAT__ 4
   1267 // X86_64-LINUX:#define __SIZEOF_INT__ 4
   1268 // X86_64-LINUX:#define __SIZEOF_LONG_DOUBLE__ 16
   1269 // X86_64-LINUX:#define __SIZEOF_LONG_LONG__ 8
   1270 // X86_64-LINUX:#define __SIZEOF_LONG__ 8
   1271 // X86_64-LINUX:#define __SIZEOF_POINTER__ 8
   1272 // X86_64-LINUX:#define __SIZEOF_PTRDIFF_T__ 8
   1273 // X86_64-LINUX:#define __SIZEOF_SHORT__ 2
   1274 // X86_64-LINUX:#define __SIZEOF_SIZE_T__ 8
   1275 // X86_64-LINUX:#define __SIZEOF_WCHAR_T__ 4
   1276 // X86_64-LINUX:#define __SIZEOF_WINT_T__ 4
   1277 // X86_64-LINUX:#define __SIZE_TYPE__ long unsigned int
   1278 // X86_64-LINUX:#define __SIZE_WIDTH__ 64
   1279 // X86_64-LINUX:#define __SSE2_MATH__ 1
   1280 // X86_64-LINUX:#define __SSE2__ 1
   1281 // X86_64-LINUX:#define __SSE_MATH__ 1
   1282 // X86_64-LINUX:#define __SSE__ 1
   1283 // X86_64-LINUX:#define __UINTMAX_TYPE__ long unsigned int
   1284 // X86_64-LINUX:#define __USER_LABEL_PREFIX__
   1285 // X86_64-LINUX:#define __WCHAR_MAX__ 2147483647
   1286 // X86_64-LINUX:#define __WCHAR_TYPE__ int
   1287 // X86_64-LINUX:#define __WCHAR_WIDTH__ 32
   1288 // X86_64-LINUX:#define __WINT_TYPE__ unsigned int
   1289 // X86_64-LINUX:#define __WINT_WIDTH__ 32
   1290 // X86_64-LINUX:#define __amd64 1
   1291 // X86_64-LINUX:#define __amd64__ 1
   1292 // X86_64-LINUX:#define __nocona 1
   1293 // X86_64-LINUX:#define __nocona__ 1
   1294 // X86_64-LINUX:#define __tune_nocona__ 1
   1295 // X86_64-LINUX:#define __x86_64 1
   1296 // X86_64-LINUX:#define __x86_64__ 1
   1297 //
   1298 // RUN: %clang_cc1 -x c++ -triple i686-pc-linux-gnu -E -dM < /dev/null | FileCheck -check-prefix GNUSOURCE %s
   1299 // GNUSOURCE:#define _GNU_SOURCE 1
   1300 //
   1301 // RUN: %clang_cc1 -x c++ -std=c++98 -fno-rtti -E -dM < /dev/null | FileCheck -check-prefix NORTTI %s
   1302 // NORTTI: __GXX_ABI_VERSION
   1303 // NORTTI-NOT:#define __GXX_RTTI
   1304 // NORTTI: __STDC__
   1305