diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
commit | dbe13110f59f48b4dbb7552b3ac2935acdeece7f (patch) | |
tree | be1815eb79b42ff482a8562b13c2dcbf0c5dcbee /test/Preprocessor | |
parent | 9da628931ebf2609493570f87824ca22402cc65f (diff) |
Notes
Diffstat (limited to 'test/Preprocessor')
24 files changed, 1144 insertions, 469 deletions
diff --git a/test/Preprocessor/Inputs/TestFramework.framework/.system_framework b/test/Preprocessor/Inputs/TestFramework.framework/.system_framework new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test/Preprocessor/Inputs/TestFramework.framework/.system_framework diff --git a/test/Preprocessor/Inputs/TestFramework.framework/Frameworks/AnotherTestFramework.framework/Headers/AnotherTestFramework.h b/test/Preprocessor/Inputs/TestFramework.framework/Frameworks/AnotherTestFramework.framework/Headers/AnotherTestFramework.h new file mode 100644 index 000000000000..489f17a729f1 --- /dev/null +++ b/test/Preprocessor/Inputs/TestFramework.framework/Frameworks/AnotherTestFramework.framework/Headers/AnotherTestFramework.h @@ -0,0 +1,3 @@ +static inline int another_test_framework_func(unsigned a) { + return a; +} diff --git a/test/Preprocessor/Inputs/TestFramework.framework/Headers/TestFramework.h b/test/Preprocessor/Inputs/TestFramework.framework/Headers/TestFramework.h new file mode 100644 index 000000000000..06f9ab545d6f --- /dev/null +++ b/test/Preprocessor/Inputs/TestFramework.framework/Headers/TestFramework.h @@ -0,0 +1,6 @@ +// Include a subframework header. +#include <AnotherTestFramework/AnotherTestFramework.h> + +static inline int test_framework_func(unsigned a) { + return a; +} diff --git a/test/Preprocessor/_Pragma-in-macro-arg.c b/test/Preprocessor/_Pragma-in-macro-arg.c new file mode 100644 index 000000000000..2877bcb7bfe0 --- /dev/null +++ b/test/Preprocessor/_Pragma-in-macro-arg.c @@ -0,0 +1,35 @@ +// RUN: %clang_cc1 %s -verify -Wconversion + +// Don't crash (rdar://11168596) +#define A(desc) _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wparentheses\"") _Pragma("clang diagnostic pop") +#define B(desc) A(desc) +B(_Pragma("clang diagnostic ignored \"-Wparentheses\"")) + + +#define EMPTY(x) +#define INACTIVE(x) EMPTY(x) + +#define ID(x) x +#define ACTIVE(x) ID(x) + +// This should be ignored.. +INACTIVE(_Pragma("clang diagnostic ignored \"-Wconversion\"")) + +#define IGNORE_CONV _Pragma("clang diagnostic ignored \"-Wconversion\"") _Pragma("clang diagnostic ignored \"-Wconversion\"") + +// ..as should this. +INACTIVE(IGNORE_CONV) + +#define IGNORE_POPPUSH(Pop, Push, W, D) Push W D Pop +IGNORE_POPPUSH(_Pragma("clang diagnostic pop"), _Pragma("clang diagnostic push"), + _Pragma("clang diagnostic ignored \"-Wconversion\""), int q = (double)1.0); + +int x1 = (double)1.0; // expected-warning {{implicit conversion}} + +ACTIVE(_Pragma) ("clang diagnostic ignored \"-Wconversion\"")) // expected-error {{_Pragma takes a parenthesized string literal}} \ + expected-error {{expected identifier or '('}} expected-error {{expected ')'}} expected-note {{to match this '('}} + +// This should disable the warning. +ACTIVE(IGNORE_CONV) + +int x2 = (double)1.0; diff --git a/test/Preprocessor/cxx_oper_keyword_ms_compat.cpp b/test/Preprocessor/cxx_oper_keyword_ms_compat.cpp new file mode 100644 index 000000000000..1c6ef90c8b88 --- /dev/null +++ b/test/Preprocessor/cxx_oper_keyword_ms_compat.cpp @@ -0,0 +1,179 @@ +// RUN: %clang_cc1 %s -E -fms-compatibility + +bool f() { + // Check that operators still work before redefining them. +#if compl 0 bitand 1 + return true and false; +#endif +} + +// All c++ keywords should be #define-able in ms mode. +// (operators like "and" aren't normally, the rest always is.) +#define and +#define and_eq +#define alignas +#define alignof +#define asm +#define auto +#define bitand +#define bitor +#define bool +#define break +#define case +#define catch +#define char +#define char16_t +#define char32_t +#define class +#define compl +#define const +#define constexpr +#define const_cast +#define continue +#define decltype +#define default +#define delete +#define double +#define dynamic_cast +#define else +#define enum +#define explicit +#define export +#define extern +#define false +#define float +#define for +#define friend +#define goto +#define if +#define inline +#define int +#define long +#define mutable +#define namespace +#define new +#define noexcept +#define not +#define not_eq +#define nullptr +#define operator +#define or +#define or_eq +#define private +#define protected +#define public +#define register +#define reinterpret_cast +#define return +#define short +#define signed +#define sizeof +#define static +#define static_assert +#define static_cast +#define struct +#define switch +#define template +#define this +#define thread_local +#define throw +#define true +#define try +#define typedef +#define typeid +#define typename +#define union +#define unsigned +#define using +#define virtual +#define void +#define volatile +#define wchar_t +#define while +#define xor +#define xor_eq + +// Check this is all properly defined away. +and +and_eq +alignas +alignof +asm +auto +bitand +bitor +bool +break +case +catch +char +char16_t +char32_t +class +compl +const +constexpr +const_cast +continue +decltype +default +delete +double +dynamic_cast +else +enum +explicit +export +extern +false +float +for +friend +goto +if +inline +int +long +mutable +namespace +new +noexcept +not +not_eq +nullptr +operator +or +or_eq +private +protected +public +register +reinterpret_cast +return +short +signed +sizeof +static +static_assert +static_cast +struct +switch +template +this +thread_local +throw +true +try +typedef +typeid +typename +union +unsigned +using +virtual +void +volatile +wchar_t +while +xor +xor_eq diff --git a/test/Preprocessor/feature_tests.c b/test/Preprocessor/feature_tests.c index 35592bd8e1c3..b78a2517b18d 100644 --- a/test/Preprocessor/feature_tests.c +++ b/test/Preprocessor/feature_tests.c @@ -12,6 +12,7 @@ #if !__has_builtin(__builtin_huge_val) || \ !__has_builtin(__builtin_shufflevector) || \ !__has_builtin(__builtin_trap) || \ + !__has_builtin(__c11_atomic_init) || \ !__has_feature(attribute_analyzer_noreturn) || \ !__has_feature(attribute_overloadable) #error Clang should have these @@ -21,7 +22,9 @@ #error Clang should not have this #endif - +#if !__has_feature(__attribute_deprecated_with_message__) +#error Feature name in double underscores does not work +#endif // Make sure we have x86 builtins only (forced with target triple). diff --git a/test/Preprocessor/has_attribute.c b/test/Preprocessor/has_attribute.c new file mode 100644 index 000000000000..80f53a52fe38 --- /dev/null +++ b/test/Preprocessor/has_attribute.c @@ -0,0 +1,26 @@ +// RUN: %clang_cc1 -E %s -o - | FileCheck %s + +// CHECK: always_inline +#if __has_attribute(always_inline) +int always_inline(); +#endif + +// CHECK: __always_inline__ +#if __has_attribute(__always_inline__) +int __always_inline__(); +#endif + +// CHECK: no_dummy_attribute +#if !__has_attribute(dummy_attribute) +int no_dummy_attribute(); +#endif + +// CHECK: has_has_attribute +#ifdef __has_attribute +int has_has_attribute(); +#endif + +// CHECK: has_something_we_dont_have +#if !__has_attribute(something_we_dont_have) +int has_something_we_dont_have(); +#endif diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index 11218154ea1c..e0f45f17283e 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -212,111 +212,14 @@ // ARM:#define __THUMB_INTERWORK__ 1 // ARM:#define __UINTMAX_TYPE__ long long unsigned int // ARM:#define __USER_LABEL_PREFIX__ _ -// ARM:#define __WCHAR_MAX__ 2147483647 -// ARM:#define __WCHAR_TYPE__ int +// ARM:#define __WCHAR_MAX__ 4294967295U +// ARM:#define __WCHAR_TYPE__ unsigned int // ARM:#define __WCHAR_WIDTH__ 32 // ARM:#define __WINT_TYPE__ int // ARM:#define __WINT_WIDTH__ 32 // ARM:#define __arm 1 // ARM:#define __arm__ 1 // -// RUN: %clang_cc1 -E -dM -ffreestanding -triple=bfin-none-none < /dev/null | FileCheck -check-prefix BFIN %s -// -// BFIN:#define BFIN 1 -// BFIN:#define __ADSPBLACKFIN__ 1 -// BFIN:#define __ADSPLPBLACKFIN__ 1 -// BFIN:#define __BFIN 1 -// BFIN:#define __BFIN__ 1 -// BFIN:#define __CHAR16_TYPE__ unsigned short -// BFIN:#define __CHAR32_TYPE__ unsigned int -// BFIN:#define __CHAR_BIT__ 8 -// BFIN:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 -// BFIN:#define __DBL_DIG__ 15 -// BFIN:#define __DBL_EPSILON__ 2.2204460492503131e-16 -// BFIN:#define __DBL_HAS_DENORM__ 1 -// BFIN:#define __DBL_HAS_INFINITY__ 1 -// BFIN:#define __DBL_HAS_QUIET_NAN__ 1 -// BFIN:#define __DBL_MANT_DIG__ 53 -// BFIN:#define __DBL_MAX_10_EXP__ 308 -// BFIN:#define __DBL_MAX_EXP__ 1024 -// BFIN:#define __DBL_MAX__ 1.7976931348623157e+308 -// BFIN:#define __DBL_MIN_10_EXP__ (-307) -// BFIN:#define __DBL_MIN_EXP__ (-1021) -// BFIN:#define __DBL_MIN__ 2.2250738585072014e-308 -// BFIN:#define __DECIMAL_DIG__ 17 -// BFIN:#define __FLT_DENORM_MIN__ 1.40129846e-45F -// BFIN:#define __FLT_DIG__ 6 -// BFIN:#define __FLT_EPSILON__ 1.19209290e-7F -// BFIN:#define __FLT_EVAL_METHOD__ 0 -// BFIN:#define __FLT_HAS_DENORM__ 1 -// BFIN:#define __FLT_HAS_INFINITY__ 1 -// BFIN:#define __FLT_HAS_QUIET_NAN__ 1 -// BFIN:#define __FLT_MANT_DIG__ 24 -// BFIN:#define __FLT_MAX_10_EXP__ 38 -// BFIN:#define __FLT_MAX_EXP__ 128 -// BFIN:#define __FLT_MAX__ 3.40282347e+38F -// BFIN:#define __FLT_MIN_10_EXP__ (-37) -// BFIN:#define __FLT_MIN_EXP__ (-125) -// BFIN:#define __FLT_MIN__ 1.17549435e-38F -// BFIN:#define __FLT_RADIX__ 2 -// BFIN:#define __INT16_TYPE__ short -// BFIN:#define __INT32_TYPE__ int -// BFIN:#define __INT64_C_SUFFIX__ LL -// BFIN:#define __INT64_TYPE__ long long int -// BFIN:#define __INT8_TYPE__ char -// BFIN:#define __INTMAX_MAX__ 9223372036854775807LL -// BFIN:#define __INTMAX_TYPE__ long long int -// BFIN:#define __INTMAX_WIDTH__ 64 -// BFIN:#define __INTPTR_TYPE__ long int -// BFIN:#define __INTPTR_WIDTH__ 32 -// BFIN:#define __INT_MAX__ 2147483647 -// BFIN:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324 -// BFIN:#define __LDBL_DIG__ 15 -// BFIN:#define __LDBL_EPSILON__ 2.2204460492503131e-16 -// BFIN:#define __LDBL_HAS_DENORM__ 1 -// BFIN:#define __LDBL_HAS_INFINITY__ 1 -// BFIN:#define __LDBL_HAS_QUIET_NAN__ 1 -// BFIN:#define __LDBL_MANT_DIG__ 53 -// BFIN:#define __LDBL_MAX_10_EXP__ 308 -// BFIN:#define __LDBL_MAX_EXP__ 1024 -// BFIN:#define __LDBL_MAX__ 1.7976931348623157e+308 -// BFIN:#define __LDBL_MIN_10_EXP__ (-307) -// BFIN:#define __LDBL_MIN_EXP__ (-1021) -// BFIN:#define __LDBL_MIN__ 2.2250738585072014e-308 -// BFIN:#define __LONG_LONG_MAX__ 9223372036854775807LL -// BFIN:#define __LONG_MAX__ 2147483647L -// BFIN:#define __NO_INLINE__ 1 -// BFIN:#define __POINTER_WIDTH__ 32 -// BFIN:#define __PTRDIFF_TYPE__ long int -// BFIN:#define __PTRDIFF_WIDTH__ 32 -// BFIN:#define __SCHAR_MAX__ 127 -// BFIN:#define __SHRT_MAX__ 32767 -// BFIN:#define __SIG_ATOMIC_WIDTH__ 32 -// BFIN:#define __SIZEOF_DOUBLE__ 8 -// BFIN:#define __SIZEOF_FLOAT__ 4 -// BFIN:#define __SIZEOF_INT__ 4 -// BFIN:#define __SIZEOF_LONG_DOUBLE__ 8 -// BFIN:#define __SIZEOF_LONG_LONG__ 8 -// BFIN:#define __SIZEOF_LONG__ 4 -// BFIN:#define __SIZEOF_POINTER__ 4 -// BFIN:#define __SIZEOF_PTRDIFF_T__ 4 -// BFIN:#define __SIZEOF_SHORT__ 2 -// BFIN:#define __SIZEOF_SIZE_T__ 4 -// BFIN:#define __SIZEOF_WCHAR_T__ 4 -// BFIN:#define __SIZEOF_WINT_T__ 4 -// BFIN:#define __SIZE_TYPE__ long unsigned int -// BFIN:#define __SIZE_WIDTH__ 32 -// BFIN:#define __UINTMAX_TYPE__ long long unsigned int -// BFIN:#define __USER_LABEL_PREFIX__ _ -// BFIN:#define __WCHAR_MAX__ 2147483647 -// BFIN:#define __WCHAR_TYPE__ int -// BFIN:#define __WCHAR_WIDTH__ 32 -// BFIN:#define __WINT_TYPE__ int -// BFIN:#define __WINT_WIDTH__ 32 -// BFIN:#define __bfin 1 -// BFIN:#define __bfin__ 1 -// BFIN:#define bfin 1 -// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-none-none < /dev/null | FileCheck -check-prefix I386 %s // // I386:#define __CHAR16_TYPE__ unsigned short @@ -339,7 +242,7 @@ // I386:#define __FLT_DENORM_MIN__ 1.40129846e-45F // I386:#define __FLT_DIG__ 6 // I386:#define __FLT_EPSILON__ 1.19209290e-7F -// I386:#define __FLT_EVAL_METHOD__ 0 +// I386:#define __FLT_EVAL_METHOD__ 2 // I386:#define __FLT_HAS_DENORM__ 1 // I386:#define __FLT_HAS_INFINITY__ 1 // I386:#define __FLT_HAS_QUIET_NAN__ 1 @@ -412,7 +315,7 @@ // I386:#define __i386__ 1 // I386:#define i386 1 // -// RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-pc-linux-gnu < /dev/null | FileCheck -check-prefix I386-LINUX %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-pc-linux-gnu -target-cpu pentium4 < /dev/null | FileCheck -check-prefix I386-LINUX %s // // I386-LINUX:#define __CHAR16_TYPE__ unsigned short // I386-LINUX:#define __CHAR32_TYPE__ unsigned int @@ -507,6 +410,462 @@ // I386-LINUX:#define __i386__ 1 // I386-LINUX:#define i386 1 // +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips-none-none < /dev/null | FileCheck -check-prefix MIPS32BE %s +// +// MIPS32BE:#define MIPSEB 1 +// MIPS32BE:#define _ABIO32 1 +// MIPS32BE:#define _MIPSEB 1 +// MIPS32BE:#define _MIPS_SIM _ABIO32 +// MIPS32BE:#define _MIPS_SZINT 32 +// MIPS32BE:#define _MIPS_SZLONG 32 +// MIPS32BE:#define _MIPS_SZPTR 32 +// MIPS32BE:#define __CHAR16_TYPE__ unsigned short +// MIPS32BE:#define __CHAR32_TYPE__ unsigned int +// MIPS32BE:#define __CHAR_BIT__ 8 +// MIPS32BE:#define __CONSTANT_CFSTRINGS__ 1 +// MIPS32BE:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// MIPS32BE:#define __DBL_DIG__ 15 +// MIPS32BE:#define __DBL_EPSILON__ 2.2204460492503131e-16 +// MIPS32BE:#define __DBL_HAS_DENORM__ 1 +// MIPS32BE:#define __DBL_HAS_INFINITY__ 1 +// MIPS32BE:#define __DBL_HAS_QUIET_NAN__ 1 +// MIPS32BE:#define __DBL_MANT_DIG__ 53 +// MIPS32BE:#define __DBL_MAX_10_EXP__ 308 +// MIPS32BE:#define __DBL_MAX_EXP__ 1024 +// MIPS32BE:#define __DBL_MAX__ 1.7976931348623157e+308 +// MIPS32BE:#define __DBL_MIN_10_EXP__ (-307) +// MIPS32BE:#define __DBL_MIN_EXP__ (-1021) +// MIPS32BE:#define __DBL_MIN__ 2.2250738585072014e-308 +// MIPS32BE:#define __DECIMAL_DIG__ 17 +// MIPS32BE:#define __FLT_DENORM_MIN__ 1.40129846e-45F +// MIPS32BE:#define __FLT_DIG__ 6 +// MIPS32BE:#define __FLT_EPSILON__ 1.19209290e-7F +// MIPS32BE:#define __FLT_EVAL_METHOD__ 0 +// MIPS32BE:#define __FLT_HAS_DENORM__ 1 +// MIPS32BE:#define __FLT_HAS_INFINITY__ 1 +// MIPS32BE:#define __FLT_HAS_QUIET_NAN__ 1 +// MIPS32BE:#define __FLT_MANT_DIG__ 24 +// MIPS32BE:#define __FLT_MAX_10_EXP__ 38 +// MIPS32BE:#define __FLT_MAX_EXP__ 128 +// MIPS32BE:#define __FLT_MAX__ 3.40282347e+38F +// MIPS32BE:#define __FLT_MIN_10_EXP__ (-37) +// MIPS32BE:#define __FLT_MIN_EXP__ (-125) +// MIPS32BE:#define __FLT_MIN__ 1.17549435e-38F +// MIPS32BE:#define __FLT_RADIX__ 2 +// MIPS32BE:#define __INT16_TYPE__ short +// MIPS32BE:#define __INT32_TYPE__ int +// MIPS32BE:#define __INT64_C_SUFFIX__ LL +// MIPS32BE:#define __INT64_TYPE__ long long int +// MIPS32BE:#define __INT8_TYPE__ char +// MIPS32BE:#define __INTMAX_MAX__ 9223372036854775807LL +// MIPS32BE:#define __INTMAX_TYPE__ long long int +// MIPS32BE:#define __INTMAX_WIDTH__ 64 +// MIPS32BE:#define __INTPTR_TYPE__ long int +// MIPS32BE:#define __INTPTR_WIDTH__ 32 +// MIPS32BE:#define __INT_MAX__ 2147483647 +// MIPS32BE:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324 +// MIPS32BE:#define __LDBL_DIG__ 15 +// MIPS32BE:#define __LDBL_EPSILON__ 2.2204460492503131e-16 +// MIPS32BE:#define __LDBL_HAS_DENORM__ 1 +// MIPS32BE:#define __LDBL_HAS_INFINITY__ 1 +// MIPS32BE:#define __LDBL_HAS_QUIET_NAN__ 1 +// MIPS32BE:#define __LDBL_MANT_DIG__ 53 +// MIPS32BE:#define __LDBL_MAX_10_EXP__ 308 +// MIPS32BE:#define __LDBL_MAX_EXP__ 1024 +// MIPS32BE:#define __LDBL_MAX__ 1.7976931348623157e+308 +// MIPS32BE:#define __LDBL_MIN_10_EXP__ (-307) +// MIPS32BE:#define __LDBL_MIN_EXP__ (-1021) +// MIPS32BE:#define __LDBL_MIN__ 2.2250738585072014e-308 +// MIPS32BE:#define __LONG_LONG_MAX__ 9223372036854775807LL +// MIPS32BE:#define __LONG_MAX__ 2147483647L +// MIPS32BE:#define __MIPSEB 1 +// MIPS32BE:#define __MIPSEB__ 1 +// MIPS32BE:#define __NO_INLINE__ 1 +// MIPS32BE:#define __POINTER_WIDTH__ 32 +// MIPS32BE:#define __PRAGMA_REDEFINE_EXTNAME 1 +// MIPS32BE:#define __PTRDIFF_TYPE__ int +// MIPS32BE:#define __PTRDIFF_WIDTH__ 32 +// MIPS32BE:#define __REGISTER_PREFIX__ +// MIPS32BE:#define __SCHAR_MAX__ 127 +// MIPS32BE:#define __SHRT_MAX__ 32767 +// MIPS32BE:#define __SIG_ATOMIC_WIDTH__ 32 +// MIPS32BE:#define __SIZEOF_DOUBLE__ 8 +// MIPS32BE:#define __SIZEOF_FLOAT__ 4 +// MIPS32BE:#define __SIZEOF_INT__ 4 +// MIPS32BE:#define __SIZEOF_LONG_DOUBLE__ 8 +// MIPS32BE:#define __SIZEOF_LONG_LONG__ 8 +// MIPS32BE:#define __SIZEOF_LONG__ 4 +// MIPS32BE:#define __SIZEOF_POINTER__ 4 +// MIPS32BE:#define __SIZEOF_PTRDIFF_T__ 4 +// MIPS32BE:#define __SIZEOF_SHORT__ 2 +// MIPS32BE:#define __SIZEOF_SIZE_T__ 4 +// MIPS32BE:#define __SIZEOF_WCHAR_T__ 4 +// MIPS32BE:#define __SIZEOF_WINT_T__ 4 +// MIPS32BE:#define __SIZE_TYPE__ unsigned int +// MIPS32BE:#define __SIZE_WIDTH__ 32 +// MIPS32BE:#define __STDC_HOSTED__ 0 +// MIPS32BE:#define __STDC_VERSION__ 199901L +// MIPS32BE:#define __STDC__ 1 +// MIPS32BE:#define __UINTMAX_TYPE__ long long unsigned int +// MIPS32BE:#define __USER_LABEL_PREFIX__ _ +// MIPS32BE:#define __WCHAR_MAX__ 2147483647 +// MIPS32BE:#define __WCHAR_TYPE__ int +// MIPS32BE:#define __WCHAR_WIDTH__ 32 +// MIPS32BE:#define __WINT_TYPE__ int +// MIPS32BE:#define __WINT_WIDTH__ 32 +// MIPS32BE:#define __clang__ 1 +// MIPS32BE:#define __llvm__ 1 +// MIPS32BE:#define __mips 1 +// MIPS32BE:#define __mips__ 1 +// MIPS32BE:#define __mips_hard_float 1 +// MIPS32BE:#define __mips_o32 1 +// MIPS32BE:#define _mips 1 +// MIPS32BE:#define mips 1 +// +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mipsel-none-none < /dev/null | FileCheck -check-prefix MIPS32EL %s +// +// MIPS32EL:#define MIPSEL 1 +// MIPS32EL:#define _ABIO32 1 +// MIPS32EL:#define _MIPSEL 1 +// MIPS32EL:#define _MIPS_SIM _ABIO32 +// MIPS32EL:#define _MIPS_SZINT 32 +// MIPS32EL:#define _MIPS_SZLONG 32 +// MIPS32EL:#define _MIPS_SZPTR 32 +// MIPS32EL:#define __CHAR16_TYPE__ unsigned short +// MIPS32EL:#define __CHAR32_TYPE__ unsigned int +// MIPS32EL:#define __CHAR_BIT__ 8 +// MIPS32EL:#define __CONSTANT_CFSTRINGS__ 1 +// MIPS32EL:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// MIPS32EL:#define __DBL_DIG__ 15 +// MIPS32EL:#define __DBL_EPSILON__ 2.2204460492503131e-16 +// MIPS32EL:#define __DBL_HAS_DENORM__ 1 +// MIPS32EL:#define __DBL_HAS_INFINITY__ 1 +// MIPS32EL:#define __DBL_HAS_QUIET_NAN__ 1 +// MIPS32EL:#define __DBL_MANT_DIG__ 53 +// MIPS32EL:#define __DBL_MAX_10_EXP__ 308 +// MIPS32EL:#define __DBL_MAX_EXP__ 1024 +// MIPS32EL:#define __DBL_MAX__ 1.7976931348623157e+308 +// MIPS32EL:#define __DBL_MIN_10_EXP__ (-307) +// MIPS32EL:#define __DBL_MIN_EXP__ (-1021) +// MIPS32EL:#define __DBL_MIN__ 2.2250738585072014e-308 +// MIPS32EL:#define __DECIMAL_DIG__ 17 +// MIPS32EL:#define __FLT_DENORM_MIN__ 1.40129846e-45F +// MIPS32EL:#define __FLT_DIG__ 6 +// MIPS32EL:#define __FLT_EPSILON__ 1.19209290e-7F +// MIPS32EL:#define __FLT_EVAL_METHOD__ 0 +// MIPS32EL:#define __FLT_HAS_DENORM__ 1 +// MIPS32EL:#define __FLT_HAS_INFINITY__ 1 +// MIPS32EL:#define __FLT_HAS_QUIET_NAN__ 1 +// MIPS32EL:#define __FLT_MANT_DIG__ 24 +// MIPS32EL:#define __FLT_MAX_10_EXP__ 38 +// MIPS32EL:#define __FLT_MAX_EXP__ 128 +// MIPS32EL:#define __FLT_MAX__ 3.40282347e+38F +// MIPS32EL:#define __FLT_MIN_10_EXP__ (-37) +// MIPS32EL:#define __FLT_MIN_EXP__ (-125) +// MIPS32EL:#define __FLT_MIN__ 1.17549435e-38F +// MIPS32EL:#define __FLT_RADIX__ 2 +// MIPS32EL:#define __INT16_TYPE__ short +// MIPS32EL:#define __INT32_TYPE__ int +// MIPS32EL:#define __INT64_C_SUFFIX__ LL +// MIPS32EL:#define __INT64_TYPE__ long long int +// MIPS32EL:#define __INT8_TYPE__ char +// MIPS32EL:#define __INTMAX_MAX__ 9223372036854775807LL +// MIPS32EL:#define __INTMAX_TYPE__ long long int +// MIPS32EL:#define __INTMAX_WIDTH__ 64 +// MIPS32EL:#define __INTPTR_TYPE__ long int +// MIPS32EL:#define __INTPTR_WIDTH__ 32 +// MIPS32EL:#define __INT_MAX__ 2147483647 +// MIPS32EL:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324 +// MIPS32EL:#define __LDBL_DIG__ 15 +// MIPS32EL:#define __LDBL_EPSILON__ 2.2204460492503131e-16 +// MIPS32EL:#define __LDBL_HAS_DENORM__ 1 +// MIPS32EL:#define __LDBL_HAS_INFINITY__ 1 +// MIPS32EL:#define __LDBL_HAS_QUIET_NAN__ 1 +// MIPS32EL:#define __LDBL_MANT_DIG__ 53 +// MIPS32EL:#define __LDBL_MAX_10_EXP__ 308 +// MIPS32EL:#define __LDBL_MAX_EXP__ 1024 +// MIPS32EL:#define __LDBL_MAX__ 1.7976931348623157e+308 +// MIPS32EL:#define __LDBL_MIN_10_EXP__ (-307) +// MIPS32EL:#define __LDBL_MIN_EXP__ (-1021) +// MIPS32EL:#define __LDBL_MIN__ 2.2250738585072014e-308 +// MIPS32EL:#define __LONG_LONG_MAX__ 9223372036854775807LL +// MIPS32EL:#define __LONG_MAX__ 2147483647L +// MIPS32EL:#define __MIPSEL 1 +// MIPS32EL:#define __MIPSEL__ 1 +// MIPS32EL:#define __NO_INLINE__ 1 +// MIPS32EL:#define __POINTER_WIDTH__ 32 +// MIPS32EL:#define __PRAGMA_REDEFINE_EXTNAME 1 +// MIPS32EL:#define __PTRDIFF_TYPE__ int +// MIPS32EL:#define __PTRDIFF_WIDTH__ 32 +// MIPS32EL:#define __REGISTER_PREFIX__ +// MIPS32EL:#define __SCHAR_MAX__ 127 +// MIPS32EL:#define __SHRT_MAX__ 32767 +// MIPS32EL:#define __SIG_ATOMIC_WIDTH__ 32 +// MIPS32EL:#define __SIZEOF_DOUBLE__ 8 +// MIPS32EL:#define __SIZEOF_FLOAT__ 4 +// MIPS32EL:#define __SIZEOF_INT__ 4 +// MIPS32EL:#define __SIZEOF_LONG_DOUBLE__ 8 +// MIPS32EL:#define __SIZEOF_LONG_LONG__ 8 +// MIPS32EL:#define __SIZEOF_LONG__ 4 +// MIPS32EL:#define __SIZEOF_POINTER__ 4 +// MIPS32EL:#define __SIZEOF_PTRDIFF_T__ 4 +// MIPS32EL:#define __SIZEOF_SHORT__ 2 +// MIPS32EL:#define __SIZEOF_SIZE_T__ 4 +// MIPS32EL:#define __SIZEOF_WCHAR_T__ 4 +// MIPS32EL:#define __SIZEOF_WINT_T__ 4 +// MIPS32EL:#define __SIZE_TYPE__ unsigned int +// MIPS32EL:#define __SIZE_WIDTH__ 32 +// MIPS32EL:#define __UINTMAX_TYPE__ long long unsigned int +// MIPS32EL:#define __USER_LABEL_PREFIX__ _ +// MIPS32EL:#define __WCHAR_MAX__ 2147483647 +// MIPS32EL:#define __WCHAR_TYPE__ int +// MIPS32EL:#define __WCHAR_WIDTH__ 32 +// MIPS32EL:#define __WINT_TYPE__ int +// MIPS32EL:#define __WINT_WIDTH__ 32 +// MIPS32EL:#define __clang__ 1 +// MIPS32EL:#define __llvm__ 1 +// MIPS32EL:#define __mips 1 +// MIPS32EL:#define __mips__ 1 +// MIPS32EL:#define __mips_hard_float 1 +// MIPS32EL:#define __mips_o32 1 +// MIPS32EL:#define _mips 1 +// MIPS32EL:#define mips 1 +// +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64-none-none < /dev/null | FileCheck -check-prefix MIPS64BE %s +// +// MIPS64BE:#define MIPSEB 1 +// MIPS64BE:#define _ABI64 3 +// MIPS64BE:#define _MIPSEB 1 +// MIPS64BE:#define _MIPS_SIM _ABI64 +// MIPS64BE:#define _MIPS_SZINT 32 +// MIPS64BE:#define _MIPS_SZLONG 64 +// MIPS64BE:#define _MIPS_SZPTR 64 +// MIPS64BE:#define __CHAR16_TYPE__ unsigned short +// MIPS64BE:#define __CHAR32_TYPE__ unsigned int +// MIPS64BE:#define __CHAR_BIT__ 8 +// MIPS64BE:#define __CONSTANT_CFSTRINGS__ 1 +// MIPS64BE:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// MIPS64BE:#define __DBL_DIG__ 15 +// MIPS64BE:#define __DBL_EPSILON__ 2.2204460492503131e-16 +// MIPS64BE:#define __DBL_HAS_DENORM__ 1 +// MIPS64BE:#define __DBL_HAS_INFINITY__ 1 +// MIPS64BE:#define __DBL_HAS_QUIET_NAN__ 1 +// MIPS64BE:#define __DBL_MANT_DIG__ 53 +// MIPS64BE:#define __DBL_MAX_10_EXP__ 308 +// MIPS64BE:#define __DBL_MAX_EXP__ 1024 +// MIPS64BE:#define __DBL_MAX__ 1.7976931348623157e+308 +// MIPS64BE:#define __DBL_MIN_10_EXP__ (-307) +// MIPS64BE:#define __DBL_MIN_EXP__ (-1021) +// MIPS64BE:#define __DBL_MIN__ 2.2250738585072014e-308 +// MIPS64BE:#define __DECIMAL_DIG__ 36 +// MIPS64BE:#define __FLT_DENORM_MIN__ 1.40129846e-45F +// MIPS64BE:#define __FLT_DIG__ 6 +// MIPS64BE:#define __FLT_EPSILON__ 1.19209290e-7F +// MIPS64BE:#define __FLT_EVAL_METHOD__ 0 +// MIPS64BE:#define __FLT_HAS_DENORM__ 1 +// MIPS64BE:#define __FLT_HAS_INFINITY__ 1 +// MIPS64BE:#define __FLT_HAS_QUIET_NAN__ 1 +// MIPS64BE:#define __FLT_MANT_DIG__ 24 +// MIPS64BE:#define __FLT_MAX_10_EXP__ 38 +// MIPS64BE:#define __FLT_MAX_EXP__ 128 +// MIPS64BE:#define __FLT_MAX__ 3.40282347e+38F +// MIPS64BE:#define __FLT_MIN_10_EXP__ (-37) +// MIPS64BE:#define __FLT_MIN_EXP__ (-125) +// MIPS64BE:#define __FLT_MIN__ 1.17549435e-38F +// MIPS64BE:#define __FLT_RADIX__ 2 +// MIPS64BE:#define __INT16_TYPE__ short +// MIPS64BE:#define __INT32_TYPE__ int +// MIPS64BE:#define __INT64_C_SUFFIX__ LL +// MIPS64BE:#define __INT64_TYPE__ long long int +// MIPS64BE:#define __INT8_TYPE__ char +// MIPS64BE:#define __INTMAX_MAX__ 9223372036854775807LL +// MIPS64BE:#define __INTMAX_TYPE__ long long int +// MIPS64BE:#define __INTMAX_WIDTH__ 64 +// MIPS64BE:#define __INTPTR_TYPE__ long int +// MIPS64BE:#define __INTPTR_WIDTH__ 64 +// MIPS64BE:#define __INT_MAX__ 2147483647 +// MIPS64BE:#define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L +// MIPS64BE:#define __LDBL_DIG__ 33 +// MIPS64BE:#define __LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L +// MIPS64BE:#define __LDBL_HAS_DENORM__ 1 +// MIPS64BE:#define __LDBL_HAS_INFINITY__ 1 +// MIPS64BE:#define __LDBL_HAS_QUIET_NAN__ 1 +// MIPS64BE:#define __LDBL_MANT_DIG__ 113 +// MIPS64BE:#define __LDBL_MAX_10_EXP__ 4932 +// MIPS64BE:#define __LDBL_MAX_EXP__ 16384 +// MIPS64BE:#define __LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L +// MIPS64BE:#define __LDBL_MIN_10_EXP__ (-4931) +// MIPS64BE:#define __LDBL_MIN_EXP__ (-16381) +// MIPS64BE:#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +// MIPS64BE:#define __LONG_LONG_MAX__ 9223372036854775807LL +// MIPS64BE:#define __LONG_MAX__ 9223372036854775807L +// MIPS64BE:#define __MIPSEB 1 +// MIPS64BE:#define __MIPSEB__ 1 +// MIPS64BE:#define __NO_INLINE__ 1 +// MIPS64BE:#define __POINTER_WIDTH__ 64 +// MIPS64BE:#define __PRAGMA_REDEFINE_EXTNAME 1 +// MIPS64BE:#define __PTRDIFF_TYPE__ long int +// MIPS64BE:#define __PTRDIFF_WIDTH__ 64 +// MIPS64BE:#define __REGISTER_PREFIX__ +// MIPS64BE:#define __SCHAR_MAX__ 127 +// MIPS64BE:#define __SHRT_MAX__ 32767 +// MIPS64BE:#define __SIG_ATOMIC_WIDTH__ 32 +// MIPS64BE:#define __SIZEOF_DOUBLE__ 8 +// MIPS64BE:#define __SIZEOF_FLOAT__ 4 +// MIPS64BE:#define __SIZEOF_INT__ 4 +// MIPS64BE:#define __SIZEOF_LONG_DOUBLE__ 16 +// MIPS64BE:#define __SIZEOF_LONG_LONG__ 8 +// MIPS64BE:#define __SIZEOF_LONG__ 8 +// MIPS64BE:#define __SIZEOF_POINTER__ 8 +// MIPS64BE:#define __SIZEOF_PTRDIFF_T__ 8 +// MIPS64BE:#define __SIZEOF_SHORT__ 2 +// MIPS64BE:#define __SIZEOF_SIZE_T__ 8 +// MIPS64BE:#define __SIZEOF_WCHAR_T__ 4 +// MIPS64BE:#define __SIZEOF_WINT_T__ 4 +// MIPS64BE:#define __SIZE_TYPE__ long unsigned int +// MIPS64BE:#define __SIZE_WIDTH__ 64 +// MIPS64BE:#define __UINTMAX_TYPE__ long long unsigned int +// MIPS64BE:#define __USER_LABEL_PREFIX__ _ +// MIPS64BE:#define __WCHAR_MAX__ 2147483647 +// MIPS64BE:#define __WCHAR_TYPE__ int +// MIPS64BE:#define __WCHAR_WIDTH__ 32 +// MIPS64BE:#define __WINT_TYPE__ int +// MIPS64BE:#define __WINT_WIDTH__ 32 +// MIPS64BE:#define __clang__ 1 +// MIPS64BE:#define __llvm__ 1 +// MIPS64BE:#define __mips 1 +// MIPS64BE:#define __mips__ 1 +// MIPS64BE:#define __mips_hard_float 1 +// MIPS64BE:#define __mips_n64 1 +// MIPS64BE:#define _mips 1 +// MIPS64BE:#define mips 1 +// +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64el-none-none < /dev/null | FileCheck -check-prefix MIPS64EL %s +// +// MIPS64EL:#define MIPSEL 1 +// MIPS64EL:#define _ABI64 3 +// MIPS64EL:#define _MIPSEL 1 +// MIPS64EL:#define _MIPS_SIM _ABI64 +// MIPS64EL:#define _MIPS_SZINT 32 +// MIPS64EL:#define _MIPS_SZLONG 64 +// MIPS64EL:#define _MIPS_SZPTR 64 +// MIPS64EL:#define __CHAR16_TYPE__ unsigned short +// MIPS64EL:#define __CHAR32_TYPE__ unsigned int +// MIPS64EL:#define __CHAR_BIT__ 8 +// MIPS64EL:#define __CONSTANT_CFSTRINGS__ 1 +// MIPS64EL:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// MIPS64EL:#define __DBL_DIG__ 15 +// MIPS64EL:#define __DBL_EPSILON__ 2.2204460492503131e-16 +// MIPS64EL:#define __DBL_HAS_DENORM__ 1 +// MIPS64EL:#define __DBL_HAS_INFINITY__ 1 +// MIPS64EL:#define __DBL_HAS_QUIET_NAN__ 1 +// MIPS64EL:#define __DBL_MANT_DIG__ 53 +// MIPS64EL:#define __DBL_MAX_10_EXP__ 308 +// MIPS64EL:#define __DBL_MAX_EXP__ 1024 +// MIPS64EL:#define __DBL_MAX__ 1.7976931348623157e+308 +// MIPS64EL:#define __DBL_MIN_10_EXP__ (-307) +// MIPS64EL:#define __DBL_MIN_EXP__ (-1021) +// MIPS64EL:#define __DBL_MIN__ 2.2250738585072014e-308 +// MIPS64EL:#define __DECIMAL_DIG__ 36 +// MIPS64EL:#define __FLT_DENORM_MIN__ 1.40129846e-45F +// MIPS64EL:#define __FLT_DIG__ 6 +// MIPS64EL:#define __FLT_EPSILON__ 1.19209290e-7F +// MIPS64EL:#define __FLT_EVAL_METHOD__ 0 +// MIPS64EL:#define __FLT_HAS_DENORM__ 1 +// MIPS64EL:#define __FLT_HAS_INFINITY__ 1 +// MIPS64EL:#define __FLT_HAS_QUIET_NAN__ 1 +// MIPS64EL:#define __FLT_MANT_DIG__ 24 +// MIPS64EL:#define __FLT_MAX_10_EXP__ 38 +// MIPS64EL:#define __FLT_MAX_EXP__ 128 +// MIPS64EL:#define __FLT_MAX__ 3.40282347e+38F +// MIPS64EL:#define __FLT_MIN_10_EXP__ (-37) +// MIPS64EL:#define __FLT_MIN_EXP__ (-125) +// MIPS64EL:#define __FLT_MIN__ 1.17549435e-38F +// MIPS64EL:#define __FLT_RADIX__ 2 +// MIPS64EL:#define __INT16_TYPE__ short +// MIPS64EL:#define __INT32_TYPE__ int +// MIPS64EL:#define __INT64_C_SUFFIX__ LL +// MIPS64EL:#define __INT64_TYPE__ long long int +// MIPS64EL:#define __INT8_TYPE__ char +// MIPS64EL:#define __INTMAX_MAX__ 9223372036854775807LL +// MIPS64EL:#define __INTMAX_TYPE__ long long int +// MIPS64EL:#define __INTMAX_WIDTH__ 64 +// MIPS64EL:#define __INTPTR_TYPE__ long int +// MIPS64EL:#define __INTPTR_WIDTH__ 64 +// MIPS64EL:#define __INT_MAX__ 2147483647 +// MIPS64EL:#define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L +// MIPS64EL:#define __LDBL_DIG__ 33 +// MIPS64EL:#define __LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L +// MIPS64EL:#define __LDBL_HAS_DENORM__ 1 +// MIPS64EL:#define __LDBL_HAS_INFINITY__ 1 +// MIPS64EL:#define __LDBL_HAS_QUIET_NAN__ 1 +// MIPS64EL:#define __LDBL_MANT_DIG__ 113 +// MIPS64EL:#define __LDBL_MAX_10_EXP__ 4932 +// MIPS64EL:#define __LDBL_MAX_EXP__ 16384 +// MIPS64EL:#define __LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L +// MIPS64EL:#define __LDBL_MIN_10_EXP__ (-4931) +// MIPS64EL:#define __LDBL_MIN_EXP__ (-16381) +// MIPS64EL:#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +// MIPS64EL:#define __LONG_LONG_MAX__ 9223372036854775807LL +// MIPS64EL:#define __LONG_MAX__ 9223372036854775807L +// MIPS64EL:#define __MIPSEL 1 +// MIPS64EL:#define __MIPSEL__ 1 +// MIPS64EL:#define __NO_INLINE__ 1 +// MIPS64EL:#define __POINTER_WIDTH__ 64 +// MIPS64EL:#define __PRAGMA_REDEFINE_EXTNAME 1 +// MIPS64EL:#define __PTRDIFF_TYPE__ long int +// MIPS64EL:#define __PTRDIFF_WIDTH__ 64 +// MIPS64EL:#define __REGISTER_PREFIX__ +// MIPS64EL:#define __SCHAR_MAX__ 127 +// MIPS64EL:#define __SHRT_MAX__ 32767 +// MIPS64EL:#define __SIG_ATOMIC_WIDTH__ 32 +// MIPS64EL:#define __SIZEOF_DOUBLE__ 8 +// MIPS64EL:#define __SIZEOF_FLOAT__ 4 +// MIPS64EL:#define __SIZEOF_INT__ 4 +// MIPS64EL:#define __SIZEOF_LONG_DOUBLE__ 16 +// MIPS64EL:#define __SIZEOF_LONG_LONG__ 8 +// MIPS64EL:#define __SIZEOF_LONG__ 8 +// MIPS64EL:#define __SIZEOF_POINTER__ 8 +// MIPS64EL:#define __SIZEOF_PTRDIFF_T__ 8 +// MIPS64EL:#define __SIZEOF_SHORT__ 2 +// MIPS64EL:#define __SIZEOF_SIZE_T__ 8 +// MIPS64EL:#define __SIZEOF_WCHAR_T__ 4 +// MIPS64EL:#define __SIZEOF_WINT_T__ 4 +// MIPS64EL:#define __SIZE_TYPE__ long unsigned int +// MIPS64EL:#define __SIZE_WIDTH__ 64 +// MIPS64EL:#define __UINTMAX_TYPE__ long long unsigned int +// MIPS64EL:#define __USER_LABEL_PREFIX__ _ +// MIPS64EL:#define __WCHAR_MAX__ 2147483647 +// MIPS64EL:#define __WCHAR_TYPE__ int +// MIPS64EL:#define __WCHAR_WIDTH__ 32 +// MIPS64EL:#define __WINT_TYPE__ int +// MIPS64EL:#define __WINT_WIDTH__ 32 +// MIPS64EL:#define __clang__ 1 +// MIPS64EL:#define __llvm__ 1 +// MIPS64EL:#define __mips 1 +// MIPS64EL:#define __mips__ 1 +// MIPS64EL:#define __mips_hard_float 1 +// MIPS64EL:#define __mips_n64 1 +// MIPS64EL:#define _mips 1 +// MIPS64EL:#define mips 1 +// +// Check MIPS float ABI macros +// +// RUN: %clang_cc1 -E -dM -ffreestanding \ +// RUN: -triple=mips-none-none < /dev/null \ +// RUN: | FileCheck -check-prefix MIPS-FABI-HARD %s +// MIPS-FABI-HARD:#define __mips_hard_float 1 +// +// RUN: %clang_cc1 -target-feature +soft-float -E -dM -ffreestanding \ +// RUN: -triple=mips-none-none < /dev/null \ +// RUN: | FileCheck -check-prefix MIPS-FABI-SOFT %s +// MIPS-FABI-SOFT:#define __mips_soft_float 1 +// +// RUN: %clang_cc1 -target-feature +single-float -E -dM -ffreestanding \ +// RUN: -triple=mips-none-none < /dev/null \ +// RUN: | FileCheck -check-prefix MIPS-FABI-SINGLE %s +// MIPS-FABI-SINGLE:#define __mips_single_float 1 +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=msp430-none-none < /dev/null | FileCheck -check-prefix MSP430 %s // // MSP430:#define MSP430 1 @@ -622,7 +981,7 @@ // PPC64:#define __DBL_MIN_10_EXP__ (-307) // PPC64:#define __DBL_MIN_EXP__ (-1021) // PPC64:#define __DBL_MIN__ 2.2250738585072014e-308 -// PPC64:#define __DECIMAL_DIG__ 17 +// PPC64:#define __DECIMAL_DIG__ 33 // PPC64:#define __FLT_DENORM_MIN__ 1.40129846e-45F // PPC64:#define __FLT_DIG__ 6 // PPC64:#define __FLT_EPSILON__ 1.19209290e-7F @@ -649,19 +1008,19 @@ // PPC64:#define __INTPTR_TYPE__ long int // PPC64:#define __INTPTR_WIDTH__ 64 // PPC64:#define __INT_MAX__ 2147483647 -// PPC64:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324 -// PPC64:#define __LDBL_DIG__ 15 -// PPC64:#define __LDBL_EPSILON__ 2.2204460492503131e-16 +// PPC64:#define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L +// PPC64:#define __LDBL_DIG__ 31 +// PPC64:#define __LDBL_EPSILON__ 4.94065645841246544176568792868221e-324L // PPC64:#define __LDBL_HAS_DENORM__ 1 // PPC64:#define __LDBL_HAS_INFINITY__ 1 // PPC64:#define __LDBL_HAS_QUIET_NAN__ 1 -// PPC64:#define __LDBL_MANT_DIG__ 53 +// PPC64:#define __LDBL_MANT_DIG__ 106 // PPC64:#define __LDBL_MAX_10_EXP__ 308 // PPC64:#define __LDBL_MAX_EXP__ 1024 -// PPC64:#define __LDBL_MAX__ 1.7976931348623157e+308 -// PPC64:#define __LDBL_MIN_10_EXP__ (-307) -// PPC64:#define __LDBL_MIN_EXP__ (-1021) -// PPC64:#define __LDBL_MIN__ 2.2250738585072014e-308 +// PPC64:#define __LDBL_MAX__ 1.79769313486231580793728971405301e+308L +// PPC64:#define __LDBL_MIN_10_EXP__ (-291) +// PPC64:#define __LDBL_MIN_EXP__ (-968) +// PPC64:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L // PPC64:#define __LONG_DOUBLE_128__ 1 // PPC64:#define __LONG_LONG_MAX__ 9223372036854775807LL // PPC64:#define __LONG_MAX__ 9223372036854775807L @@ -679,7 +1038,7 @@ // PPC64:#define __SIZEOF_DOUBLE__ 8 // PPC64:#define __SIZEOF_FLOAT__ 4 // PPC64:#define __SIZEOF_INT__ 4 -// PPC64:#define __SIZEOF_LONG_DOUBLE__ 8 +// PPC64:#define __SIZEOF_LONG_DOUBLE__ 16 // PPC64:#define __SIZEOF_LONG_LONG__ 8 // PPC64:#define __SIZEOF_LONG__ 8 // PPC64:#define __SIZEOF_POINTER__ 8 @@ -700,6 +1059,111 @@ // PPC64:#define __ppc64__ 1 // PPC64:#define __ppc__ 1 // +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-linux-gnu -fno-signed-char < /dev/null | FileCheck -check-prefix PPC64-LINUX %s +// +// PPC64-LINUX:#define _ARCH_PPC 1 +// PPC64-LINUX:#define _ARCH_PPC64 1 +// PPC64-LINUX:#define _BIG_ENDIAN 1 +// PPC64-LINUX:#define _LP64 1 +// PPC64-LINUX:#define __BIG_ENDIAN__ 1 +// PPC64-LINUX:#define __CHAR16_TYPE__ unsigned short +// PPC64-LINUX:#define __CHAR32_TYPE__ unsigned int +// PPC64-LINUX:#define __CHAR_BIT__ 8 +// PPC64-LINUX:#define __CHAR_UNSIGNED__ 1 +// PPC64-LINUX:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// PPC64-LINUX:#define __DBL_DIG__ 15 +// PPC64-LINUX:#define __DBL_EPSILON__ 2.2204460492503131e-16 +// PPC64-LINUX:#define __DBL_HAS_DENORM__ 1 +// PPC64-LINUX:#define __DBL_HAS_INFINITY__ 1 +// PPC64-LINUX:#define __DBL_HAS_QUIET_NAN__ 1 +// PPC64-LINUX:#define __DBL_MANT_DIG__ 53 +// PPC64-LINUX:#define __DBL_MAX_10_EXP__ 308 +// PPC64-LINUX:#define __DBL_MAX_EXP__ 1024 +// PPC64-LINUX:#define __DBL_MAX__ 1.7976931348623157e+308 +// PPC64-LINUX:#define __DBL_MIN_10_EXP__ (-307) +// PPC64-LINUX:#define __DBL_MIN_EXP__ (-1021) +// PPC64-LINUX:#define __DBL_MIN__ 2.2250738585072014e-308 +// PPC64-LINUX:#define __DECIMAL_DIG__ 33 +// PPC64-LINUX:#define __FLT_DENORM_MIN__ 1.40129846e-45F +// PPC64-LINUX:#define __FLT_DIG__ 6 +// PPC64-LINUX:#define __FLT_EPSILON__ 1.19209290e-7F +// PPC64-LINUX:#define __FLT_EVAL_METHOD__ 0 +// PPC64-LINUX:#define __FLT_HAS_DENORM__ 1 +// PPC64-LINUX:#define __FLT_HAS_INFINITY__ 1 +// PPC64-LINUX:#define __FLT_HAS_QUIET_NAN__ 1 +// PPC64-LINUX:#define __FLT_MANT_DIG__ 24 +// PPC64-LINUX:#define __FLT_MAX_10_EXP__ 38 +// PPC64-LINUX:#define __FLT_MAX_EXP__ 128 +// PPC64-LINUX:#define __FLT_MAX__ 3.40282347e+38F +// PPC64-LINUX:#define __FLT_MIN_10_EXP__ (-37) +// PPC64-LINUX:#define __FLT_MIN_EXP__ (-125) +// PPC64-LINUX:#define __FLT_MIN__ 1.17549435e-38F +// PPC64-LINUX:#define __FLT_RADIX__ 2 +// PPC64-LINUX:#define __INT16_TYPE__ short +// PPC64-LINUX:#define __INT32_TYPE__ int +// PPC64-LINUX:#define __INT64_C_SUFFIX__ L +// PPC64-LINUX:#define __INT64_TYPE__ long int +// PPC64-LINUX:#define __INT8_TYPE__ char +// PPC64-LINUX:#define __INTMAX_MAX__ 9223372036854775807L +// PPC64-LINUX:#define __INTMAX_TYPE__ long int +// PPC64-LINUX:#define __INTMAX_WIDTH__ 64 +// PPC64-LINUX:#define __INTPTR_TYPE__ long int +// PPC64-LINUX:#define __INTPTR_WIDTH__ 64 +// PPC64-LINUX:#define __INT_MAX__ 2147483647 +// PPC64-LINUX:#define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L +// PPC64-LINUX:#define __LDBL_DIG__ 31 +// PPC64-LINUX:#define __LDBL_EPSILON__ 4.94065645841246544176568792868221e-324L +// PPC64-LINUX:#define __LDBL_HAS_DENORM__ 1 +// PPC64-LINUX:#define __LDBL_HAS_INFINITY__ 1 +// PPC64-LINUX:#define __LDBL_HAS_QUIET_NAN__ 1 +// PPC64-LINUX:#define __LDBL_MANT_DIG__ 106 +// PPC64-LINUX:#define __LDBL_MAX_10_EXP__ 308 +// PPC64-LINUX:#define __LDBL_MAX_EXP__ 1024 +// PPC64-LINUX:#define __LDBL_MAX__ 1.79769313486231580793728971405301e+308L +// PPC64-LINUX:#define __LDBL_MIN_10_EXP__ (-291) +// PPC64-LINUX:#define __LDBL_MIN_EXP__ (-968) +// PPC64-LINUX:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L +// PPC64-LINUX:#define __LONG_DOUBLE_128__ 1 +// PPC64-LINUX:#define __LONG_LONG_MAX__ 9223372036854775807LL +// PPC64-LINUX:#define __LONG_MAX__ 9223372036854775807L +// PPC64-LINUX:#define __LP64__ 1 +// PPC64-LINUX:#define __NATURAL_ALIGNMENT__ 1 +// PPC64-LINUX:#define __NO_INLINE__ 1 +// PPC64-LINUX:#define __POINTER_WIDTH__ 64 +// PPC64-LINUX:#define __POWERPC__ 1 +// PPC64-LINUX:#define __PTRDIFF_TYPE__ long int +// PPC64-LINUX:#define __PTRDIFF_WIDTH__ 64 +// PPC64-LINUX:#define __REGISTER_PREFIX__ +// PPC64-LINUX:#define __SCHAR_MAX__ 127 +// PPC64-LINUX:#define __SHRT_MAX__ 32767 +// PPC64-LINUX:#define __SIG_ATOMIC_WIDTH__ 32 +// PPC64-LINUX:#define __SIZEOF_DOUBLE__ 8 +// PPC64-LINUX:#define __SIZEOF_FLOAT__ 4 +// PPC64-LINUX:#define __SIZEOF_INT__ 4 +// PPC64-LINUX:#define __SIZEOF_LONG_DOUBLE__ 16 +// PPC64-LINUX:#define __SIZEOF_LONG_LONG__ 8 +// PPC64-LINUX:#define __SIZEOF_LONG__ 8 +// PPC64-LINUX:#define __SIZEOF_POINTER__ 8 +// PPC64-LINUX:#define __SIZEOF_PTRDIFF_T__ 8 +// PPC64-LINUX:#define __SIZEOF_SHORT__ 2 +// PPC64-LINUX:#define __SIZEOF_SIZE_T__ 8 +// PPC64-LINUX:#define __SIZEOF_WCHAR_T__ 4 +// PPC64-LINUX:#define __SIZEOF_WINT_T__ 4 +// PPC64-LINUX:#define __SIZE_TYPE__ long unsigned int +// PPC64-LINUX:#define __SIZE_WIDTH__ 64 +// PPC64-LINUX:#define __UINTMAX_TYPE__ long unsigned int +// PPC64-LINUX:#define __USER_LABEL_PREFIX__ +// PPC64-LINUX:#define __WCHAR_MAX__ 2147483647 +// PPC64-LINUX:#define __WCHAR_TYPE__ int +// PPC64-LINUX:#define __WCHAR_WIDTH__ 32 +// PPC64-LINUX:#define __WINT_TYPE__ unsigned int +// PPC64-LINUX:#define __WINT_UNSIGNED__ 1 +// PPC64-LINUX:#define __WINT_WIDTH__ 32 +// PPC64-LINUX:#define __powerpc64__ 1 +// PPC64-LINUX:#define __powerpc__ 1 +// PPC64-LINUX:#define __ppc64__ 1 +// PPC64-LINUX:#define __ppc__ 1 +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-none-none -fno-signed-char < /dev/null | FileCheck -check-prefix PPC %s // // PPC:#define _ARCH_PPC 1 @@ -722,7 +1186,7 @@ // PPC:#define __DBL_MIN_10_EXP__ (-307) // PPC:#define __DBL_MIN_EXP__ (-1021) // PPC:#define __DBL_MIN__ 2.2250738585072014e-308 -// PPC:#define __DECIMAL_DIG__ 17 +// PPC:#define __DECIMAL_DIG__ 33 // PPC:#define __FLT_DENORM_MIN__ 1.40129846e-45F // PPC:#define __FLT_DIG__ 6 // PPC:#define __FLT_EPSILON__ 1.19209290e-7F @@ -749,19 +1213,19 @@ // PPC:#define __INTPTR_TYPE__ long int // PPC:#define __INTPTR_WIDTH__ 32 // PPC:#define __INT_MAX__ 2147483647 -// PPC:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324 -// PPC:#define __LDBL_DIG__ 15 -// PPC:#define __LDBL_EPSILON__ 2.2204460492503131e-16 +// PPC:#define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L +// PPC:#define __LDBL_DIG__ 31 +// PPC:#define __LDBL_EPSILON__ 4.94065645841246544176568792868221e-324L // PPC:#define __LDBL_HAS_DENORM__ 1 // PPC:#define __LDBL_HAS_INFINITY__ 1 // PPC:#define __LDBL_HAS_QUIET_NAN__ 1 -// PPC:#define __LDBL_MANT_DIG__ 53 +// PPC:#define __LDBL_MANT_DIG__ 106 // PPC:#define __LDBL_MAX_10_EXP__ 308 // PPC:#define __LDBL_MAX_EXP__ 1024 -// PPC:#define __LDBL_MAX__ 1.7976931348623157e+308 -// PPC:#define __LDBL_MIN_10_EXP__ (-307) -// PPC:#define __LDBL_MIN_EXP__ (-1021) -// PPC:#define __LDBL_MIN__ 2.2250738585072014e-308 +// PPC:#define __LDBL_MAX__ 1.79769313486231580793728971405301e+308L +// PPC:#define __LDBL_MIN_10_EXP__ (-291) +// PPC:#define __LDBL_MIN_EXP__ (-968) +// PPC:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L // PPC:#define __LONG_DOUBLE_128__ 1 // PPC:#define __LONG_LONG_MAX__ 9223372036854775807LL // PPC:#define __LONG_MAX__ 2147483647L @@ -778,7 +1242,7 @@ // PPC:#define __SIZEOF_DOUBLE__ 8 // PPC:#define __SIZEOF_FLOAT__ 4 // PPC:#define __SIZEOF_INT__ 4 -// PPC:#define __SIZEOF_LONG_DOUBLE__ 8 +// PPC:#define __SIZEOF_LONG_DOUBLE__ 16 // PPC:#define __SIZEOF_LONG_LONG__ 8 // PPC:#define __SIZEOF_LONG__ 4 // PPC:#define __SIZEOF_POINTER__ 4 @@ -798,97 +1262,105 @@ // PPC:#define __WINT_WIDTH__ 32 // PPC:#define __ppc__ 1 // -// RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-none -fno-signed-char < /dev/null | FileCheck -check-prefix S390X %s -// -// S390X:#define __CHAR16_TYPE__ unsigned short -// S390X:#define __CHAR32_TYPE__ unsigned int -// S390X:#define __CHAR_BIT__ 8 -// S390X:#define __CHAR_UNSIGNED__ 1 -// S390X:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 -// S390X:#define __DBL_DIG__ 15 -// S390X:#define __DBL_EPSILON__ 2.2204460492503131e-16 -// S390X:#define __DBL_HAS_DENORM__ 1 -// S390X:#define __DBL_HAS_INFINITY__ 1 -// S390X:#define __DBL_HAS_QUIET_NAN__ 1 -// S390X:#define __DBL_MANT_DIG__ 53 -// S390X:#define __DBL_MAX_10_EXP__ 308 -// S390X:#define __DBL_MAX_EXP__ 1024 -// S390X:#define __DBL_MAX__ 1.7976931348623157e+308 -// S390X:#define __DBL_MIN_10_EXP__ (-307) -// S390X:#define __DBL_MIN_EXP__ (-1021) -// S390X:#define __DBL_MIN__ 2.2250738585072014e-308 -// S390X:#define __DECIMAL_DIG__ 17 -// S390X:#define __FLT_DENORM_MIN__ 1.40129846e-45F -// S390X:#define __FLT_DIG__ 6 -// S390X:#define __FLT_EPSILON__ 1.19209290e-7F -// S390X:#define __FLT_EVAL_METHOD__ 0 -// S390X:#define __FLT_HAS_DENORM__ 1 -// S390X:#define __FLT_HAS_INFINITY__ 1 -// S390X:#define __FLT_HAS_QUIET_NAN__ 1 -// S390X:#define __FLT_MANT_DIG__ 24 -// S390X:#define __FLT_MAX_10_EXP__ 38 -// S390X:#define __FLT_MAX_EXP__ 128 -// S390X:#define __FLT_MAX__ 3.40282347e+38F -// S390X:#define __FLT_MIN_10_EXP__ (-37) -// S390X:#define __FLT_MIN_EXP__ (-125) -// S390X:#define __FLT_MIN__ 1.17549435e-38F -// S390X:#define __FLT_RADIX__ 2 -// S390X:#define __INT16_TYPE__ short -// S390X:#define __INT32_TYPE__ int -// S390X:#define __INT64_C_SUFFIX__ L -// S390X:#define __INT64_TYPE__ long long int -// S390X:#define __INT8_TYPE__ char -// S390X:#define __INTMAX_MAX__ 9223372036854775807LL -// S390X:#define __INTMAX_TYPE__ long long int -// S390X:#define __INTMAX_WIDTH__ 64 -// S390X:#define __INTPTR_TYPE__ long int -// S390X:#define __INTPTR_WIDTH__ 64 -// S390X:#define __INT_MAX__ 2147483647 -// S390X:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324 -// S390X:#define __LDBL_DIG__ 15 -// S390X:#define __LDBL_EPSILON__ 2.2204460492503131e-16 -// S390X:#define __LDBL_HAS_DENORM__ 1 -// S390X:#define __LDBL_HAS_INFINITY__ 1 -// S390X:#define __LDBL_HAS_QUIET_NAN__ 1 -// S390X:#define __LDBL_MANT_DIG__ 53 -// S390X:#define __LDBL_MAX_10_EXP__ 308 -// S390X:#define __LDBL_MAX_EXP__ 1024 -// S390X:#define __LDBL_MAX__ 1.7976931348623157e+308 -// S390X:#define __LDBL_MIN_10_EXP__ (-307) -// S390X:#define __LDBL_MIN_EXP__ (-1021) -// S390X:#define __LDBL_MIN__ 2.2250738585072014e-308 -// S390X:#define __LONG_LONG_MAX__ 9223372036854775807LL -// S390X:#define __LONG_MAX__ 9223372036854775807L -// S390X:#define __NO_INLINE__ 1 -// S390X:#define __POINTER_WIDTH__ 64 -// S390X:#define __PTRDIFF_TYPE__ long int -// S390X:#define __PTRDIFF_WIDTH__ 64 -// S390X:#define __SCHAR_MAX__ 127 -// S390X:#define __SHRT_MAX__ 32767 -// S390X:#define __SIG_ATOMIC_WIDTH__ 32 -// S390X:#define __SIZEOF_DOUBLE__ 8 -// S390X:#define __SIZEOF_FLOAT__ 4 -// S390X:#define __SIZEOF_INT__ 4 -// S390X:#define __SIZEOF_LONG_DOUBLE__ 8 -// S390X:#define __SIZEOF_LONG_LONG__ 8 -// S390X:#define __SIZEOF_LONG__ 8 -// S390X:#define __SIZEOF_POINTER__ 8 -// S390X:#define __SIZEOF_PTRDIFF_T__ 8 -// S390X:#define __SIZEOF_SHORT__ 2 -// S390X:#define __SIZEOF_SIZE_T__ 8 -// S390X:#define __SIZEOF_WCHAR_T__ 4 -// S390X:#define __SIZEOF_WINT_T__ 4 -// S390X:#define __SIZE_TYPE__ long unsigned int -// S390X:#define __SIZE_WIDTH__ 64 -// S390X:#define __UINTMAX_TYPE__ long long unsigned int -// S390X:#define __USER_LABEL_PREFIX__ _ -// S390X:#define __WCHAR_MAX__ 2147483647 -// S390X:#define __WCHAR_TYPE__ int -// S390X:#define __WCHAR_WIDTH__ 32 -// S390X:#define __WINT_TYPE__ int -// S390X:#define __WINT_WIDTH__ 32 -// S390X:#define __s390__ 1 -// S390X:#define __s390x__ 1 +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-unknown-linux-gnu -fno-signed-char < /dev/null | FileCheck -check-prefix PPC-LINUX %s +// +// PPC-LINUX:#define _ARCH_PPC 1 +// PPC-LINUX:#define _BIG_ENDIAN 1 +// PPC-LINUX:#define __BIG_ENDIAN__ 1 +// PPC-LINUX:#define __CHAR16_TYPE__ unsigned short +// PPC-LINUX:#define __CHAR32_TYPE__ unsigned int +// PPC-LINUX:#define __CHAR_BIT__ 8 +// PPC-LINUX:#define __CHAR_UNSIGNED__ 1 +// PPC-LINUX:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// PPC-LINUX:#define __DBL_DIG__ 15 +// PPC-LINUX:#define __DBL_EPSILON__ 2.2204460492503131e-16 +// PPC-LINUX:#define __DBL_HAS_DENORM__ 1 +// PPC-LINUX:#define __DBL_HAS_INFINITY__ 1 +// PPC-LINUX:#define __DBL_HAS_QUIET_NAN__ 1 +// PPC-LINUX:#define __DBL_MANT_DIG__ 53 +// PPC-LINUX:#define __DBL_MAX_10_EXP__ 308 +// PPC-LINUX:#define __DBL_MAX_EXP__ 1024 +// PPC-LINUX:#define __DBL_MAX__ 1.7976931348623157e+308 +// PPC-LINUX:#define __DBL_MIN_10_EXP__ (-307) +// PPC-LINUX:#define __DBL_MIN_EXP__ (-1021) +// PPC-LINUX:#define __DBL_MIN__ 2.2250738585072014e-308 +// PPC-LINUX:#define __DECIMAL_DIG__ 33 +// PPC-LINUX:#define __FLT_DENORM_MIN__ 1.40129846e-45F +// PPC-LINUX:#define __FLT_DIG__ 6 +// PPC-LINUX:#define __FLT_EPSILON__ 1.19209290e-7F +// PPC-LINUX:#define __FLT_EVAL_METHOD__ 0 +// PPC-LINUX:#define __FLT_HAS_DENORM__ 1 +// PPC-LINUX:#define __FLT_HAS_INFINITY__ 1 +// PPC-LINUX:#define __FLT_HAS_QUIET_NAN__ 1 +// PPC-LINUX:#define __FLT_MANT_DIG__ 24 +// PPC-LINUX:#define __FLT_MAX_10_EXP__ 38 +// PPC-LINUX:#define __FLT_MAX_EXP__ 128 +// PPC-LINUX:#define __FLT_MAX__ 3.40282347e+38F +// PPC-LINUX:#define __FLT_MIN_10_EXP__ (-37) +// PPC-LINUX:#define __FLT_MIN_EXP__ (-125) +// PPC-LINUX:#define __FLT_MIN__ 1.17549435e-38F +// PPC-LINUX:#define __FLT_RADIX__ 2 +// PPC-LINUX:#define __INT16_TYPE__ short +// PPC-LINUX:#define __INT32_TYPE__ int +// PPC-LINUX:#define __INT64_C_SUFFIX__ LL +// PPC-LINUX:#define __INT64_TYPE__ long long int +// PPC-LINUX:#define __INT8_TYPE__ char +// PPC-LINUX:#define __INTMAX_MAX__ 9223372036854775807LL +// PPC-LINUX:#define __INTMAX_TYPE__ long long int +// PPC-LINUX:#define __INTMAX_WIDTH__ 64 +// PPC-LINUX:#define __INTPTR_TYPE__ int +// PPC-LINUX:#define __INTPTR_WIDTH__ 32 +// PPC-LINUX:#define __INT_MAX__ 2147483647 +// PPC-LINUX:#define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L +// PPC-LINUX:#define __LDBL_DIG__ 31 +// PPC-LINUX:#define __LDBL_EPSILON__ 4.94065645841246544176568792868221e-324L +// PPC-LINUX:#define __LDBL_HAS_DENORM__ 1 +// PPC-LINUX:#define __LDBL_HAS_INFINITY__ 1 +// PPC-LINUX:#define __LDBL_HAS_QUIET_NAN__ 1 +// PPC-LINUX:#define __LDBL_MANT_DIG__ 106 +// PPC-LINUX:#define __LDBL_MAX_10_EXP__ 308 +// PPC-LINUX:#define __LDBL_MAX_EXP__ 1024 +// PPC-LINUX:#define __LDBL_MAX__ 1.79769313486231580793728971405301e+308L +// PPC-LINUX:#define __LDBL_MIN_10_EXP__ (-291) +// PPC-LINUX:#define __LDBL_MIN_EXP__ (-968) +// PPC-LINUX:#define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L +// PPC-LINUX:#define __LONG_DOUBLE_128__ 1 +// PPC-LINUX:#define __LONG_LONG_MAX__ 9223372036854775807LL +// PPC-LINUX:#define __LONG_MAX__ 2147483647L +// PPC-LINUX:#define __NATURAL_ALIGNMENT__ 1 +// PPC-LINUX:#define __NO_INLINE__ 1 +// PPC-LINUX:#define __POINTER_WIDTH__ 32 +// PPC-LINUX:#define __POWERPC__ 1 +// PPC-LINUX:#define __PTRDIFF_TYPE__ int +// PPC-LINUX:#define __PTRDIFF_WIDTH__ 32 +// PPC-LINUX:#define __REGISTER_PREFIX__ +// PPC-LINUX:#define __SCHAR_MAX__ 127 +// PPC-LINUX:#define __SHRT_MAX__ 32767 +// PPC-LINUX:#define __SIG_ATOMIC_WIDTH__ 32 +// PPC-LINUX:#define __SIZEOF_DOUBLE__ 8 +// PPC-LINUX:#define __SIZEOF_FLOAT__ 4 +// PPC-LINUX:#define __SIZEOF_INT__ 4 +// PPC-LINUX:#define __SIZEOF_LONG_DOUBLE__ 16 +// PPC-LINUX:#define __SIZEOF_LONG_LONG__ 8 +// PPC-LINUX:#define __SIZEOF_LONG__ 4 +// PPC-LINUX:#define __SIZEOF_POINTER__ 4 +// PPC-LINUX:#define __SIZEOF_PTRDIFF_T__ 4 +// PPC-LINUX:#define __SIZEOF_SHORT__ 2 +// PPC-LINUX:#define __SIZEOF_SIZE_T__ 4 +// PPC-LINUX:#define __SIZEOF_WCHAR_T__ 4 +// PPC-LINUX:#define __SIZEOF_WINT_T__ 4 +// PPC-LINUX:#define __SIZE_TYPE__ unsigned int +// PPC-LINUX:#define __SIZE_WIDTH__ 32 +// PPC-LINUX:#define __UINTMAX_TYPE__ long long unsigned int +// PPC-LINUX:#define __USER_LABEL_PREFIX__ +// PPC-LINUX:#define __WCHAR_MAX__ 2147483647 +// PPC-LINUX:#define __WCHAR_TYPE__ int +// PPC-LINUX:#define __WCHAR_WIDTH__ 32 +// PPC-LINUX:#define __WINT_TYPE__ unsigned int +// PPC-LINUX:#define __WINT_UNSIGNED__ 1 +// PPC-LINUX:#define __WINT_WIDTH__ 32 +// PPC-LINUX:#define __powerpc__ 1 +// PPC-LINUX:#define __ppc__ 1 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc-none-none < /dev/null | FileCheck -check-prefix SPARC %s // diff --git a/test/Preprocessor/line-directive.c b/test/Preprocessor/line-directive.c index 878d067a30dd..28e93029a5ce 100644 --- a/test/Preprocessor/line-directive.c +++ b/test/Preprocessor/line-directive.c @@ -1,6 +1,6 @@ // RUN: %clang_cc1 -fsyntax-only -verify -pedantic %s -// RUN: %clang_cc1 -E %s 2>&1 | grep 'blonk.c:92:2: error: #error ABC' -// RUN: %clang_cc1 -E %s 2>&1 | grep 'blonk.c:93:2: error: #error DEF' +// RUN: %clang_cc1 -E %s 2>&1 | grep 'blonk.c:92:2: error: ABC' +// RUN: %clang_cc1 -E %s 2>&1 | grep 'blonk.c:93:2: error: DEF' #line 'a' // expected-error {{#line directive requires a positive integer argument}} #line 0 // expected-error {{#line directive requires a positive integer argument}} @@ -41,7 +41,7 @@ # 192 "glomp.h" // not a system header. typedef int x; // expected-note {{previous definition is here}} -typedef int x; // expected-error {{redefinition of typedef 'x' is invalid in C}} +typedef int x; // expected-warning {{redefinition of typedef 'x' is a C11 feature}} # 192 "glomp.h" 3 // System header. typedef int y; // ok @@ -62,7 +62,7 @@ typedef int z1; // ok # 42 "blonk.h" // DOES change system headerness. typedef int w; // expected-note {{previous definition is here}} -typedef int w; // expected-error {{redefinition of typedef 'w' is invalid in C}} +typedef int w; // expected-warning {{redefinition of typedef 'w' is a C11 feature}} typedef int q; // original definition in system header, should not diagnose. diff --git a/test/Preprocessor/macro_arg_directive.c b/test/Preprocessor/macro_arg_directive.c new file mode 100644 index 000000000000..5c9943d60530 --- /dev/null +++ b/test/Preprocessor/macro_arg_directive.c @@ -0,0 +1,20 @@ +// RUN: %clang_cc1 %s -fsyntax-only -verify + +// header1.h +void fail(const char *); +#define MUNCH(...) \ + ({ int result = 0; __VA_ARGS__; if (!result) { fail(#__VA_ARGS__); }; result }) + +static inline int f(int k) { + return MUNCH( // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{returning 'void'}} + if (k < 3) + result = 24; + else if (k > 4) + result = k - 4; +} + +#include "macro_arg_directive.h" // expected-error {{embedding a #include directive within macro arguments is not supported}} + +int g(int k) { + return f(k) + f(k-1)); +} diff --git a/test/Preprocessor/macro_arg_directive.h b/test/Preprocessor/macro_arg_directive.h new file mode 100644 index 000000000000..892dbf2b13bb --- /dev/null +++ b/test/Preprocessor/macro_arg_directive.h @@ -0,0 +1,9 @@ +// Support header for macro_arg_directive.c + +int n; + +struct S { + int k; +}; + +void g(int); diff --git a/test/Preprocessor/macro_paste_c_block_comment.c b/test/Preprocessor/macro_paste_c_block_comment.c index 3441f273d460..c690a4c7c9f5 100644 --- a/test/Preprocessor/macro_paste_c_block_comment.c +++ b/test/Preprocessor/macro_paste_c_block_comment.c @@ -1,7 +1,5 @@ -// RUN: %clang_cc1 %s -Eonly 2>&1 | grep error -// RUN: %clang_cc1 %s -Eonly 2>&1 | not grep unterminated -// RUN: %clang_cc1 %s -Eonly 2>&1 | not grep scratch +// RUN: %clang_cc1 %s -Eonly -verify #define COMM / ## * -COMM +COMM // expected-error {{pasting formed '/*', an invalid preprocessing token}} diff --git a/test/Preprocessor/microsoft-import.c b/test/Preprocessor/microsoft-import.c new file mode 100644 index 000000000000..8835c7aa2c9e --- /dev/null +++ b/test/Preprocessor/microsoft-import.c @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -E -fms-compatibility %s 2>&1 | grep 'doh.c:100:2: error: #import of type library is an unsupported Microsoft feature' +// RUN: %clang_cc1 -E -fms-compatibility %s 2>&1 | grep 'doh.c:200:2: error: #import of type library is an unsupported Microsoft feature' +// RUN: %clang_cc1 -E -fms-compatibility %s 2>&1 | grep 'doh.c:300:2: error: #import of type library is an unsupported Microsoft feature' + +#line 100 "doh.c" +#import "pp-record.h" // expected-error {{#import of type library is an unsupported Microsoft feature}} + +// Test attributes +#line 200 "doh.c" +#import "pp-record.h" no_namespace, auto_rename // expected-error {{#import of type library is an unsupported Microsoft feature}} + +// This will also fire the "#import of type library is an unsupported Microsoft feature" +// error, but we can't use -verify because there's no way to put the comment on the proper line +#line 300 "doh.c" +#import "pp-record.h" no_namespace \ + auto_rename \ + auto_search diff --git a/test/Preprocessor/mmx.c b/test/Preprocessor/mmx.c new file mode 100644 index 000000000000..2613cb6ebed7 --- /dev/null +++ b/test/Preprocessor/mmx.c @@ -0,0 +1,13 @@ +// RUN: %clang -march=i386 -m32 -E -dM %s -msse -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=SSE_AND_MMX +// RUN: %clang -march=i386 -m32 -E -dM %s -msse -mno-mmx -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=SSE_NO_MMX +// RUN: %clang -march=i386 -m32 -E -dM %s -mno-mmx -msse -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=SSE_NO_MMX + +// SSE_AND_MMX: #define __MMX__ +// SSE_AND_MMX: #define __SSE__ + +// SSE_NO_MMX-NOT: __MMX__ +// SSE_NO_MMX: __SSE__ +// SSE_NO_MMX-NOT: __MMX__ diff --git a/test/Preprocessor/optimize.c b/test/Preprocessor/optimize.c index c820ded909f7..97f841a6fbb9 100644 --- a/test/Preprocessor/optimize.c +++ b/test/Preprocessor/optimize.c @@ -23,7 +23,7 @@ #ifndef __OPTIMIZE__ #error "__OPTIMIZE__ not defined" #endif - #ifdef __OPTIMIZE_SIZE__ + #ifndef __OPTIMIZE_SIZE__ #error "__OPTIMIZE_SIZE__ not defined" #endif #endif diff --git a/test/Preprocessor/pic.c b/test/Preprocessor/pic.c index 886beb715953..3e649ee5ea2d 100644 --- a/test/Preprocessor/pic.c +++ b/test/Preprocessor/pic.c @@ -1,9 +1,34 @@ -// RUN: %clang -ccc-host-triple i386-unknown-unknown -static -dM -E -o %t %s -// RUN: grep '#define __PIC__' %t | count 0 -// RUN: grep '#define __pic__' %t | count 0 -// RUN: %clang -ccc-host-triple i386-unknown-unknown -fpic -dM -E -o %t %s -// RUN: grep '#define __PIC__ 1' %t | count 1 -// RUN: grep '#define __pic__ 1' %t | count 1 -// RUN: %clang -ccc-host-triple i386-unknown-unknown -fPIC -dM -E -o %t %s -// RUN: grep '#define __PIC__ 2' %t | count 1 -// RUN: grep '#define __pic__ 2' %t | count 1 +// RUN: %clang_cc1 -dM -E -o - %s \ +// RUN: | FileCheck %s +// CHECK-NOT: #define __PIC__ +// CHECK-NOT: #define __PIE__ +// CHECK-NOT: #define __pic__ +// CHECK-NOT: #define __pie__ +// +// RUN: %clang_cc1 -pic-level 1 -dM -E -o - %s \ +// RUN: | FileCheck --check-prefix=CHECK-PIC1 %s +// CHECK-PIC1: #define __PIC__ 1 +// CHECK-PIC1-NOT: #define __PIE__ +// CHECK-PIC1: #define __pic__ 1 +// CHECK-PIC1-NOT: #define __pie__ +// +// RUN: %clang_cc1 -pic-level 2 -dM -E -o - %s \ +// RUN: | FileCheck --check-prefix=CHECK-PIC2 %s +// CHECK-PIC2: #define __PIC__ 2 +// CHECK-PIC2-NOT: #define __PIE__ +// CHECK-PIC2: #define __pic__ 2 +// CHECK-PIC2-NOT: #define __pie__ +// +// RUN: %clang_cc1 -pie-level 1 -dM -E -o - %s \ +// RUN: | FileCheck --check-prefix=CHECK-PIE1 %s +// CHECK-PIE1-NOT: #define __PIC__ +// CHECK-PIE1: #define __PIE__ 1 +// CHECK-PIE1-NOT: #define __pic__ +// CHECK-PIE1: #define __pie__ 1 +// +// RUN: %clang_cc1 -pie-level 2 -dM -E -o - %s \ +// RUN: | FileCheck --check-prefix=CHECK-PIE2 %s +// CHECK-PIE2-NOT: #define __PIC__ +// CHECK-PIE2: #define __PIE__ 2 +// CHECK-PIE2-NOT: #define __pic__ +// CHECK-PIE2: #define __pie__ 2 diff --git a/test/Preprocessor/pp-record.c b/test/Preprocessor/pp-record.c index dcb52b56b7d9..f098683eeaa8 100644 --- a/test/Preprocessor/pp-record.c +++ b/test/Preprocessor/pp-record.c @@ -2,8 +2,11 @@ // http://llvm.org/PR11120 -#define FILE_HEADER_NAME "pp-record.h" +#define STRINGIZE(text) STRINGIZE_I(text) +#define STRINGIZE_I(text) #text -#if defined(FILE_HEADER_NAME) -#include FILE_HEADER_NAME -#endif +#define INC pp-record.h + +#include STRINGIZE(INC) + +CAKE; diff --git a/test/Preprocessor/pp-record.h b/test/Preprocessor/pp-record.h index 34158bd20527..b39a17405e64 100644 --- a/test/Preprocessor/pp-record.h +++ b/test/Preprocessor/pp-record.h @@ -1 +1,3 @@ // Only useful for #inclusion. + +#define CAKE extern int is_a_lie diff --git a/test/Preprocessor/pragma_microsoft.c b/test/Preprocessor/pragma_microsoft.c index b68d6e363eb8..e461c707a9a5 100644 --- a/test/Preprocessor/pragma_microsoft.c +++ b/test/Preprocessor/pragma_microsoft.c @@ -38,3 +38,46 @@ void f() // this warning should go away. MACRO_WITH__PRAGMA // expected-warning {{expression result unused}} } + + +// This should include macro_arg_directive even though the include +// is looking for test.h This allows us to assign to "n" +#pragma include_alias("test.h", "macro_arg_directive.h" ) +#include "test.h" +void test( void ) { + n = 12; +} + +#pragma include_alias(<bar.h>, "bar.h") // expected-warning {{angle-bracketed include <bar.h> cannot be aliased to double-quoted include "bar.h"}} +#pragma include_alias("foo.h", <bar.h>) // expected-warning {{double-quoted include "foo.h" cannot be aliased to angle-bracketed include <bar.h>}} +#pragma include_alias("test.h") // expected-warning {{pragma include_alias expected ','}} + +// Make sure that the names match exactly for a replacement, including path information. If +// this were to fail, we would get a file not found error +#pragma include_alias(".\pp-record.h", "does_not_exist.h") +#include "pp-record.h" + +#pragma include_alias(12) // expected-warning {{pragma include_alias expected include filename}} + +// It's expected that we can map "bar" and <bar> separately +#define test +// We can't actually look up stdio.h because we're using cc1 without header paths, but this will ensure +// that we get the right bar.h, because the "bar.h" will undef test for us, where <bar.h> won't +#pragma include_alias(<bar.h>, <stdio.h>) +#pragma include_alias("bar.h", "pr2086.h") // This should #undef test + +#include "bar.h" +#if defined(test) +// This should not warn because test should not be defined +#pragma include_alias("test.h") +#endif + +// Test to make sure there are no use-after-free problems +#define B "pp-record.h" +#pragma include_alias("quux.h", B) +void g() {} +#include "quux.h" + +// Make sure that empty includes don't work +#pragma include_alias("", "foo.h") // expected-error {{empty filename}} +#pragma include_alias(<foo.h>, <>) // expected-error {{empty filename}} diff --git a/test/Preprocessor/predefined-macros.c b/test/Preprocessor/predefined-macros.c index 85a0cb80415c..5c11c3b7b2a3 100644 --- a/test/Preprocessor/predefined-macros.c +++ b/test/Preprocessor/predefined-macros.c @@ -1,12 +1,15 @@ -// This test verifies that the correct macros are predefined. It currently -// only checks for Microsoft macros. - -// RUN: %clang_cc1 %s -E -dM -triple i686-pc-win32 -fms-extensions -fmsc-version=1300 -o - | FileCheck %s - - -// CHECK: #define _INTEGRAL_MAX_BITS 64 -// CHECK: #define _MSC_EXTENSIONS 1 -// CHECK: #define _MSC_VER 1300 -// CHECK: #define _M_IX86 600 -// CHECK: #define _M_IX86_FP -// CHECK: #define _WIN32 1 +// This test verifies that the correct macros are predefined. +// +// RUN: %clang_cc1 %s -E -dM -triple i686-pc-win32 -fms-extensions -fms-compatibility \ +// RUN: -fmsc-version=1300 -o - | FileCheck %s --check-prefix=CHECK-MS +// CHECK-MS: #define _INTEGRAL_MAX_BITS 64 +// CHECK-MS: #define _MSC_EXTENSIONS 1 +// CHECK-MS: #define _MSC_VER 1300 +// CHECK-MS: #define _M_IX86 600 +// CHECK-MS: #define _M_IX86_FP +// CHECK-MS: #define _WIN32 1 +// CHECK-MS-NOT: #define __GNUC__ +// +// RUN: %clang_cc1 %s -E -dM -ffast-math -o - \ +// RUN: | FileCheck %s --check-prefix=CHECK-FAST-MATH +// CHECK-FAST-MATH: #define __FAST_MATH__ diff --git a/test/Preprocessor/stdint.c b/test/Preprocessor/stdint.c index ee8e3c28c37f..70c106bf7974 100644 --- a/test/Preprocessor/stdint.c +++ b/test/Preprocessor/stdint.c @@ -90,8 +90,8 @@ // ARM:WINT_MIN_ (-2147483647 -1) // ARM:WINT_MAX_ 2147483647 // -// ARM:WCHAR_MAX_ 2147483647 -// ARM:WCHAR_MIN_ (-2147483647 -1) +// ARM:WCHAR_MAX_ 4294967295U +// ARM:WCHAR_MIN_ 0U // // ARM:INT8_C_(0) 0 // ARM:UINT8_C_(0) 0U @@ -106,114 +106,6 @@ // ARM:UINTMAX_C_(0) 0ULL // // -// RUN: %clang_cc1 -E -ffreestanding -triple=bfin-none-none %s | FileCheck -check-prefix BFIN %s -// -// BFIN:typedef signed long long int int64_t; -// BFIN:typedef unsigned long long int uint64_t; -// BFIN:typedef int64_t int_least64_t; -// BFIN:typedef uint64_t uint_least64_t; -// BFIN:typedef int64_t int_fast64_t; -// BFIN:typedef uint64_t uint_fast64_t; -// -// BFIN:typedef signed int int32_t; -// BFIN:typedef unsigned int uint32_t; -// BFIN:typedef int32_t int_least32_t; -// BFIN:typedef uint32_t uint_least32_t; -// BFIN:typedef int32_t int_fast32_t; -// BFIN:typedef uint32_t uint_fast32_t; -// -// BFIN:typedef signed short int16_t; -// BFIN:typedef unsigned short uint16_t; -// BFIN:typedef int16_t int_least16_t; -// BFIN:typedef uint16_t uint_least16_t; -// BFIN:typedef int16_t int_fast16_t; -// BFIN:typedef uint16_t uint_fast16_t; -// -// BFIN:typedef signed char int8_t; -// BFIN:typedef unsigned char uint8_t; -// BFIN:typedef int8_t int_least8_t; -// BFIN:typedef uint8_t uint_least8_t; -// BFIN:typedef int8_t int_fast8_t; -// BFIN:typedef uint8_t uint_fast8_t; -// -// BFIN:typedef int32_t intptr_t; -// BFIN:typedef uint32_t uintptr_t; -// -// BFIN:typedef long long int intmax_t; -// BFIN:typedef long long unsigned int uintmax_t; -// -// BFIN:INT8_MAX_ 127 -// BFIN:INT8_MIN_ (-127 -1) -// BFIN:UINT8_MAX_ 255 -// BFIN:INT_LEAST8_MIN_ (-127 -1) -// BFIN:INT_LEAST8_MAX_ 127 -// BFIN:UINT_LEAST8_MAX_ 255 -// BFIN:INT_FAST8_MIN_ (-127 -1) -// BFIN:INT_FAST8_MAX_ 127 -// BFIN:UINT_FAST8_MAX_ 255 -// -// BFIN:INT16_MAX_ 32767 -// BFIN:INT16_MIN_ (-32767 -1) -// BFIN:UINT16_MAX_ 65535 -// BFIN:INT_LEAST16_MIN_ (-32767 -1) -// BFIN:INT_LEAST16_MAX_ 32767 -// BFIN:UINT_LEAST16_MAX_ 65535 -// BFIN:INT_FAST16_MIN_ (-32767 -1) -// BFIN:INT_FAST16_MAX_ 32767 -// BFIN:UINT_FAST16_MAX_ 65535 -// -// BFIN:INT32_MAX_ 2147483647 -// BFIN:INT32_MIN_ (-2147483647 -1) -// BFIN:UINT32_MAX_ 4294967295U -// BFIN:INT_LEAST32_MIN_ (-2147483647 -1) -// BFIN:INT_LEAST32_MAX_ 2147483647 -// BFIN:UINT_LEAST32_MAX_ 4294967295U -// BFIN:INT_FAST32_MIN_ (-2147483647 -1) -// BFIN:INT_FAST32_MAX_ 2147483647 -// BFIN:UINT_FAST32_MAX_ 4294967295U -// -// BFIN:INT64_MAX_ 9223372036854775807LL -// BFIN:INT64_MIN_ (-9223372036854775807LL -1) -// BFIN:UINT64_MAX_ 18446744073709551615ULL -// BFIN:INT_LEAST64_MIN_ (-9223372036854775807LL -1) -// BFIN:INT_LEAST64_MAX_ 9223372036854775807LL -// BFIN:UINT_LEAST64_MAX_ 18446744073709551615ULL -// BFIN:INT_FAST64_MIN_ (-9223372036854775807LL -1) -// BFIN:INT_FAST64_MAX_ 9223372036854775807LL -// BFIN:UINT_FAST64_MAX_ 18446744073709551615ULL -// -// BFIN:INTPTR_MIN_ (-2147483647 -1) -// BFIN:INTPTR_MAX_ 2147483647 -// BFIN:UINTPTR_MAX_ 4294967295U -// BFIN:PTRDIFF_MIN_ (-2147483647 -1) -// BFIN:PTRDIFF_MAX_ 2147483647 -// BFIN:SIZE_MAX_ 4294967295U -// -// BFIN:INTMAX_MIN_ (-9223372036854775807LL -1) -// BFIN:INTMAX_MAX_ 9223372036854775807LL -// BFIN:UINTMAX_MAX_ 18446744073709551615ULL -// -// BFIN:SIG_ATOMIC_MIN_ (-2147483647 -1) -// BFIN:SIG_ATOMIC_MAX_ 2147483647 -// BFIN:WINT_MIN_ (-2147483647 -1) -// BFIN:WINT_MAX_ 2147483647 -// -// BFIN:WCHAR_MAX_ 2147483647 -// BFIN:WCHAR_MIN_ (-2147483647 -1) -// -// BFIN:INT8_C_(0) 0 -// BFIN:UINT8_C_(0) 0U -// BFIN:INT16_C_(0) 0 -// BFIN:UINT16_C_(0) 0U -// BFIN:INT32_C_(0) 0 -// BFIN:UINT32_C_(0) 0U -// BFIN:INT64_C_(0) 0LL -// BFIN:UINT64_C_(0) 0ULL -// -// BFIN:INTMAX_C_(0) 0LL -// BFIN:UINTMAX_C_(0) 0ULL -// -// // RUN: %clang_cc1 -E -ffreestanding -triple=i386-none-none %s | FileCheck -check-prefix I386 %s // // I386:typedef signed long long int int64_t; @@ -636,113 +528,6 @@ // PPC:INTMAX_C_(0) 0LL // PPC:UINTMAX_C_(0) 0ULL // -// RUN: %clang_cc1 -E -ffreestanding -triple=s390x-none-none %s | FileCheck -check-prefix S390X %s -// -// S390X:typedef signed long long int int64_t; -// S390X:typedef unsigned long long int uint64_t; -// S390X:typedef int64_t int_least64_t; -// S390X:typedef uint64_t uint_least64_t; -// S390X:typedef int64_t int_fast64_t; -// S390X:typedef uint64_t uint_fast64_t; -// -// S390X:typedef signed int int32_t; -// S390X:typedef unsigned int uint32_t; -// S390X:typedef int32_t int_least32_t; -// S390X:typedef uint32_t uint_least32_t; -// S390X:typedef int32_t int_fast32_t; -// S390X:typedef uint32_t uint_fast32_t; -// -// S390X:typedef signed short int16_t; -// S390X:typedef unsigned short uint16_t; -// S390X:typedef int16_t int_least16_t; -// S390X:typedef uint16_t uint_least16_t; -// S390X:typedef int16_t int_fast16_t; -// S390X:typedef uint16_t uint_fast16_t; -// -// S390X:typedef signed char int8_t; -// S390X:typedef unsigned char uint8_t; -// S390X:typedef int8_t int_least8_t; -// S390X:typedef uint8_t uint_least8_t; -// S390X:typedef int8_t int_fast8_t; -// S390X:typedef uint8_t uint_fast8_t; -// -// S390X:typedef int64_t intptr_t; -// S390X:typedef uint64_t uintptr_t; -// -// S390X:typedef long long int intmax_t; -// S390X:typedef long long unsigned int uintmax_t; -// -// S390X:INT8_MAX_ 127 -// S390X:INT8_MIN_ (-127 -1) -// S390X:UINT8_MAX_ 255 -// S390X:INT_LEAST8_MIN_ (-127 -1) -// S390X:INT_LEAST8_MAX_ 127 -// S390X:UINT_LEAST8_MAX_ 255 -// S390X:INT_FAST8_MIN_ (-127 -1) -// S390X:INT_FAST8_MAX_ 127 -// S390X:UINT_FAST8_MAX_ 255 -// -// S390X:INT16_MAX_ 32767 -// S390X:INT16_MIN_ (-32767 -1) -// S390X:UINT16_MAX_ 65535 -// S390X:INT_LEAST16_MIN_ (-32767 -1) -// S390X:INT_LEAST16_MAX_ 32767 -// S390X:UINT_LEAST16_MAX_ 65535 -// S390X:INT_FAST16_MIN_ (-32767 -1) -// S390X:INT_FAST16_MAX_ 32767 -// S390X:UINT_FAST16_MAX_ 65535 -// -// S390X:INT32_MAX_ 2147483647 -// S390X:INT32_MIN_ (-2147483647 -1) -// S390X:UINT32_MAX_ 4294967295U -// S390X:INT_LEAST32_MIN_ (-2147483647 -1) -// S390X:INT_LEAST32_MAX_ 2147483647 -// S390X:UINT_LEAST32_MAX_ 4294967295U -// S390X:INT_FAST32_MIN_ (-2147483647 -1) -// S390X:INT_FAST32_MAX_ 2147483647 -// S390X:UINT_FAST32_MAX_ 4294967295U -// -// S390X:INT64_MAX_ 9223372036854775807L -// S390X:INT64_MIN_ (-9223372036854775807LL -1) -// S390X:UINT64_MAX_ 18446744073709551615UL -// S390X:INT_LEAST64_MIN_ (-9223372036854775807LL -1) -// S390X:INT_LEAST64_MAX_ 9223372036854775807L -// S390X:UINT_LEAST64_MAX_ 18446744073709551615UL -// S390X:INT_FAST64_MIN_ (-9223372036854775807LL -1) -// S390X:INT_FAST64_MAX_ 9223372036854775807L -// S390X:UINT_FAST64_MAX_ 18446744073709551615UL -// -// S390X:INTPTR_MIN_ (-9223372036854775807LL -1) -// S390X:INTPTR_MAX_ 9223372036854775807L -// S390X:UINTPTR_MAX_ 18446744073709551615UL -// S390X:PTRDIFF_MIN_ (-9223372036854775807LL -1) -// S390X:PTRDIFF_MAX_ 9223372036854775807L -// S390X:SIZE_MAX_ 18446744073709551615UL -// -// S390X:INTMAX_MIN_ (-9223372036854775807LL -1) -// S390X:INTMAX_MAX_ 9223372036854775807L -// S390X:UINTMAX_MAX_ 18446744073709551615UL -// -// S390X:SIG_ATOMIC_MIN_ (-2147483647 -1) -// S390X:SIG_ATOMIC_MAX_ 2147483647 -// S390X:WINT_MIN_ (-2147483647 -1) -// S390X:WINT_MAX_ 2147483647 -// -// S390X:WCHAR_MAX_ 2147483647 -// S390X:WCHAR_MIN_ (-2147483647 -1) -// -// S390X:INT8_C_(0) 0 -// S390X:UINT8_C_(0) 0U -// S390X:INT16_C_(0) 0 -// S390X:UINT16_C_(0) 0U -// S390X:INT32_C_(0) 0 -// S390X:UINT32_C_(0) 0U -// S390X:INT64_C_(0) 0L -// S390X:UINT64_C_(0) 0UL -// -// S390X:INTMAX_C_(0) 0L -// S390X:UINTMAX_C_(0) 0UL -// // RUN: %clang_cc1 -E -ffreestanding -triple=sparc-none-none %s | FileCheck -check-prefix SPARC %s // // SPARC:typedef signed long long int int64_t; diff --git a/test/Preprocessor/user_defined_system_framework.c b/test/Preprocessor/user_defined_system_framework.c new file mode 100644 index 000000000000..8e3db5619795 --- /dev/null +++ b/test/Preprocessor/user_defined_system_framework.c @@ -0,0 +1,8 @@ +// RUN: %clang -cc1 -fsyntax-only -F %S/Inputs -Wsign-conversion -verify %s + +// Check that TestFramework is treated as a system header. +#include <TestFramework/TestFramework.h> + +int f1() { + return test_framework_func(1) + another_test_framework_func(2); +} diff --git a/test/Preprocessor/warn-disabled-macro-expansion.c b/test/Preprocessor/warn-disabled-macro-expansion.c new file mode 100644 index 000000000000..fe8e90c721d9 --- /dev/null +++ b/test/Preprocessor/warn-disabled-macro-expansion.c @@ -0,0 +1,27 @@ +// RUN: %clang_cc1 %s -E -Wdisabled-macro-expansion -verify + +#define p p + +#define a b +#define b a + +#define f(a) a + +#define g(b) a + +#define h(x) i(x) +#define i(y) i(y) + +#define c(x) x(0) + +p // expected-warning {{recursive macro}} + +a // expected-warning {{recursive macro}} + +f(2) + +g(3) // expected-warning {{recursive macro}} + +h(0) // expected-warning {{recursive macro}} + +c(c) // expected-warning {{recursive macro}} diff --git a/test/Preprocessor/x86_target_features.c b/test/Preprocessor/x86_target_features.c index f39c2208a4c1..ad7ee85eb234 100644 --- a/test/Preprocessor/x86_target_features.c +++ b/test/Preprocessor/x86_target_features.c @@ -1,6 +1,4 @@ -// FIXME: Use -triple, not -ccc-host-triple. - -// RUN: %clang -ccc-host-triple i386-unknown-unknown -march=core2 -msse4 -x c -E -dM -o %t %s +// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -x c -E -dM -o %t %s // RUN: grep '#define __SSE2_MATH__ 1' %t // RUN: grep '#define __SSE2__ 1' %t // RUN: grep '#define __SSE3__ 1' %t @@ -10,7 +8,7 @@ // RUN: grep '#define __SSE__ 1' %t // RUN: grep '#define __SSSE3__ 1' %t -// RUN: %clang -ccc-host-triple i386-unknown-unknown -march=core2 -msse4 -mno-sse2 -x c -E -dM -o %t %s +// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -mno-sse2 -x c -E -dM -o %t %s // RUN: grep '#define __SSE2_MATH__ 1' %t | count 0 // RUN: grep '#define __SSE2__ 1' %t | count 0 // RUN: grep '#define __SSE3__ 1' %t | count 0 @@ -20,7 +18,7 @@ // RUN: grep '#define __SSE__ 1' %t // RUN: grep '#define __SSSE3__ 1' %t | count 0 -// RUN: %clang -ccc-host-triple i386-unknown-unknown -march=pentium-m -x c -E -dM -o %t %s +// RUN: %clang -target i386-unknown-unknown -march=pentium-m -x c -E -dM -o %t %s // RUN: grep '#define __SSE2_MATH__ 1' %t // RUN: grep '#define __SSE2__ 1' %t // RUN: grep '#define __SSE3__ 1' %t | count 0 |