From: Ulrich Weigand Date: Mon, 30 Mar 2015 13:50:21 +0000 (+0000) Subject: [SystemZ] Fix definition of IntMaxType / Int64Type X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=975362c0cd0359d3a9379cb752f91b9037aee593;p=clang [SystemZ] Fix definition of IntMaxType / Int64Type Like on other 64-bit platforms, Int64Type should be SignedLong on SystemZ, not SignedLongLong as per default. This could cause ABI incompatibilities in certain cases (e.g. name mangling). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@233544 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 7cb6480c2c..0034ed8384 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -5404,6 +5404,8 @@ class SystemZTargetInfo : public TargetInfo { public: SystemZTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) { + IntMaxType = SignedLong; + Int64Type = SignedLong; TLSSupported = true; IntWidth = IntAlign = 32; LongWidth = LongLongWidth = LongAlign = LongLongAlign = 64; diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index ad63d01e2d..4a5469f80c 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -6641,21 +6641,21 @@ // S390X:#define __INT32_FMTi__ "i" // S390X:#define __INT32_MAX__ 2147483647 // S390X:#define __INT32_TYPE__ int -// S390X:#define __INT64_C_SUFFIX__ LL -// S390X:#define __INT64_FMTd__ "lld" -// S390X:#define __INT64_FMTi__ "lli" -// S390X:#define __INT64_MAX__ 9223372036854775807LL -// S390X:#define __INT64_TYPE__ long long int +// S390X:#define __INT64_C_SUFFIX__ L +// S390X:#define __INT64_FMTd__ "ld" +// S390X:#define __INT64_FMTi__ "li" +// S390X:#define __INT64_MAX__ 9223372036854775807L +// S390X:#define __INT64_TYPE__ long int // S390X:#define __INT8_C_SUFFIX__ {{$}} // S390X:#define __INT8_FMTd__ "hhd" // S390X:#define __INT8_FMTi__ "hhi" // S390X:#define __INT8_MAX__ 127 // S390X:#define __INT8_TYPE__ signed char -// S390X:#define __INTMAX_C_SUFFIX__ LL -// S390X:#define __INTMAX_FMTd__ "lld" -// S390X:#define __INTMAX_FMTi__ "lli" -// S390X:#define __INTMAX_MAX__ 9223372036854775807LL -// S390X:#define __INTMAX_TYPE__ long long int +// S390X:#define __INTMAX_C_SUFFIX__ L +// S390X:#define __INTMAX_FMTd__ "ld" +// S390X:#define __INTMAX_FMTi__ "li" +// S390X:#define __INTMAX_MAX__ 9223372036854775807L +// S390X:#define __INTMAX_TYPE__ long int // S390X:#define __INTMAX_WIDTH__ 64 // S390X:#define __INTPTR_FMTd__ "ld" // S390X:#define __INTPTR_FMTi__ "li" @@ -6738,15 +6738,15 @@ // S390X:#define __UINT32_C_SUFFIX__ U // S390X:#define __UINT32_MAX__ 4294967295U // S390X:#define __UINT32_TYPE__ unsigned int -// S390X:#define __UINT64_C_SUFFIX__ ULL -// S390X:#define __UINT64_MAX__ 18446744073709551615ULL -// S390X:#define __UINT64_TYPE__ long long unsigned int +// S390X:#define __UINT64_C_SUFFIX__ UL +// S390X:#define __UINT64_MAX__ 18446744073709551615UL +// S390X:#define __UINT64_TYPE__ long unsigned int // S390X:#define __UINT8_C_SUFFIX__ {{$}} // S390X:#define __UINT8_MAX__ 255 // S390X:#define __UINT8_TYPE__ unsigned char -// S390X:#define __UINTMAX_C_SUFFIX__ ULL -// S390X:#define __UINTMAX_MAX__ 18446744073709551615ULL -// S390X:#define __UINTMAX_TYPE__ long long unsigned int +// S390X:#define __UINTMAX_C_SUFFIX__ UL +// S390X:#define __UINTMAX_MAX__ 18446744073709551615UL +// S390X:#define __UINTMAX_TYPE__ long unsigned int // S390X:#define __UINTMAX_WIDTH__ 64 // S390X:#define __UINTPTR_MAX__ 18446744073709551615UL // S390X:#define __UINTPTR_TYPE__ long unsigned int diff --git a/test/Preprocessor/stdint.c b/test/Preprocessor/stdint.c index 9bc1aa7cc5..28ccfef9f4 100644 --- a/test/Preprocessor/stdint.c +++ b/test/Preprocessor/stdint.c @@ -851,8 +851,8 @@ // // RUN: %clang_cc1 -E -ffreestanding -triple=s390x-none-none %s | FileCheck -check-prefix S390X %s // -// S390X:typedef long long int int64_t; -// S390X:typedef long long unsigned int uint64_t; +// S390X:typedef long int int64_t; +// S390X:typedef long unsigned int uint64_t; // S390X:typedef int64_t int_least64_t; // S390X:typedef uint64_t uint_least64_t; // S390X:typedef int64_t int_fast64_t; @@ -882,8 +882,8 @@ // 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:typedef long int intmax_t; +// S390X:typedef long unsigned int uintmax_t; // // S390X:INT8_MAX_ 127 // S390X:INT8_MIN_ (-127 -1) @@ -916,23 +916,23 @@ // S390X:UINT_FAST32_MAX_ 4294967295U // // S390X:INT64_MAX_ 9223372036854775807L -// S390X:INT64_MIN_ (-9223372036854775807LL -1) +// S390X:INT64_MIN_ (-9223372036854775807L -1) // S390X:UINT64_MAX_ 18446744073709551615UL -// S390X:INT_LEAST64_MIN_ (-9223372036854775807LL -1) +// S390X:INT_LEAST64_MIN_ (-9223372036854775807L -1) // S390X:INT_LEAST64_MAX_ 9223372036854775807L // S390X:UINT_LEAST64_MAX_ 18446744073709551615UL -// S390X:INT_FAST64_MIN_ (-9223372036854775807LL -1) +// S390X:INT_FAST64_MIN_ (-9223372036854775807L -1) // S390X:INT_FAST64_MAX_ 9223372036854775807L // S390X:UINT_FAST64_MAX_ 18446744073709551615UL // -// S390X:INTPTR_MIN_ (-9223372036854775807LL -1) +// S390X:INTPTR_MIN_ (-9223372036854775807L -1) // S390X:INTPTR_MAX_ 9223372036854775807L // S390X:UINTPTR_MAX_ 18446744073709551615UL -// S390X:PTRDIFF_MIN_ (-9223372036854775807LL -1) +// S390X:PTRDIFF_MIN_ (-9223372036854775807L -1) // S390X:PTRDIFF_MAX_ 9223372036854775807L // S390X:SIZE_MAX_ 18446744073709551615UL // -// S390X:INTMAX_MIN_ (-9223372036854775807LL -1) +// S390X:INTMAX_MIN_ (-9223372036854775807L -1) // S390X:INTMAX_MAX_ 9223372036854775807L // S390X:UINTMAX_MAX_ 18446744073709551615UL //