[clang] 95bbe9a - [clang][ARM] follow GCC behavior for defining __SOFTFP__

Ties Stuij via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 18 06:38:23 PDT 2022


Author: Ties Stuij
Date: 2022-10-18T14:38:03+01:00
New Revision: 95bbe9a1930886cffc79f1f5b953f5aafff1557f

URL: https://github.com/llvm/llvm-project/commit/95bbe9a1930886cffc79f1f5b953f5aafff1557f
DIFF: https://github.com/llvm/llvm-project/commit/95bbe9a1930886cffc79f1f5b953f5aafff1557f.diff

LOG: [clang][ARM] follow GCC behavior for defining __SOFTFP__

GCC behavior regarding defining __SOFTFP__ when (implicitly) specifying
-mfloat-abi=softfp:
- compile without (implicit) FP: define __SOFTFP__
- compile with (implicit) FP: don't define __SOFTFP__

Currently Clang doesn't define __SOFTFP__ when softfp is specified, either with
or without FP. This patch brings Clang in line with GCC behavior.

This was raised by itaig1 over on Github:
https://github.com/llvm/llvm-project/issues/55755

Reviewed By: pratlucas

Differential Revision: https://reviews.llvm.org/D135680

Added: 
    

Modified: 
    clang/lib/Basic/Targets/ARM.cpp
    clang/test/Preprocessor/init-arm.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 948f0bae4f0f8..c750a3cf126c6 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -801,7 +801,7 @@ void ARMTargetInfo::getTargetDefines(const LangOptions &Opts,
   if ((!SoftFloat && !SoftFloatABI) || ABI == "aapcs-vfp" || ABI == "aapcs16")
     Builder.defineMacro("__ARM_PCS_VFP", "1");
 
-  if (SoftFloat)
+  if (SoftFloat || (SoftFloatABI && !FPU))
     Builder.defineMacro("__SOFTFP__");
 
   // ACLE position independent code macros.

diff  --git a/clang/test/Preprocessor/init-arm.c b/clang/test/Preprocessor/init-arm.c
index 58ee6981bfb47..e317ffa67393d 100644
--- a/clang/test/Preprocessor/init-arm.c
+++ b/clang/test/Preprocessor/init-arm.c
@@ -395,199 +395,593 @@
 // ARM-BE:#define __arm 1
 // ARM-BE:#define __arm__ 1
 
-// RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-none-linux-gnueabi -target-feature +soft-float -target-feature +soft-float-abi < /dev/null | FileCheck -match-full-lines -check-prefix ARMEABISOFTFP %s
+// RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-none-linux-gnueabi -target-feature +soft-float -target-feature +soft-float-abi < /dev/null | FileCheck -match-full-lines -check-prefix ARMEABISOFT %s
 //
-// ARMEABISOFTFP-NOT:#define _LP64
-// ARMEABISOFTFP:#define __APCS_32__ 1
-// ARMEABISOFTFP-NOT:#define __ARMEB__ 1
-// ARMEABISOFTFP:#define __ARMEL__ 1
-// ARMEABISOFTFP:#define __ARM_ARCH 4
-// ARMEABISOFTFP:#define __ARM_ARCH_4T__ 1
-// ARMEABISOFTFP-NOT:#define __ARM_BIG_ENDIAN 1
-// ARMEABISOFTFP:#define __ARM_EABI__ 1
-// ARMEABISOFTFP:#define __ARM_PCS 1
-// ARMEABISOFTFP-NOT:#define __ARM_PCS_VFP 1
-// ARMEABISOFTFP:#define __BIGGEST_ALIGNMENT__ 8
-// ARMEABISOFTFP:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
-// ARMEABISOFTFP:#define __CHAR16_TYPE__ unsigned short
-// ARMEABISOFTFP:#define __CHAR32_TYPE__ unsigned int
-// ARMEABISOFTFP:#define __CHAR_BIT__ 8
-// ARMEABISOFTFP:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
-// ARMEABISOFTFP:#define __DBL_DIG__ 15
-// ARMEABISOFTFP:#define __DBL_EPSILON__ 2.2204460492503131e-16
-// ARMEABISOFTFP:#define __DBL_HAS_DENORM__ 1
-// ARMEABISOFTFP:#define __DBL_HAS_INFINITY__ 1
-// ARMEABISOFTFP:#define __DBL_HAS_QUIET_NAN__ 1
-// ARMEABISOFTFP:#define __DBL_MANT_DIG__ 53
-// ARMEABISOFTFP:#define __DBL_MAX_10_EXP__ 308
-// ARMEABISOFTFP:#define __DBL_MAX_EXP__ 1024
-// ARMEABISOFTFP:#define __DBL_MAX__ 1.7976931348623157e+308
-// ARMEABISOFTFP:#define __DBL_MIN_10_EXP__ (-307)
-// ARMEABISOFTFP:#define __DBL_MIN_EXP__ (-1021)
-// ARMEABISOFTFP:#define __DBL_MIN__ 2.2250738585072014e-308
-// ARMEABISOFTFP:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
-// ARMEABISOFTFP:#define __FLT_DENORM_MIN__ 1.40129846e-45F
-// ARMEABISOFTFP:#define __FLT_DIG__ 6
-// ARMEABISOFTFP:#define __FLT_EPSILON__ 1.19209290e-7F
-// ARMEABISOFTFP:#define __FLT_HAS_DENORM__ 1
-// ARMEABISOFTFP:#define __FLT_HAS_INFINITY__ 1
-// ARMEABISOFTFP:#define __FLT_HAS_QUIET_NAN__ 1
-// ARMEABISOFTFP:#define __FLT_MANT_DIG__ 24
-// ARMEABISOFTFP:#define __FLT_MAX_10_EXP__ 38
-// ARMEABISOFTFP:#define __FLT_MAX_EXP__ 128
-// ARMEABISOFTFP:#define __FLT_MAX__ 3.40282347e+38F
-// ARMEABISOFTFP:#define __FLT_MIN_10_EXP__ (-37)
-// ARMEABISOFTFP:#define __FLT_MIN_EXP__ (-125)
-// ARMEABISOFTFP:#define __FLT_MIN__ 1.17549435e-38F
-// ARMEABISOFTFP:#define __FLT_RADIX__ 2
-// ARMEABISOFTFP:#define __INT16_C_SUFFIX__
-// ARMEABISOFTFP:#define __INT16_FMTd__ "hd"
-// ARMEABISOFTFP:#define __INT16_FMTi__ "hi"
-// ARMEABISOFTFP:#define __INT16_MAX__ 32767
-// ARMEABISOFTFP:#define __INT16_TYPE__ short
-// ARMEABISOFTFP:#define __INT32_C_SUFFIX__
-// ARMEABISOFTFP:#define __INT32_FMTd__ "d"
-// ARMEABISOFTFP:#define __INT32_FMTi__ "i"
-// ARMEABISOFTFP:#define __INT32_MAX__ 2147483647
-// ARMEABISOFTFP:#define __INT32_TYPE__ int
-// ARMEABISOFTFP:#define __INT64_C_SUFFIX__ LL
-// ARMEABISOFTFP:#define __INT64_FMTd__ "lld"
-// ARMEABISOFTFP:#define __INT64_FMTi__ "lli"
-// ARMEABISOFTFP:#define __INT64_MAX__ 9223372036854775807LL
-// ARMEABISOFTFP:#define __INT64_TYPE__ long long int
-// ARMEABISOFTFP:#define __INT8_C_SUFFIX__
-// ARMEABISOFTFP:#define __INT8_FMTd__ "hhd"
-// ARMEABISOFTFP:#define __INT8_FMTi__ "hhi"
-// ARMEABISOFTFP:#define __INT8_MAX__ 127
-// ARMEABISOFTFP:#define __INT8_TYPE__ signed char
-// ARMEABISOFTFP:#define __INTMAX_C_SUFFIX__ LL
-// ARMEABISOFTFP:#define __INTMAX_FMTd__ "lld"
-// ARMEABISOFTFP:#define __INTMAX_FMTi__ "lli"
-// ARMEABISOFTFP:#define __INTMAX_MAX__ 9223372036854775807LL
-// ARMEABISOFTFP:#define __INTMAX_TYPE__ long long int
-// ARMEABISOFTFP:#define __INTMAX_WIDTH__ 64
-// ARMEABISOFTFP:#define __INTPTR_FMTd__ "d"
-// ARMEABISOFTFP:#define __INTPTR_FMTi__ "i"
-// ARMEABISOFTFP:#define __INTPTR_MAX__ 2147483647
-// ARMEABISOFTFP:#define __INTPTR_TYPE__ int
-// ARMEABISOFTFP:#define __INTPTR_WIDTH__ 32
-// ARMEABISOFTFP:#define __INT_FAST16_FMTd__ "hd"
-// ARMEABISOFTFP:#define __INT_FAST16_FMTi__ "hi"
-// ARMEABISOFTFP:#define __INT_FAST16_MAX__ 32767
-// ARMEABISOFTFP:#define __INT_FAST16_TYPE__ short
-// ARMEABISOFTFP:#define __INT_FAST32_FMTd__ "d"
-// ARMEABISOFTFP:#define __INT_FAST32_FMTi__ "i"
-// ARMEABISOFTFP:#define __INT_FAST32_MAX__ 2147483647
-// ARMEABISOFTFP:#define __INT_FAST32_TYPE__ int
-// ARMEABISOFTFP:#define __INT_FAST64_FMTd__ "lld"
-// ARMEABISOFTFP:#define __INT_FAST64_FMTi__ "lli"
-// ARMEABISOFTFP:#define __INT_FAST64_MAX__ 9223372036854775807LL
-// ARMEABISOFTFP:#define __INT_FAST64_TYPE__ long long int
-// ARMEABISOFTFP:#define __INT_FAST8_FMTd__ "hhd"
-// ARMEABISOFTFP:#define __INT_FAST8_FMTi__ "hhi"
-// ARMEABISOFTFP:#define __INT_FAST8_MAX__ 127
-// ARMEABISOFTFP:#define __INT_FAST8_TYPE__ signed char
-// ARMEABISOFTFP:#define __INT_LEAST16_FMTd__ "hd"
-// ARMEABISOFTFP:#define __INT_LEAST16_FMTi__ "hi"
-// ARMEABISOFTFP:#define __INT_LEAST16_MAX__ 32767
-// ARMEABISOFTFP:#define __INT_LEAST16_TYPE__ short
-// ARMEABISOFTFP:#define __INT_LEAST32_FMTd__ "d"
-// ARMEABISOFTFP:#define __INT_LEAST32_FMTi__ "i"
-// ARMEABISOFTFP:#define __INT_LEAST32_MAX__ 2147483647
-// ARMEABISOFTFP:#define __INT_LEAST32_TYPE__ int
-// ARMEABISOFTFP:#define __INT_LEAST64_FMTd__ "lld"
-// ARMEABISOFTFP:#define __INT_LEAST64_FMTi__ "lli"
-// ARMEABISOFTFP:#define __INT_LEAST64_MAX__ 9223372036854775807LL
-// ARMEABISOFTFP:#define __INT_LEAST64_TYPE__ long long int
-// ARMEABISOFTFP:#define __INT_LEAST8_FMTd__ "hhd"
-// ARMEABISOFTFP:#define __INT_LEAST8_FMTi__ "hhi"
-// ARMEABISOFTFP:#define __INT_LEAST8_MAX__ 127
-// ARMEABISOFTFP:#define __INT_LEAST8_TYPE__ signed char
-// ARMEABISOFTFP:#define __INT_MAX__ 2147483647
-// ARMEABISOFTFP:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
-// ARMEABISOFTFP:#define __LDBL_DIG__ 15
-// ARMEABISOFTFP:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
-// ARMEABISOFTFP:#define __LDBL_HAS_DENORM__ 1
-// ARMEABISOFTFP:#define __LDBL_HAS_INFINITY__ 1
-// ARMEABISOFTFP:#define __LDBL_HAS_QUIET_NAN__ 1
-// ARMEABISOFTFP:#define __LDBL_MANT_DIG__ 53
-// ARMEABISOFTFP:#define __LDBL_MAX_10_EXP__ 308
-// ARMEABISOFTFP:#define __LDBL_MAX_EXP__ 1024
-// ARMEABISOFTFP:#define __LDBL_MAX__ 1.7976931348623157e+308L
-// ARMEABISOFTFP:#define __LDBL_MIN_10_EXP__ (-307)
-// ARMEABISOFTFP:#define __LDBL_MIN_EXP__ (-1021)
-// ARMEABISOFTFP:#define __LDBL_MIN__ 2.2250738585072014e-308L
-// ARMEABISOFTFP:#define __LITTLE_ENDIAN__ 1
-// ARMEABISOFTFP:#define __LONG_LONG_MAX__ 9223372036854775807LL
-// ARMEABISOFTFP:#define __LONG_MAX__ 2147483647L
-// ARMEABISOFTFP-NOT:#define __LP64__
-// ARMEABISOFTFP:#define __POINTER_WIDTH__ 32
-// ARMEABISOFTFP:#define __PTRDIFF_TYPE__ int
-// ARMEABISOFTFP:#define __PTRDIFF_WIDTH__ 32
-// ARMEABISOFTFP:#define __REGISTER_PREFIX__
-// ARMEABISOFTFP:#define __SCHAR_MAX__ 127
-// ARMEABISOFTFP:#define __SHRT_MAX__ 32767
-// ARMEABISOFTFP:#define __SIG_ATOMIC_MAX__ 2147483647
-// ARMEABISOFTFP:#define __SIG_ATOMIC_WIDTH__ 32
-// ARMEABISOFTFP:#define __SIZEOF_DOUBLE__ 8
-// ARMEABISOFTFP:#define __SIZEOF_FLOAT__ 4
-// ARMEABISOFTFP:#define __SIZEOF_INT__ 4
-// ARMEABISOFTFP:#define __SIZEOF_LONG_DOUBLE__ 8
-// ARMEABISOFTFP:#define __SIZEOF_LONG_LONG__ 8
-// ARMEABISOFTFP:#define __SIZEOF_LONG__ 4
-// ARMEABISOFTFP:#define __SIZEOF_POINTER__ 4
-// ARMEABISOFTFP:#define __SIZEOF_PTRDIFF_T__ 4
-// ARMEABISOFTFP:#define __SIZEOF_SHORT__ 2
-// ARMEABISOFTFP:#define __SIZEOF_SIZE_T__ 4
-// ARMEABISOFTFP:#define __SIZEOF_WCHAR_T__ 4
-// ARMEABISOFTFP:#define __SIZEOF_WINT_T__ 4
-// ARMEABISOFTFP:#define __SIZE_MAX__ 4294967295U
-// ARMEABISOFTFP:#define __SIZE_TYPE__ unsigned int
-// ARMEABISOFTFP:#define __SIZE_WIDTH__ 32
-// ARMEABISOFTFP:#define __SOFTFP__ 1
-// ARMEABISOFTFP:#define __UINT16_C_SUFFIX__
-// ARMEABISOFTFP:#define __UINT16_MAX__ 65535
-// ARMEABISOFTFP:#define __UINT16_TYPE__ unsigned short
-// ARMEABISOFTFP:#define __UINT32_C_SUFFIX__ U
-// ARMEABISOFTFP:#define __UINT32_MAX__ 4294967295U
-// ARMEABISOFTFP:#define __UINT32_TYPE__ unsigned int
-// ARMEABISOFTFP:#define __UINT64_C_SUFFIX__ ULL
-// ARMEABISOFTFP:#define __UINT64_MAX__ 18446744073709551615ULL
-// ARMEABISOFTFP:#define __UINT64_TYPE__ long long unsigned int
-// ARMEABISOFTFP:#define __UINT8_C_SUFFIX__
-// ARMEABISOFTFP:#define __UINT8_MAX__ 255
-// ARMEABISOFTFP:#define __UINT8_TYPE__ unsigned char
-// ARMEABISOFTFP:#define __UINTMAX_C_SUFFIX__ ULL
-// ARMEABISOFTFP:#define __UINTMAX_MAX__ 18446744073709551615ULL
-// ARMEABISOFTFP:#define __UINTMAX_TYPE__ long long unsigned int
-// ARMEABISOFTFP:#define __UINTMAX_WIDTH__ 64
-// ARMEABISOFTFP:#define __UINTPTR_MAX__ 4294967295U
-// ARMEABISOFTFP:#define __UINTPTR_TYPE__ unsigned int
-// ARMEABISOFTFP:#define __UINTPTR_WIDTH__ 32
-// ARMEABISOFTFP:#define __UINT_FAST16_MAX__ 65535
-// ARMEABISOFTFP:#define __UINT_FAST16_TYPE__ unsigned short
-// ARMEABISOFTFP:#define __UINT_FAST32_MAX__ 4294967295U
-// ARMEABISOFTFP:#define __UINT_FAST32_TYPE__ unsigned int
-// ARMEABISOFTFP:#define __UINT_FAST64_MAX__ 18446744073709551615ULL
-// ARMEABISOFTFP:#define __UINT_FAST64_TYPE__ long long unsigned int
-// ARMEABISOFTFP:#define __UINT_FAST8_MAX__ 255
-// ARMEABISOFTFP:#define __UINT_FAST8_TYPE__ unsigned char
-// ARMEABISOFTFP:#define __UINT_LEAST16_MAX__ 65535
-// ARMEABISOFTFP:#define __UINT_LEAST16_TYPE__ unsigned short
-// ARMEABISOFTFP:#define __UINT_LEAST32_MAX__ 4294967295U
-// ARMEABISOFTFP:#define __UINT_LEAST32_TYPE__ unsigned int
-// ARMEABISOFTFP:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL
-// ARMEABISOFTFP:#define __UINT_LEAST64_TYPE__ long long unsigned int
-// ARMEABISOFTFP:#define __UINT_LEAST8_MAX__ 255
-// ARMEABISOFTFP:#define __UINT_LEAST8_TYPE__ unsigned char
-// ARMEABISOFTFP:#define __USER_LABEL_PREFIX__
-// ARMEABISOFTFP:#define __WCHAR_MAX__ 4294967295U
-// ARMEABISOFTFP:#define __WCHAR_TYPE__ unsigned int
-// ARMEABISOFTFP:#define __WCHAR_WIDTH__ 32
-// ARMEABISOFTFP:#define __WINT_TYPE__ unsigned int
-// ARMEABISOFTFP:#define __WINT_WIDTH__ 32
-// ARMEABISOFTFP:#define __arm 1
-// ARMEABISOFTFP:#define __arm__ 1
+// ARMEABISOFT-NOT:#define _LP64
+// ARMEABISOFT:#define __APCS_32__ 1
+// ARMEABISOFT-NOT:#define __ARMEB__ 1
+// ARMEABISOFT:#define __ARMEL__ 1
+// ARMEABISOFT:#define __ARM_ARCH 4
+// ARMEABISOFT:#define __ARM_ARCH_4T__ 1
+// ARMEABISOFT-NOT:#define __ARM_BIG_ENDIAN 1
+// ARMEABISOFT:#define __ARM_EABI__ 1
+// ARMEABISOFT:#define __ARM_PCS 1
+// ARMEABISOFT-NOT:#define __ARM_PCS_VFP 1
+// ARMEABISOFT:#define __BIGGEST_ALIGNMENT__ 8
+// ARMEABISOFT:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
+// ARMEABISOFT:#define __CHAR16_TYPE__ unsigned short
+// ARMEABISOFT:#define __CHAR32_TYPE__ unsigned int
+// ARMEABISOFT:#define __CHAR_BIT__ 8
+// ARMEABISOFT:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
+// ARMEABISOFT:#define __DBL_DIG__ 15
+// ARMEABISOFT:#define __DBL_EPSILON__ 2.2204460492503131e-16
+// ARMEABISOFT:#define __DBL_HAS_DENORM__ 1
+// ARMEABISOFT:#define __DBL_HAS_INFINITY__ 1
+// ARMEABISOFT:#define __DBL_HAS_QUIET_NAN__ 1
+// ARMEABISOFT:#define __DBL_MANT_DIG__ 53
+// ARMEABISOFT:#define __DBL_MAX_10_EXP__ 308
+// ARMEABISOFT:#define __DBL_MAX_EXP__ 1024
+// ARMEABISOFT:#define __DBL_MAX__ 1.7976931348623157e+308
+// ARMEABISOFT:#define __DBL_MIN_10_EXP__ (-307)
+// ARMEABISOFT:#define __DBL_MIN_EXP__ (-1021)
+// ARMEABISOFT:#define __DBL_MIN__ 2.2250738585072014e-308
+// ARMEABISOFT:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
+// ARMEABISOFT:#define __FLT_DENORM_MIN__ 1.40129846e-45F
+// ARMEABISOFT:#define __FLT_DIG__ 6
+// ARMEABISOFT:#define __FLT_EPSILON__ 1.19209290e-7F
+// ARMEABISOFT:#define __FLT_HAS_DENORM__ 1
+// ARMEABISOFT:#define __FLT_HAS_INFINITY__ 1
+// ARMEABISOFT:#define __FLT_HAS_QUIET_NAN__ 1
+// ARMEABISOFT:#define __FLT_MANT_DIG__ 24
+// ARMEABISOFT:#define __FLT_MAX_10_EXP__ 38
+// ARMEABISOFT:#define __FLT_MAX_EXP__ 128
+// ARMEABISOFT:#define __FLT_MAX__ 3.40282347e+38F
+// ARMEABISOFT:#define __FLT_MIN_10_EXP__ (-37)
+// ARMEABISOFT:#define __FLT_MIN_EXP__ (-125)
+// ARMEABISOFT:#define __FLT_MIN__ 1.17549435e-38F
+// ARMEABISOFT:#define __FLT_RADIX__ 2
+// ARMEABISOFT:#define __INT16_C_SUFFIX__
+// ARMEABISOFT:#define __INT16_FMTd__ "hd"
+// ARMEABISOFT:#define __INT16_FMTi__ "hi"
+// ARMEABISOFT:#define __INT16_MAX__ 32767
+// ARMEABISOFT:#define __INT16_TYPE__ short
+// ARMEABISOFT:#define __INT32_C_SUFFIX__
+// ARMEABISOFT:#define __INT32_FMTd__ "d"
+// ARMEABISOFT:#define __INT32_FMTi__ "i"
+// ARMEABISOFT:#define __INT32_MAX__ 2147483647
+// ARMEABISOFT:#define __INT32_TYPE__ int
+// ARMEABISOFT:#define __INT64_C_SUFFIX__ LL
+// ARMEABISOFT:#define __INT64_FMTd__ "lld"
+// ARMEABISOFT:#define __INT64_FMTi__ "lli"
+// ARMEABISOFT:#define __INT64_MAX__ 9223372036854775807LL
+// ARMEABISOFT:#define __INT64_TYPE__ long long int
+// ARMEABISOFT:#define __INT8_C_SUFFIX__
+// ARMEABISOFT:#define __INT8_FMTd__ "hhd"
+// ARMEABISOFT:#define __INT8_FMTi__ "hhi"
+// ARMEABISOFT:#define __INT8_MAX__ 127
+// ARMEABISOFT:#define __INT8_TYPE__ signed char
+// ARMEABISOFT:#define __INTMAX_C_SUFFIX__ LL
+// ARMEABISOFT:#define __INTMAX_FMTd__ "lld"
+// ARMEABISOFT:#define __INTMAX_FMTi__ "lli"
+// ARMEABISOFT:#define __INTMAX_MAX__ 9223372036854775807LL
+// ARMEABISOFT:#define __INTMAX_TYPE__ long long int
+// ARMEABISOFT:#define __INTMAX_WIDTH__ 64
+// ARMEABISOFT:#define __INTPTR_FMTd__ "d"
+// ARMEABISOFT:#define __INTPTR_FMTi__ "i"
+// ARMEABISOFT:#define __INTPTR_MAX__ 2147483647
+// ARMEABISOFT:#define __INTPTR_TYPE__ int
+// ARMEABISOFT:#define __INTPTR_WIDTH__ 32
+// ARMEABISOFT:#define __INT_FAST16_FMTd__ "hd"
+// ARMEABISOFT:#define __INT_FAST16_FMTi__ "hi"
+// ARMEABISOFT:#define __INT_FAST16_MAX__ 32767
+// ARMEABISOFT:#define __INT_FAST16_TYPE__ short
+// ARMEABISOFT:#define __INT_FAST32_FMTd__ "d"
+// ARMEABISOFT:#define __INT_FAST32_FMTi__ "i"
+// ARMEABISOFT:#define __INT_FAST32_MAX__ 2147483647
+// ARMEABISOFT:#define __INT_FAST32_TYPE__ int
+// ARMEABISOFT:#define __INT_FAST64_FMTd__ "lld"
+// ARMEABISOFT:#define __INT_FAST64_FMTi__ "lli"
+// ARMEABISOFT:#define __INT_FAST64_MAX__ 9223372036854775807LL
+// ARMEABISOFT:#define __INT_FAST64_TYPE__ long long int
+// ARMEABISOFT:#define __INT_FAST8_FMTd__ "hhd"
+// ARMEABISOFT:#define __INT_FAST8_FMTi__ "hhi"
+// ARMEABISOFT:#define __INT_FAST8_MAX__ 127
+// ARMEABISOFT:#define __INT_FAST8_TYPE__ signed char
+// ARMEABISOFT:#define __INT_LEAST16_FMTd__ "hd"
+// ARMEABISOFT:#define __INT_LEAST16_FMTi__ "hi"
+// ARMEABISOFT:#define __INT_LEAST16_MAX__ 32767
+// ARMEABISOFT:#define __INT_LEAST16_TYPE__ short
+// ARMEABISOFT:#define __INT_LEAST32_FMTd__ "d"
+// ARMEABISOFT:#define __INT_LEAST32_FMTi__ "i"
+// ARMEABISOFT:#define __INT_LEAST32_MAX__ 2147483647
+// ARMEABISOFT:#define __INT_LEAST32_TYPE__ int
+// ARMEABISOFT:#define __INT_LEAST64_FMTd__ "lld"
+// ARMEABISOFT:#define __INT_LEAST64_FMTi__ "lli"
+// ARMEABISOFT:#define __INT_LEAST64_MAX__ 9223372036854775807LL
+// ARMEABISOFT:#define __INT_LEAST64_TYPE__ long long int
+// ARMEABISOFT:#define __INT_LEAST8_FMTd__ "hhd"
+// ARMEABISOFT:#define __INT_LEAST8_FMTi__ "hhi"
+// ARMEABISOFT:#define __INT_LEAST8_MAX__ 127
+// ARMEABISOFT:#define __INT_LEAST8_TYPE__ signed char
+// ARMEABISOFT:#define __INT_MAX__ 2147483647
+// ARMEABISOFT:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
+// ARMEABISOFT:#define __LDBL_DIG__ 15
+// ARMEABISOFT:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
+// ARMEABISOFT:#define __LDBL_HAS_DENORM__ 1
+// ARMEABISOFT:#define __LDBL_HAS_INFINITY__ 1
+// ARMEABISOFT:#define __LDBL_HAS_QUIET_NAN__ 1
+// ARMEABISOFT:#define __LDBL_MANT_DIG__ 53
+// ARMEABISOFT:#define __LDBL_MAX_10_EXP__ 308
+// ARMEABISOFT:#define __LDBL_MAX_EXP__ 1024
+// ARMEABISOFT:#define __LDBL_MAX__ 1.7976931348623157e+308L
+// ARMEABISOFT:#define __LDBL_MIN_10_EXP__ (-307)
+// ARMEABISOFT:#define __LDBL_MIN_EXP__ (-1021)
+// ARMEABISOFT:#define __LDBL_MIN__ 2.2250738585072014e-308L
+// ARMEABISOFT:#define __LITTLE_ENDIAN__ 1
+// ARMEABISOFT:#define __LONG_LONG_MAX__ 9223372036854775807LL
+// ARMEABISOFT:#define __LONG_MAX__ 2147483647L
+// ARMEABISOFT-NOT:#define __LP64__
+// ARMEABISOFT:#define __POINTER_WIDTH__ 32
+// ARMEABISOFT:#define __PTRDIFF_TYPE__ int
+// ARMEABISOFT:#define __PTRDIFF_WIDTH__ 32
+// ARMEABISOFT:#define __REGISTER_PREFIX__
+// ARMEABISOFT:#define __SCHAR_MAX__ 127
+// ARMEABISOFT:#define __SHRT_MAX__ 32767
+// ARMEABISOFT:#define __SIG_ATOMIC_MAX__ 2147483647
+// ARMEABISOFT:#define __SIG_ATOMIC_WIDTH__ 32
+// ARMEABISOFT:#define __SIZEOF_DOUBLE__ 8
+// ARMEABISOFT:#define __SIZEOF_FLOAT__ 4
+// ARMEABISOFT:#define __SIZEOF_INT__ 4
+// ARMEABISOFT:#define __SIZEOF_LONG_DOUBLE__ 8
+// ARMEABISOFT:#define __SIZEOF_LONG_LONG__ 8
+// ARMEABISOFT:#define __SIZEOF_LONG__ 4
+// ARMEABISOFT:#define __SIZEOF_POINTER__ 4
+// ARMEABISOFT:#define __SIZEOF_PTRDIFF_T__ 4
+// ARMEABISOFT:#define __SIZEOF_SHORT__ 2
+// ARMEABISOFT:#define __SIZEOF_SIZE_T__ 4
+// ARMEABISOFT:#define __SIZEOF_WCHAR_T__ 4
+// ARMEABISOFT:#define __SIZEOF_WINT_T__ 4
+// ARMEABISOFT:#define __SIZE_MAX__ 4294967295U
+// ARMEABISOFT:#define __SIZE_TYPE__ unsigned int
+// ARMEABISOFT:#define __SIZE_WIDTH__ 32
+// ARMEABISOFT:#define __SOFTFP__ 1
+// ARMEABISOFT:#define __UINT16_C_SUFFIX__
+// ARMEABISOFT:#define __UINT16_MAX__ 65535
+// ARMEABISOFT:#define __UINT16_TYPE__ unsigned short
+// ARMEABISOFT:#define __UINT32_C_SUFFIX__ U
+// ARMEABISOFT:#define __UINT32_MAX__ 4294967295U
+// ARMEABISOFT:#define __UINT32_TYPE__ unsigned int
+// ARMEABISOFT:#define __UINT64_C_SUFFIX__ ULL
+// ARMEABISOFT:#define __UINT64_MAX__ 18446744073709551615ULL
+// ARMEABISOFT:#define __UINT64_TYPE__ long long unsigned int
+// ARMEABISOFT:#define __UINT8_C_SUFFIX__
+// ARMEABISOFT:#define __UINT8_MAX__ 255
+// ARMEABISOFT:#define __UINT8_TYPE__ unsigned char
+// ARMEABISOFT:#define __UINTMAX_C_SUFFIX__ ULL
+// ARMEABISOFT:#define __UINTMAX_MAX__ 18446744073709551615ULL
+// ARMEABISOFT:#define __UINTMAX_TYPE__ long long unsigned int
+// ARMEABISOFT:#define __UINTMAX_WIDTH__ 64
+// ARMEABISOFT:#define __UINTPTR_MAX__ 4294967295U
+// ARMEABISOFT:#define __UINTPTR_TYPE__ unsigned int
+// ARMEABISOFT:#define __UINTPTR_WIDTH__ 32
+// ARMEABISOFT:#define __UINT_FAST16_MAX__ 65535
+// ARMEABISOFT:#define __UINT_FAST16_TYPE__ unsigned short
+// ARMEABISOFT:#define __UINT_FAST32_MAX__ 4294967295U
+// ARMEABISOFT:#define __UINT_FAST32_TYPE__ unsigned int
+// ARMEABISOFT:#define __UINT_FAST64_MAX__ 18446744073709551615ULL
+// ARMEABISOFT:#define __UINT_FAST64_TYPE__ long long unsigned int
+// ARMEABISOFT:#define __UINT_FAST8_MAX__ 255
+// ARMEABISOFT:#define __UINT_FAST8_TYPE__ unsigned char
+// ARMEABISOFT:#define __UINT_LEAST16_MAX__ 65535
+// ARMEABISOFT:#define __UINT_LEAST16_TYPE__ unsigned short
+// ARMEABISOFT:#define __UINT_LEAST32_MAX__ 4294967295U
+// ARMEABISOFT:#define __UINT_LEAST32_TYPE__ unsigned int
+// ARMEABISOFT:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL
+// ARMEABISOFT:#define __UINT_LEAST64_TYPE__ long long unsigned int
+// ARMEABISOFT:#define __UINT_LEAST8_MAX__ 255
+// ARMEABISOFT:#define __UINT_LEAST8_TYPE__ unsigned char
+// ARMEABISOFT:#define __USER_LABEL_PREFIX__
+// ARMEABISOFT:#define __WCHAR_MAX__ 4294967295U
+// ARMEABISOFT:#define __WCHAR_TYPE__ unsigned int
+// ARMEABISOFT:#define __WCHAR_WIDTH__ 32
+// ARMEABISOFT:#define __WINT_TYPE__ unsigned int
+// ARMEABISOFT:#define __WINT_WIDTH__ 32
+// ARMEABISOFT:#define __arm 1
+// ARMEABISOFT:#define __arm__ 1
+
+// explanation of 
diff erence between ARMEABISOFTFP_NOFP and ARMEABISOFTFP_FP
+// below:
+// - compile targets with no FPU should emit __SOFTFP__ 1 when +soft-float-abi
+//   is specified
+// - compile targets with FPU should not emit __SOFTFP__ 1 when +soft-float-abi
+//   is specified
+// RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-none-linux-gnueabi -target-feature +soft-float-abi < /dev/null | FileCheck -match-full-lines -check-prefix ARMEABISOFTFP_NOFP %s
+//
+// ARMEABISOFTFP_NOFP-NOT:#define _LP64
+// ARMEABISOFTFP_NOFP:#define __APCS_32__ 1
+// ARMEABISOFTFP_NOFP-NOT:#define __ARMEB__ 1
+// ARMEABISOFTFP_NOFP:#define __ARMEL__ 1
+// ARMEABISOFTFP_NOFP:#define __ARM_ARCH 4
+// ARMEABISOFTFP_NOFP:#define __ARM_ARCH_4T__ 1
+// ARMEABISOFTFP_NOFP-NOT:#define __ARM_BIG_ENDIAN 1
+// ARMEABISOFTFP_NOFP:#define __ARM_EABI__ 1
+// ARMEABISOFTFP_NOFP:#define __ARM_PCS 1
+// ARMEABISOFTFP_NOFP-NOT:#define __ARM_PCS_VFP 1
+// ARMEABISOFTFP_NOFP:#define __BIGGEST_ALIGNMENT__ 8
+// ARMEABISOFTFP_NOFP:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
+// ARMEABISOFTFP_NOFP:#define __CHAR16_TYPE__ unsigned short
+// ARMEABISOFTFP_NOFP:#define __CHAR32_TYPE__ unsigned int
+// ARMEABISOFTFP_NOFP:#define __CHAR_BIT__ 8
+// ARMEABISOFTFP_NOFP:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
+// ARMEABISOFTFP_NOFP:#define __DBL_DIG__ 15
+// ARMEABISOFTFP_NOFP:#define __DBL_EPSILON__ 2.2204460492503131e-16
+// ARMEABISOFTFP_NOFP:#define __DBL_HAS_DENORM__ 1
+// ARMEABISOFTFP_NOFP:#define __DBL_HAS_INFINITY__ 1
+// ARMEABISOFTFP_NOFP:#define __DBL_HAS_QUIET_NAN__ 1
+// ARMEABISOFTFP_NOFP:#define __DBL_MANT_DIG__ 53
+// ARMEABISOFTFP_NOFP:#define __DBL_MAX_10_EXP__ 308
+// ARMEABISOFTFP_NOFP:#define __DBL_MAX_EXP__ 1024
+// ARMEABISOFTFP_NOFP:#define __DBL_MAX__ 1.7976931348623157e+308
+// ARMEABISOFTFP_NOFP:#define __DBL_MIN_10_EXP__ (-307)
+// ARMEABISOFTFP_NOFP:#define __DBL_MIN_EXP__ (-1021)
+// ARMEABISOFTFP_NOFP:#define __DBL_MIN__ 2.2250738585072014e-308
+// ARMEABISOFTFP_NOFP:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
+// ARMEABISOFTFP_NOFP:#define __FLT_DENORM_MIN__ 1.40129846e-45F
+// ARMEABISOFTFP_NOFP:#define __FLT_DIG__ 6
+// ARMEABISOFTFP_NOFP:#define __FLT_EPSILON__ 1.19209290e-7F
+// ARMEABISOFTFP_NOFP:#define __FLT_HAS_DENORM__ 1
+// ARMEABISOFTFP_NOFP:#define __FLT_HAS_INFINITY__ 1
+// ARMEABISOFTFP_NOFP:#define __FLT_HAS_QUIET_NAN__ 1
+// ARMEABISOFTFP_NOFP:#define __FLT_MANT_DIG__ 24
+// ARMEABISOFTFP_NOFP:#define __FLT_MAX_10_EXP__ 38
+// ARMEABISOFTFP_NOFP:#define __FLT_MAX_EXP__ 128
+// ARMEABISOFTFP_NOFP:#define __FLT_MAX__ 3.40282347e+38F
+// ARMEABISOFTFP_NOFP:#define __FLT_MIN_10_EXP__ (-37)
+// ARMEABISOFTFP_NOFP:#define __FLT_MIN_EXP__ (-125)
+// ARMEABISOFTFP_NOFP:#define __FLT_MIN__ 1.17549435e-38F
+// ARMEABISOFTFP_NOFP:#define __FLT_RADIX__ 2
+// ARMEABISOFTFP_NOFP:#define __INT16_C_SUFFIX__
+// ARMEABISOFTFP_NOFP:#define __INT16_FMTd__ "hd"
+// ARMEABISOFTFP_NOFP:#define __INT16_FMTi__ "hi"
+// ARMEABISOFTFP_NOFP:#define __INT16_MAX__ 32767
+// ARMEABISOFTFP_NOFP:#define __INT16_TYPE__ short
+// ARMEABISOFTFP_NOFP:#define __INT32_C_SUFFIX__
+// ARMEABISOFTFP_NOFP:#define __INT32_FMTd__ "d"
+// ARMEABISOFTFP_NOFP:#define __INT32_FMTi__ "i"
+// ARMEABISOFTFP_NOFP:#define __INT32_MAX__ 2147483647
+// ARMEABISOFTFP_NOFP:#define __INT32_TYPE__ int
+// ARMEABISOFTFP_NOFP:#define __INT64_C_SUFFIX__ LL
+// ARMEABISOFTFP_NOFP:#define __INT64_FMTd__ "lld"
+// ARMEABISOFTFP_NOFP:#define __INT64_FMTi__ "lli"
+// ARMEABISOFTFP_NOFP:#define __INT64_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_NOFP:#define __INT64_TYPE__ long long int
+// ARMEABISOFTFP_NOFP:#define __INT8_C_SUFFIX__
+// ARMEABISOFTFP_NOFP:#define __INT8_FMTd__ "hhd"
+// ARMEABISOFTFP_NOFP:#define __INT8_FMTi__ "hhi"
+// ARMEABISOFTFP_NOFP:#define __INT8_MAX__ 127
+// ARMEABISOFTFP_NOFP:#define __INT8_TYPE__ signed char
+// ARMEABISOFTFP_NOFP:#define __INTMAX_C_SUFFIX__ LL
+// ARMEABISOFTFP_NOFP:#define __INTMAX_FMTd__ "lld"
+// ARMEABISOFTFP_NOFP:#define __INTMAX_FMTi__ "lli"
+// ARMEABISOFTFP_NOFP:#define __INTMAX_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_NOFP:#define __INTMAX_TYPE__ long long int
+// ARMEABISOFTFP_NOFP:#define __INTMAX_WIDTH__ 64
+// ARMEABISOFTFP_NOFP:#define __INTPTR_FMTd__ "d"
+// ARMEABISOFTFP_NOFP:#define __INTPTR_FMTi__ "i"
+// ARMEABISOFTFP_NOFP:#define __INTPTR_MAX__ 2147483647
+// ARMEABISOFTFP_NOFP:#define __INTPTR_TYPE__ int
+// ARMEABISOFTFP_NOFP:#define __INTPTR_WIDTH__ 32
+// ARMEABISOFTFP_NOFP:#define __INT_FAST16_FMTd__ "hd"
+// ARMEABISOFTFP_NOFP:#define __INT_FAST16_FMTi__ "hi"
+// ARMEABISOFTFP_NOFP:#define __INT_FAST16_MAX__ 32767
+// ARMEABISOFTFP_NOFP:#define __INT_FAST16_TYPE__ short
+// ARMEABISOFTFP_NOFP:#define __INT_FAST32_FMTd__ "d"
+// ARMEABISOFTFP_NOFP:#define __INT_FAST32_FMTi__ "i"
+// ARMEABISOFTFP_NOFP:#define __INT_FAST32_MAX__ 2147483647
+// ARMEABISOFTFP_NOFP:#define __INT_FAST32_TYPE__ int
+// ARMEABISOFTFP_NOFP:#define __INT_FAST64_FMTd__ "lld"
+// ARMEABISOFTFP_NOFP:#define __INT_FAST64_FMTi__ "lli"
+// ARMEABISOFTFP_NOFP:#define __INT_FAST64_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_NOFP:#define __INT_FAST64_TYPE__ long long int
+// ARMEABISOFTFP_NOFP:#define __INT_FAST8_FMTd__ "hhd"
+// ARMEABISOFTFP_NOFP:#define __INT_FAST8_FMTi__ "hhi"
+// ARMEABISOFTFP_NOFP:#define __INT_FAST8_MAX__ 127
+// ARMEABISOFTFP_NOFP:#define __INT_FAST8_TYPE__ signed char
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST16_FMTd__ "hd"
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST16_FMTi__ "hi"
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST16_MAX__ 32767
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST16_TYPE__ short
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST32_FMTd__ "d"
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST32_FMTi__ "i"
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST32_MAX__ 2147483647
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST32_TYPE__ int
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST64_FMTd__ "lld"
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST64_FMTi__ "lli"
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST64_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST64_TYPE__ long long int
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST8_FMTd__ "hhd"
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST8_FMTi__ "hhi"
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST8_MAX__ 127
+// ARMEABISOFTFP_NOFP:#define __INT_LEAST8_TYPE__ signed char
+// ARMEABISOFTFP_NOFP:#define __INT_MAX__ 2147483647
+// ARMEABISOFTFP_NOFP:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
+// ARMEABISOFTFP_NOFP:#define __LDBL_DIG__ 15
+// ARMEABISOFTFP_NOFP:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
+// ARMEABISOFTFP_NOFP:#define __LDBL_HAS_DENORM__ 1
+// ARMEABISOFTFP_NOFP:#define __LDBL_HAS_INFINITY__ 1
+// ARMEABISOFTFP_NOFP:#define __LDBL_HAS_QUIET_NAN__ 1
+// ARMEABISOFTFP_NOFP:#define __LDBL_MANT_DIG__ 53
+// ARMEABISOFTFP_NOFP:#define __LDBL_MAX_10_EXP__ 308
+// ARMEABISOFTFP_NOFP:#define __LDBL_MAX_EXP__ 1024
+// ARMEABISOFTFP_NOFP:#define __LDBL_MAX__ 1.7976931348623157e+308L
+// ARMEABISOFTFP_NOFP:#define __LDBL_MIN_10_EXP__ (-307)
+// ARMEABISOFTFP_NOFP:#define __LDBL_MIN_EXP__ (-1021)
+// ARMEABISOFTFP_NOFP:#define __LDBL_MIN__ 2.2250738585072014e-308L
+// ARMEABISOFTFP_NOFP:#define __LITTLE_ENDIAN__ 1
+// ARMEABISOFTFP_NOFP:#define __LONG_LONG_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_NOFP:#define __LONG_MAX__ 2147483647L
+// ARMEABISOFTFP_NOFP-NOT:#define __LP64__
+// ARMEABISOFTFP_NOFP:#define __POINTER_WIDTH__ 32
+// ARMEABISOFTFP_NOFP:#define __PTRDIFF_TYPE__ int
+// ARMEABISOFTFP_NOFP:#define __PTRDIFF_WIDTH__ 32
+// ARMEABISOFTFP_NOFP:#define __REGISTER_PREFIX__
+// ARMEABISOFTFP_NOFP:#define __SCHAR_MAX__ 127
+// ARMEABISOFTFP_NOFP:#define __SHRT_MAX__ 32767
+// ARMEABISOFTFP_NOFP:#define __SIG_ATOMIC_MAX__ 2147483647
+// ARMEABISOFTFP_NOFP:#define __SIG_ATOMIC_WIDTH__ 32
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_DOUBLE__ 8
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_FLOAT__ 4
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_INT__ 4
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_LONG_DOUBLE__ 8
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_LONG_LONG__ 8
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_LONG__ 4
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_POINTER__ 4
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_PTRDIFF_T__ 4
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_SHORT__ 2
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_SIZE_T__ 4
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_WCHAR_T__ 4
+// ARMEABISOFTFP_NOFP:#define __SIZEOF_WINT_T__ 4
+// ARMEABISOFTFP_NOFP:#define __SIZE_MAX__ 4294967295U
+// ARMEABISOFTFP_NOFP:#define __SIZE_TYPE__ unsigned int
+// ARMEABISOFTFP_NOFP:#define __SIZE_WIDTH__ 32
+// ARMEABISOFTFP_NOFP:#define __SOFTFP__ 1
+// ARMEABISOFTFP_NOFP:#define __UINT16_C_SUFFIX__
+// ARMEABISOFTFP_NOFP:#define __UINT16_MAX__ 65535
+// ARMEABISOFTFP_NOFP:#define __UINT16_TYPE__ unsigned short
+// ARMEABISOFTFP_NOFP:#define __UINT32_C_SUFFIX__ U
+// ARMEABISOFTFP_NOFP:#define __UINT32_MAX__ 4294967295U
+// ARMEABISOFTFP_NOFP:#define __UINT32_TYPE__ unsigned int
+// ARMEABISOFTFP_NOFP:#define __UINT64_C_SUFFIX__ ULL
+// ARMEABISOFTFP_NOFP:#define __UINT64_MAX__ 18446744073709551615ULL
+// ARMEABISOFTFP_NOFP:#define __UINT64_TYPE__ long long unsigned int
+// ARMEABISOFTFP_NOFP:#define __UINT8_C_SUFFIX__
+// ARMEABISOFTFP_NOFP:#define __UINT8_MAX__ 255
+// ARMEABISOFTFP_NOFP:#define __UINT8_TYPE__ unsigned char
+// ARMEABISOFTFP_NOFP:#define __UINTMAX_C_SUFFIX__ ULL
+// ARMEABISOFTFP_NOFP:#define __UINTMAX_MAX__ 18446744073709551615ULL
+// ARMEABISOFTFP_NOFP:#define __UINTMAX_TYPE__ long long unsigned int
+// ARMEABISOFTFP_NOFP:#define __UINTMAX_WIDTH__ 64
+// ARMEABISOFTFP_NOFP:#define __UINTPTR_MAX__ 4294967295U
+// ARMEABISOFTFP_NOFP:#define __UINTPTR_TYPE__ unsigned int
+// ARMEABISOFTFP_NOFP:#define __UINTPTR_WIDTH__ 32
+// ARMEABISOFTFP_NOFP:#define __UINT_FAST16_MAX__ 65535
+// ARMEABISOFTFP_NOFP:#define __UINT_FAST16_TYPE__ unsigned short
+// ARMEABISOFTFP_NOFP:#define __UINT_FAST32_MAX__ 4294967295U
+// ARMEABISOFTFP_NOFP:#define __UINT_FAST32_TYPE__ unsigned int
+// ARMEABISOFTFP_NOFP:#define __UINT_FAST64_MAX__ 18446744073709551615ULL
+// ARMEABISOFTFP_NOFP:#define __UINT_FAST64_TYPE__ long long unsigned int
+// ARMEABISOFTFP_NOFP:#define __UINT_FAST8_MAX__ 255
+// ARMEABISOFTFP_NOFP:#define __UINT_FAST8_TYPE__ unsigned char
+// ARMEABISOFTFP_NOFP:#define __UINT_LEAST16_MAX__ 65535
+// ARMEABISOFTFP_NOFP:#define __UINT_LEAST16_TYPE__ unsigned short
+// ARMEABISOFTFP_NOFP:#define __UINT_LEAST32_MAX__ 4294967295U
+// ARMEABISOFTFP_NOFP:#define __UINT_LEAST32_TYPE__ unsigned int
+// ARMEABISOFTFP_NOFP:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL
+// ARMEABISOFTFP_NOFP:#define __UINT_LEAST64_TYPE__ long long unsigned int
+// ARMEABISOFTFP_NOFP:#define __UINT_LEAST8_MAX__ 255
+// ARMEABISOFTFP_NOFP:#define __UINT_LEAST8_TYPE__ unsigned char
+// ARMEABISOFTFP_NOFP:#define __USER_LABEL_PREFIX__
+// ARMEABISOFTFP_NOFP:#define __WCHAR_MAX__ 4294967295U
+// ARMEABISOFTFP_NOFP:#define __WCHAR_TYPE__ unsigned int
+// ARMEABISOFTFP_NOFP:#define __WCHAR_WIDTH__ 32
+// ARMEABISOFTFP_NOFP:#define __WINT_TYPE__ unsigned int
+// ARMEABISOFTFP_NOFP:#define __WINT_WIDTH__ 32
+// ARMEABISOFTFP_NOFP:#define __arm 1
+// ARMEABISOFTFP_NOFP:#define __arm__ 1
+
+// RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-none-linux-gnueabi -target-cpu cortex-m4 -target-feature +soft-float-abi -target-feature +vfp4d16s < /dev/null | FileCheck -match-full-lines -check-prefix ARMEABISOFTFP_FP %s
+//
+// ARMEABISOFTFP_FP-NOT:#define _LP64
+// ARMEABISOFTFP_FP:#define __APCS_32__ 1
+// ARMEABISOFTFP_FP-NOT:#define __ARMEB__ 1
+// ARMEABISOFTFP_FP:#define __ARMEL__ 1
+// ARMEABISOFTFP_FP:#define __ARM_ARCH 7
+// ARMEABISOFTFP_FP:#define __ARM_ARCH_7EM__ 1
+// ARMEABISOFTFP_FP-NOT:#define __ARM_BIG_ENDIAN 1
+// ARMEABISOFTFP_FP:#define __ARM_EABI__ 1
+// ARMEABISOFTFP_FP:#define __ARM_PCS 1
+// ARMEABISOFTFP_FP-NOT:#define __ARM_PCS_VFP 1
+// ARMEABISOFTFP_FP:#define __BIGGEST_ALIGNMENT__ 8
+// ARMEABISOFTFP_FP:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
+// ARMEABISOFTFP_FP:#define __CHAR16_TYPE__ unsigned short
+// ARMEABISOFTFP_FP:#define __CHAR32_TYPE__ unsigned int
+// ARMEABISOFTFP_FP:#define __CHAR_BIT__ 8
+// ARMEABISOFTFP_FP:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
+// ARMEABISOFTFP_FP:#define __DBL_DIG__ 15
+// ARMEABISOFTFP_FP:#define __DBL_EPSILON__ 2.2204460492503131e-16
+// ARMEABISOFTFP_FP:#define __DBL_HAS_DENORM__ 1
+// ARMEABISOFTFP_FP:#define __DBL_HAS_INFINITY__ 1
+// ARMEABISOFTFP_FP:#define __DBL_HAS_QUIET_NAN__ 1
+// ARMEABISOFTFP_FP:#define __DBL_MANT_DIG__ 53
+// ARMEABISOFTFP_FP:#define __DBL_MAX_10_EXP__ 308
+// ARMEABISOFTFP_FP:#define __DBL_MAX_EXP__ 1024
+// ARMEABISOFTFP_FP:#define __DBL_MAX__ 1.7976931348623157e+308
+// ARMEABISOFTFP_FP:#define __DBL_MIN_10_EXP__ (-307)
+// ARMEABISOFTFP_FP:#define __DBL_MIN_EXP__ (-1021)
+// ARMEABISOFTFP_FP:#define __DBL_MIN__ 2.2250738585072014e-308
+// ARMEABISOFTFP_FP:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
+// ARMEABISOFTFP_FP:#define __FLT_DENORM_MIN__ 1.40129846e-45F
+// ARMEABISOFTFP_FP:#define __FLT_DIG__ 6
+// ARMEABISOFTFP_FP:#define __FLT_EPSILON__ 1.19209290e-7F
+// ARMEABISOFTFP_FP:#define __FLT_HAS_DENORM__ 1
+// ARMEABISOFTFP_FP:#define __FLT_HAS_INFINITY__ 1
+// ARMEABISOFTFP_FP:#define __FLT_HAS_QUIET_NAN__ 1
+// ARMEABISOFTFP_FP:#define __FLT_MANT_DIG__ 24
+// ARMEABISOFTFP_FP:#define __FLT_MAX_10_EXP__ 38
+// ARMEABISOFTFP_FP:#define __FLT_MAX_EXP__ 128
+// ARMEABISOFTFP_FP:#define __FLT_MAX__ 3.40282347e+38F
+// ARMEABISOFTFP_FP:#define __FLT_MIN_10_EXP__ (-37)
+// ARMEABISOFTFP_FP:#define __FLT_MIN_EXP__ (-125)
+// ARMEABISOFTFP_FP:#define __FLT_MIN__ 1.17549435e-38F
+// ARMEABISOFTFP_FP:#define __FLT_RADIX__ 2
+// ARMEABISOFTFP_FP:#define __INT16_C_SUFFIX__
+// ARMEABISOFTFP_FP:#define __INT16_FMTd__ "hd"
+// ARMEABISOFTFP_FP:#define __INT16_FMTi__ "hi"
+// ARMEABISOFTFP_FP:#define __INT16_MAX__ 32767
+// ARMEABISOFTFP_FP:#define __INT16_TYPE__ short
+// ARMEABISOFTFP_FP:#define __INT32_C_SUFFIX__
+// ARMEABISOFTFP_FP:#define __INT32_FMTd__ "d"
+// ARMEABISOFTFP_FP:#define __INT32_FMTi__ "i"
+// ARMEABISOFTFP_FP:#define __INT32_MAX__ 2147483647
+// ARMEABISOFTFP_FP:#define __INT32_TYPE__ int
+// ARMEABISOFTFP_FP:#define __INT64_C_SUFFIX__ LL
+// ARMEABISOFTFP_FP:#define __INT64_FMTd__ "lld"
+// ARMEABISOFTFP_FP:#define __INT64_FMTi__ "lli"
+// ARMEABISOFTFP_FP:#define __INT64_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_FP:#define __INT64_TYPE__ long long int
+// ARMEABISOFTFP_FP:#define __INT8_C_SUFFIX__
+// ARMEABISOFTFP_FP:#define __INT8_FMTd__ "hhd"
+// ARMEABISOFTFP_FP:#define __INT8_FMTi__ "hhi"
+// ARMEABISOFTFP_FP:#define __INT8_MAX__ 127
+// ARMEABISOFTFP_FP:#define __INT8_TYPE__ signed char
+// ARMEABISOFTFP_FP:#define __INTMAX_C_SUFFIX__ LL
+// ARMEABISOFTFP_FP:#define __INTMAX_FMTd__ "lld"
+// ARMEABISOFTFP_FP:#define __INTMAX_FMTi__ "lli"
+// ARMEABISOFTFP_FP:#define __INTMAX_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_FP:#define __INTMAX_TYPE__ long long int
+// ARMEABISOFTFP_FP:#define __INTMAX_WIDTH__ 64
+// ARMEABISOFTFP_FP:#define __INTPTR_FMTd__ "d"
+// ARMEABISOFTFP_FP:#define __INTPTR_FMTi__ "i"
+// ARMEABISOFTFP_FP:#define __INTPTR_MAX__ 2147483647
+// ARMEABISOFTFP_FP:#define __INTPTR_TYPE__ int
+// ARMEABISOFTFP_FP:#define __INTPTR_WIDTH__ 32
+// ARMEABISOFTFP_FP:#define __INT_FAST16_FMTd__ "hd"
+// ARMEABISOFTFP_FP:#define __INT_FAST16_FMTi__ "hi"
+// ARMEABISOFTFP_FP:#define __INT_FAST16_MAX__ 32767
+// ARMEABISOFTFP_FP:#define __INT_FAST16_TYPE__ short
+// ARMEABISOFTFP_FP:#define __INT_FAST32_FMTd__ "d"
+// ARMEABISOFTFP_FP:#define __INT_FAST32_FMTi__ "i"
+// ARMEABISOFTFP_FP:#define __INT_FAST32_MAX__ 2147483647
+// ARMEABISOFTFP_FP:#define __INT_FAST32_TYPE__ int
+// ARMEABISOFTFP_FP:#define __INT_FAST64_FMTd__ "lld"
+// ARMEABISOFTFP_FP:#define __INT_FAST64_FMTi__ "lli"
+// ARMEABISOFTFP_FP:#define __INT_FAST64_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_FP:#define __INT_FAST64_TYPE__ long long int
+// ARMEABISOFTFP_FP:#define __INT_FAST8_FMTd__ "hhd"
+// ARMEABISOFTFP_FP:#define __INT_FAST8_FMTi__ "hhi"
+// ARMEABISOFTFP_FP:#define __INT_FAST8_MAX__ 127
+// ARMEABISOFTFP_FP:#define __INT_FAST8_TYPE__ signed char
+// ARMEABISOFTFP_FP:#define __INT_LEAST16_FMTd__ "hd"
+// ARMEABISOFTFP_FP:#define __INT_LEAST16_FMTi__ "hi"
+// ARMEABISOFTFP_FP:#define __INT_LEAST16_MAX__ 32767
+// ARMEABISOFTFP_FP:#define __INT_LEAST16_TYPE__ short
+// ARMEABISOFTFP_FP:#define __INT_LEAST32_FMTd__ "d"
+// ARMEABISOFTFP_FP:#define __INT_LEAST32_FMTi__ "i"
+// ARMEABISOFTFP_FP:#define __INT_LEAST32_MAX__ 2147483647
+// ARMEABISOFTFP_FP:#define __INT_LEAST32_TYPE__ int
+// ARMEABISOFTFP_FP:#define __INT_LEAST64_FMTd__ "lld"
+// ARMEABISOFTFP_FP:#define __INT_LEAST64_FMTi__ "lli"
+// ARMEABISOFTFP_FP:#define __INT_LEAST64_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_FP:#define __INT_LEAST64_TYPE__ long long int
+// ARMEABISOFTFP_FP:#define __INT_LEAST8_FMTd__ "hhd"
+// ARMEABISOFTFP_FP:#define __INT_LEAST8_FMTi__ "hhi"
+// ARMEABISOFTFP_FP:#define __INT_LEAST8_MAX__ 127
+// ARMEABISOFTFP_FP:#define __INT_LEAST8_TYPE__ signed char
+// ARMEABISOFTFP_FP:#define __INT_MAX__ 2147483647
+// ARMEABISOFTFP_FP:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
+// ARMEABISOFTFP_FP:#define __LDBL_DIG__ 15
+// ARMEABISOFTFP_FP:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
+// ARMEABISOFTFP_FP:#define __LDBL_HAS_DENORM__ 1
+// ARMEABISOFTFP_FP:#define __LDBL_HAS_INFINITY__ 1
+// ARMEABISOFTFP_FP:#define __LDBL_HAS_QUIET_NAN__ 1
+// ARMEABISOFTFP_FP:#define __LDBL_MANT_DIG__ 53
+// ARMEABISOFTFP_FP:#define __LDBL_MAX_10_EXP__ 308
+// ARMEABISOFTFP_FP:#define __LDBL_MAX_EXP__ 1024
+// ARMEABISOFTFP_FP:#define __LDBL_MAX__ 1.7976931348623157e+308L
+// ARMEABISOFTFP_FP:#define __LDBL_MIN_10_EXP__ (-307)
+// ARMEABISOFTFP_FP:#define __LDBL_MIN_EXP__ (-1021)
+// ARMEABISOFTFP_FP:#define __LDBL_MIN__ 2.2250738585072014e-308L
+// ARMEABISOFTFP_FP:#define __LITTLE_ENDIAN__ 1
+// ARMEABISOFTFP_FP:#define __LONG_LONG_MAX__ 9223372036854775807LL
+// ARMEABISOFTFP_FP:#define __LONG_MAX__ 2147483647L
+// ARMEABISOFTFP_FP-NOT:#define __LP64__
+// ARMEABISOFTFP_FP:#define __POINTER_WIDTH__ 32
+// ARMEABISOFTFP_FP:#define __PTRDIFF_TYPE__ int
+// ARMEABISOFTFP_FP:#define __PTRDIFF_WIDTH__ 32
+// ARMEABISOFTFP_FP:#define __REGISTER_PREFIX__
+// ARMEABISOFTFP_FP:#define __SCHAR_MAX__ 127
+// ARMEABISOFTFP_FP:#define __SHRT_MAX__ 32767
+// ARMEABISOFTFP_FP:#define __SIG_ATOMIC_MAX__ 2147483647
+// ARMEABISOFTFP_FP:#define __SIG_ATOMIC_WIDTH__ 32
+// ARMEABISOFTFP_FP:#define __SIZEOF_DOUBLE__ 8
+// ARMEABISOFTFP_FP:#define __SIZEOF_FLOAT__ 4
+// ARMEABISOFTFP_FP:#define __SIZEOF_INT__ 4
+// ARMEABISOFTFP_FP:#define __SIZEOF_LONG_DOUBLE__ 8
+// ARMEABISOFTFP_FP:#define __SIZEOF_LONG_LONG__ 8
+// ARMEABISOFTFP_FP:#define __SIZEOF_LONG__ 4
+// ARMEABISOFTFP_FP:#define __SIZEOF_POINTER__ 4
+// ARMEABISOFTFP_FP:#define __SIZEOF_PTRDIFF_T__ 4
+// ARMEABISOFTFP_FP:#define __SIZEOF_SHORT__ 2
+// ARMEABISOFTFP_FP:#define __SIZEOF_SIZE_T__ 4
+// ARMEABISOFTFP_FP:#define __SIZEOF_WCHAR_T__ 4
+// ARMEABISOFTFP_FP:#define __SIZEOF_WINT_T__ 4
+// ARMEABISOFTFP_FP:#define __SIZE_MAX__ 4294967295U
+// ARMEABISOFTFP_FP:#define __SIZE_TYPE__ unsigned int
+// ARMEABISOFTFP_FP:#define __SIZE_WIDTH__ 32
+// ARMEABISOFTFP_FP-NOT:#define __SOFTFP__ 1
+// ARMEABISOFTFP_FP:#define __UINT16_C_SUFFIX__
+// ARMEABISOFTFP_FP:#define __UINT16_MAX__ 65535
+// ARMEABISOFTFP_FP:#define __UINT16_TYPE__ unsigned short
+// ARMEABISOFTFP_FP:#define __UINT32_C_SUFFIX__ U
+// ARMEABISOFTFP_FP:#define __UINT32_MAX__ 4294967295U
+// ARMEABISOFTFP_FP:#define __UINT32_TYPE__ unsigned int
+// ARMEABISOFTFP_FP:#define __UINT64_C_SUFFIX__ ULL
+// ARMEABISOFTFP_FP:#define __UINT64_MAX__ 18446744073709551615ULL
+// ARMEABISOFTFP_FP:#define __UINT64_TYPE__ long long unsigned int
+// ARMEABISOFTFP_FP:#define __UINT8_C_SUFFIX__
+// ARMEABISOFTFP_FP:#define __UINT8_MAX__ 255
+// ARMEABISOFTFP_FP:#define __UINT8_TYPE__ unsigned char
+// ARMEABISOFTFP_FP:#define __UINTMAX_C_SUFFIX__ ULL
+// ARMEABISOFTFP_FP:#define __UINTMAX_MAX__ 18446744073709551615ULL
+// ARMEABISOFTFP_FP:#define __UINTMAX_TYPE__ long long unsigned int
+// ARMEABISOFTFP_FP:#define __UINTMAX_WIDTH__ 64
+// ARMEABISOFTFP_FP:#define __UINTPTR_MAX__ 4294967295U
+// ARMEABISOFTFP_FP:#define __UINTPTR_TYPE__ unsigned int
+// ARMEABISOFTFP_FP:#define __UINTPTR_WIDTH__ 32
+// ARMEABISOFTFP_FP:#define __UINT_FAST16_MAX__ 65535
+// ARMEABISOFTFP_FP:#define __UINT_FAST16_TYPE__ unsigned short
+// ARMEABISOFTFP_FP:#define __UINT_FAST32_MAX__ 4294967295U
+// ARMEABISOFTFP_FP:#define __UINT_FAST32_TYPE__ unsigned int
+// ARMEABISOFTFP_FP:#define __UINT_FAST64_MAX__ 18446744073709551615ULL
+// ARMEABISOFTFP_FP:#define __UINT_FAST64_TYPE__ long long unsigned int
+// ARMEABISOFTFP_FP:#define __UINT_FAST8_MAX__ 255
+// ARMEABISOFTFP_FP:#define __UINT_FAST8_TYPE__ unsigned char
+// ARMEABISOFTFP_FP:#define __UINT_LEAST16_MAX__ 65535
+// ARMEABISOFTFP_FP:#define __UINT_LEAST16_TYPE__ unsigned short
+// ARMEABISOFTFP_FP:#define __UINT_LEAST32_MAX__ 4294967295U
+// ARMEABISOFTFP_FP:#define __UINT_LEAST32_TYPE__ unsigned int
+// ARMEABISOFTFP_FP:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL
+// ARMEABISOFTFP_FP:#define __UINT_LEAST64_TYPE__ long long unsigned int
+// ARMEABISOFTFP_FP:#define __UINT_LEAST8_MAX__ 255
+// ARMEABISOFTFP_FP:#define __UINT_LEAST8_TYPE__ unsigned char
+// ARMEABISOFTFP_FP:#define __USER_LABEL_PREFIX__
+// ARMEABISOFTFP_FP:#define __WCHAR_MAX__ 4294967295U
+// ARMEABISOFTFP_FP:#define __WCHAR_TYPE__ unsigned int
+// ARMEABISOFTFP_FP:#define __WCHAR_WIDTH__ 32
+// ARMEABISOFTFP_FP:#define __WINT_TYPE__ unsigned int
+// ARMEABISOFTFP_FP:#define __WINT_WIDTH__ 32
+// ARMEABISOFTFP_FP:#define __arm 1
+// ARMEABISOFTFP_FP:#define __arm__ 1
 
 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-none-linux-gnueabi < /dev/null | FileCheck -match-full-lines -check-prefix ARMEABIHARDFP %s
 //


        


More information about the cfe-commits mailing list