llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: None (YexuanXiao)

<details>
<summary>Changes</summary>

Previously, I made the `sizeof` expression return the `__size_t` type instead 
of `unsigned int`/`long`/`long long` (#<!-- -->143653). However, the types of 
the predefined macros `__SIZE_TYPE__` and `__PTRDIFF_TYPE__` obtained from 
`TargetInfo` are still `unsigned` `int`/`long`/`long long`. This causes the 
common sugar type for evaluating `size_t(0)` and `sizeof(0)` to be `unsigned` 
`int`/`long`/`long long` instead of `__size_t` when using 
glibc/llvm-libc/libc++.

---

Patch is 50.04 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/155979.diff


15 Files Affected:

- (modified) clang/lib/Frontend/InitPreprocessor.cpp (+6-4) 
- (modified) clang/test/Preprocessor/init-aarch64.c (+7-7) 
- (modified) clang/test/Preprocessor/init-arm.c (+16-16) 
- (modified) clang/test/Preprocessor/init-csky.c (+2-2) 
- (modified) clang/test/Preprocessor/init-loongarch.c (+4-4) 
- (modified) clang/test/Preprocessor/init-mips.c (+12-12) 
- (modified) clang/test/Preprocessor/init-ppc.c (+8-8) 
- (modified) clang/test/Preprocessor/init-ppc64.c (+8-8) 
- (modified) clang/test/Preprocessor/init-s390x.c (+2-2) 
- (modified) clang/test/Preprocessor/init-v7k-compat.c (+2-2) 
- (modified) clang/test/Preprocessor/init-ve.c (+2-2) 
- (modified) clang/test/Preprocessor/init-x86.c (+18-18) 
- (modified) clang/test/Preprocessor/init.c (+46-46) 
- (modified) clang/test/Preprocessor/woa-defaults.c (+2-2) 
- (modified) clang/test/Sema/warn-bad-function-cast.c (+5-2) 


``````````diff
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp 
b/clang/lib/Frontend/InitPreprocessor.cpp
index 4865c0b889044..5183afe6618b9 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -1175,13 +1175,15 @@ static void InitializePredefinedMacros(const TargetInfo 
&TI,
   Builder.defineMacro("__UINTMAX_C_SUFFIX__", ConstSuffix);
   Builder.defineMacro("__UINTMAX_C(c)",
                       ConstSuffix.size() ? Twine("c##") + ConstSuffix : "c");
-  DefineType("__PTRDIFF_TYPE__", TI.getPtrDiffType(LangAS::Default), Builder);
-  DefineFmt(LangOpts, "__PTRDIFF", TI.getPtrDiffType(LangAS::Default), TI,
-            Builder);
   DefineType("__INTPTR_TYPE__", TI.getIntPtrType(), Builder);
   DefineFmt(LangOpts, "__INTPTR", TI.getIntPtrType(), TI, Builder);
-  DefineType("__SIZE_TYPE__", TI.getSizeType(), Builder);
+  // Use deduction to obtain the built-in __size_t and __ptrdiff_t types 
instead
+  // of standard integer types
+  Builder.defineMacro("__SIZE_TYPE__", "__typeof(sizeof(0))");
   DefineFmt(LangOpts, "__SIZE", TI.getSizeType(), TI, Builder);
+  Builder.defineMacro("__PTRDIFF_TYPE__", "__typeof((int*)0-(int*)0)");
+  DefineFmt(LangOpts, "__PTRDIFF", TI.getPtrDiffType(LangAS::Default), TI,
+            Builder);
   DefineType("__WCHAR_TYPE__", TI.getWCharType(), Builder);
   DefineType("__WINT_TYPE__", TI.getWIntType(), Builder);
   DefineTypeSizeAndWidth("__SIG_ATOMIC", TI.getSigAtomicType(), TI, Builder);
diff --git a/clang/test/Preprocessor/init-aarch64.c 
b/clang/test/Preprocessor/init-aarch64.c
index 3036b496db25d..91e1e502e5256 100644
--- a/clang/test/Preprocessor/init-aarch64.c
+++ b/clang/test/Preprocessor/init-aarch64.c
@@ -255,7 +255,7 @@
 // AARCH64-NEXT: #define __PTRDIFF_FMTd__ "ld"
 // AARCH64-NEXT: #define __PTRDIFF_FMTi__ "li"
 // AARCH64-NEXT: #define __PTRDIFF_MAX__ 9223372036854775807L
-// AARCH64-NEXT: #define __PTRDIFF_TYPE__ long int
+// AARCH64-NEXT: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // AARCH64-NEXT: #define __PTRDIFF_WIDTH__ 64
 // AARCH64-NEXT: #define __SCHAR_MAX__ 127
 // AARCH64-NEXT: #define __SHRT_MAX__ 32767
@@ -280,7 +280,7 @@
 // AARCH64-NEXT: #define __SIZE_FMTu__ "lu"
 // AARCH64-NEXT: #define __SIZE_FMTx__ "lx"
 // AARCH64-NEXT: #define __SIZE_MAX__ 18446744073709551615UL
-// AARCH64-NEXT: #define __SIZE_TYPE__ long unsigned int
+// AARCH64-NEXT: #define __SIZE_TYPE__ __typeof(sizeof(0))
 // AARCH64-NEXT: #define __SIZE_WIDTH__ 64
 // AARCH64_CXX: #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL
 // AARCH64_CXX: #define __STDCPP_THREADS__ 1
@@ -531,7 +531,7 @@
 // AARCH64-DARWIN: #define __LONG_MAX__ 9223372036854775807L
 // AARCH64-DARWIN: #define __LP64__ 1
 // AARCH64-DARWIN: #define __POINTER_WIDTH__ 64
-// AARCH64-DARWIN: #define __PTRDIFF_TYPE__ long int
+// AARCH64-DARWIN: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // AARCH64-DARWIN: #define __PTRDIFF_WIDTH__ 64
 // AARCH64-DARWIN: #define __SCHAR_MAX__ 127
 // AARCH64-DARWIN: #define __SHRT_MAX__ 32767
@@ -551,7 +551,7 @@
 // AARCH64-DARWIN: #define __SIZEOF_WCHAR_T__ 4
 // AARCH64-DARWIN: #define __SIZEOF_WINT_T__ 4
 // AARCH64-DARWIN: #define __SIZE_MAX__ 18446744073709551615UL
-// AARCH64-DARWIN: #define __SIZE_TYPE__ long unsigned int
+// AARCH64-DARWIN: #define __SIZE_TYPE__ __typeof(sizeof(0))
 // AARCH64-DARWIN: #define __SIZE_WIDTH__ 64
 // AARCH64-DARWIN: #define __UINT16_C(c) c
 // AARCH64-DARWIN: #define __UINT16_C_SUFFIX__
@@ -716,7 +716,7 @@
 // AARCH64-MSVC: #define __SIZEOF_WCHAR_T__ 2
 // AARCH64-MSVC: #define __SIZEOF_WINT_T__ 2
 // AARCH64-MSVC: #define __SIZE_MAX__ 18446744073709551615ULL
-// AARCH64-MSVC: #define __SIZE_TYPE__ long long unsigned int
+// AARCH64-MSVC: #define __SIZE_TYPE__ __typeof(sizeof(0))
 // AARCH64-MSVC: #define __SIZE_WIDTH__ 64
 // AARCH64-MSVC: #define __STDC_HOSTED__ 0
 // AARCH64-MSVC: #define __STDC_UTF_16__ 1
@@ -1010,7 +1010,7 @@
 // ARM64EC-MSVC: #define __PTRDIFF_FMTd__ "lld"
 // ARM64EC-MSVC: #define __PTRDIFF_FMTi__ "lli"
 // ARM64EC-MSVC: #define __PTRDIFF_MAX__ 9223372036854775807LL
-// ARM64EC-MSVC: #define __PTRDIFF_TYPE__ long long int
+// ARM64EC-MSVC: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // ARM64EC-MSVC: #define __PTRDIFF_WIDTH__ 64
 // ARM64EC-MSVC: #define __SCHAR_MAX__ 127
 // ARM64EC-MSVC: #define __SHRT_MAX__ 32767
@@ -1035,7 +1035,7 @@
 // ARM64EC-MSVC: #define __SIZE_FMTu__ "llu"
 // ARM64EC-MSVC: #define __SIZE_FMTx__ "llx"
 // ARM64EC-MSVC: #define __SIZE_MAX__ 18446744073709551615ULL
-// ARM64EC-MSVC: #define __SIZE_TYPE__ long long unsigned int
+// ARM64EC-MSVC: #define __SIZE_TYPE__ __typeof(sizeof(0))
 // ARM64EC-MSVC: #define __SIZE_WIDTH__ 64
 // ARM64EC-MSVC: #define __STDC_HOSTED__ 0
 // ARM64EC-MSVC: #define __STDC_NO_THREADS__ 1
diff --git a/clang/test/Preprocessor/init-arm.c 
b/clang/test/Preprocessor/init-arm.c
index d2fcfe94bcd3d..50b199a38cbb0 100644
--- a/clang/test/Preprocessor/init-arm.c
+++ b/clang/test/Preprocessor/init-arm.c
@@ -133,7 +133,7 @@
 // ARM:#define __LONG_MAX__ 2147483647L
 // ARM-NOT:#define __LP64__
 // ARM:#define __POINTER_WIDTH__ 32
-// ARM:#define __PTRDIFF_TYPE__ int
+// ARM:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // ARM:#define __PTRDIFF_WIDTH__ 32
 // ARM:#define __REGISTER_PREFIX__
 // ARM:#define __SCHAR_MAX__ 127
@@ -153,7 +153,7 @@
 // ARM:#define __SIZEOF_WCHAR_T__ 4
 // ARM:#define __SIZEOF_WINT_T__ 4
 // ARM:#define __SIZE_MAX__ 4294967295U
-// ARM:#define __SIZE_TYPE__ unsigned int
+// ARM:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // ARM:#define __SIZE_WIDTH__ 32
 // ARM-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U
 // ARM:#define __UINT16_C(c) c
@@ -213,8 +213,8 @@
 
 // RUN: %clang_cc1 -dM -ffreestanding -triple arm-none-none -target-abi 
apcs-gnu -E /dev/null -o - | FileCheck -match-full-lines -check-prefix 
ARM-APCS-GNU %s
 // ARM-APCS-GNU: #define __INTPTR_TYPE__ int
-// ARM-APCS-GNU: #define __PTRDIFF_TYPE__ int
-// ARM-APCS-GNU: #define __SIZE_TYPE__ unsigned int
+// ARM-APCS-GNU: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
+// ARM-APCS-GNU: #define __SIZE_TYPE__ __typeof(sizeof(0))
 
 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=armeb-none-none < /dev/null | 
FileCheck -match-full-lines -check-prefix ARM-BE %s
 //
@@ -344,7 +344,7 @@
 // ARM-BE:#define __LONG_MAX__ 2147483647L
 // ARM-BE-NOT:#define __LP64__
 // ARM-BE:#define __POINTER_WIDTH__ 32
-// ARM-BE:#define __PTRDIFF_TYPE__ int
+// ARM-BE:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // ARM-BE:#define __PTRDIFF_WIDTH__ 32
 // ARM-BE:#define __REGISTER_PREFIX__
 // ARM-BE:#define __SCHAR_MAX__ 127
@@ -364,7 +364,7 @@
 // ARM-BE:#define __SIZEOF_WCHAR_T__ 4
 // ARM-BE:#define __SIZEOF_WINT_T__ 4
 // ARM-BE:#define __SIZE_MAX__ 4294967295U
-// ARM-BE:#define __SIZE_TYPE__ unsigned int
+// ARM-BE:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // ARM-BE:#define __SIZE_WIDTH__ 32
 // ARM-BE:#define __UINT16_C(c) c
 // ARM-BE:#define __UINT16_C_SUFFIX__
@@ -547,7 +547,7 @@
 // ARMEABISOFT:#define __LONG_MAX__ 2147483647L
 // ARMEABISOFT-NOT:#define __LP64__
 // ARMEABISOFT:#define __POINTER_WIDTH__ 32
-// ARMEABISOFT:#define __PTRDIFF_TYPE__ int
+// ARMEABISOFT:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // ARMEABISOFT:#define __PTRDIFF_WIDTH__ 32
 // ARMEABISOFT:#define __REGISTER_PREFIX__
 // ARMEABISOFT:#define __SCHAR_MAX__ 127
@@ -567,7 +567,7 @@
 // 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_TYPE__ __typeof(sizeof(0))
 // ARMEABISOFT:#define __SIZE_WIDTH__ 32
 // ARMEABISOFT:#define __SOFTFP__ 1
 // ARMEABISOFT:#define __UINT16_C(c) c
@@ -757,7 +757,7 @@
 // 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_TYPE__ __typeof((int*)0-(int*)0)
 // ARMEABISOFTFP_NOFP:#define __PTRDIFF_WIDTH__ 32
 // ARMEABISOFTFP_NOFP:#define __REGISTER_PREFIX__
 // ARMEABISOFTFP_NOFP:#define __SCHAR_MAX__ 127
@@ -777,7 +777,7 @@
 // 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_TYPE__ __typeof(sizeof(0))
 // ARMEABISOFTFP_NOFP:#define __SIZE_WIDTH__ 32
 // ARMEABISOFTFP_NOFP:#define __SOFTFP__ 1
 // ARMEABISOFTFP_NOFP:#define __UINT16_C(c) c
@@ -961,7 +961,7 @@
 // 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_TYPE__ __typeof((int*)0-(int*)0)
 // ARMEABISOFTFP_FP:#define __PTRDIFF_WIDTH__ 32
 // ARMEABISOFTFP_FP:#define __REGISTER_PREFIX__
 // ARMEABISOFTFP_FP:#define __SCHAR_MAX__ 127
@@ -981,7 +981,7 @@
 // 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_TYPE__ __typeof(sizeof(0))
 // ARMEABISOFTFP_FP:#define __SIZE_WIDTH__ 32
 // ARMEABISOFTFP_FP-NOT:#define __SOFTFP__ 1
 // ARMEABISOFTFP_FP:#define __UINT16_C(c) c
@@ -1165,7 +1165,7 @@
 // ARMEABIHARDFP:#define __LONG_MAX__ 2147483647L
 // ARMEABIHARDFP-NOT:#define __LP64__
 // ARMEABIHARDFP:#define __POINTER_WIDTH__ 32
-// ARMEABIHARDFP:#define __PTRDIFF_TYPE__ int
+// ARMEABIHARDFP:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // ARMEABIHARDFP:#define __PTRDIFF_WIDTH__ 32
 // ARMEABIHARDFP:#define __REGISTER_PREFIX__
 // ARMEABIHARDFP:#define __SCHAR_MAX__ 127
@@ -1185,7 +1185,7 @@
 // ARMEABIHARDFP:#define __SIZEOF_WCHAR_T__ 4
 // ARMEABIHARDFP:#define __SIZEOF_WINT_T__ 4
 // ARMEABIHARDFP:#define __SIZE_MAX__ 4294967295U
-// ARMEABIHARDFP:#define __SIZE_TYPE__ unsigned int
+// ARMEABIHARDFP:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // ARMEABIHARDFP:#define __SIZE_WIDTH__ 32
 // ARMEABIHARDFP-NOT:#define __SOFTFP__ 1
 // ARMEABIHARDFP:#define __UINT16_C(c) c
@@ -1367,7 +1367,7 @@
 // ARM-NETBSD:#define __LONG_MAX__ 2147483647L
 // ARM-NETBSD-NOT:#define __LP64__
 // ARM-NETBSD:#define __POINTER_WIDTH__ 32
-// ARM-NETBSD:#define __PTRDIFF_TYPE__ long int
+// ARM-NETBSD:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // ARM-NETBSD:#define __PTRDIFF_WIDTH__ 32
 // ARM-NETBSD:#define __REGISTER_PREFIX__
 // ARM-NETBSD:#define __SCHAR_MAX__ 127
@@ -1387,7 +1387,7 @@
 // ARM-NETBSD:#define __SIZEOF_WCHAR_T__ 4
 // ARM-NETBSD:#define __SIZEOF_WINT_T__ 4
 // ARM-NETBSD:#define __SIZE_MAX__ 4294967295UL
-// ARM-NETBSD:#define __SIZE_TYPE__ long unsigned int
+// ARM-NETBSD:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // ARM-NETBSD:#define __SIZE_WIDTH__ 32
 // ARM-NETBSD:#define __SOFTFP__ 1
 // ARM-NETBSD:#define __UINT16_C(c) c
diff --git a/clang/test/Preprocessor/init-csky.c 
b/clang/test/Preprocessor/init-csky.c
index 99c5ad1010edb..da0b11e055d1e 100644
--- a/clang/test/Preprocessor/init-csky.c
+++ b/clang/test/Preprocessor/init-csky.c
@@ -130,7 +130,7 @@
 // CSKY: #define __POINTER_WIDTH__ 32
 // CSKY: #define __PRAGMA_REDEFINE_EXTNAME 1
 // CSKY: #define __PTRDIFF_MAX__ 2147483647
-// CSKY: #define __PTRDIFF_TYPE__ int
+// CSKY: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // CSKY: #define __PTRDIFF_WIDTH__ 32
 // CSKY: #define __SCHAR_MAX__ 127
 // CSKY: #define __SHRT_MAX__ 32767
@@ -150,7 +150,7 @@
 // CSKY: #define __SIZEOF_WCHAR_T__ 4
 // CSKY: #define __SIZEOF_WINT_T__ 4
 // CSKY: #define __SIZE_MAX__ 4294967295U
-// CSKY: #define __SIZE_TYPE__ unsigned int
+// CSKY: #define __SIZE_TYPE__ __typeof(sizeof(0))
 // CSKY: #define __SIZE_WIDTH__ 32
 // CSKY: #define __STDC_HOSTED__ 0
 // CSKY: #define __STDC_UTF_16__ 1
diff --git a/clang/test/Preprocessor/init-loongarch.c 
b/clang/test/Preprocessor/init-loongarch.c
index 71a266b8a9157..9907a99166371 100644
--- a/clang/test/Preprocessor/init-loongarch.c
+++ b/clang/test/Preprocessor/init-loongarch.c
@@ -200,7 +200,7 @@
 // LA32: #define __PTRDIFF_FMTd__ "d"
 // LA32: #define __PTRDIFF_FMTi__ "i"
 // LA32: #define __PTRDIFF_MAX__ 2147483647
-// LA32: #define __PTRDIFF_TYPE__ int
+// LA32: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // LA32: #define __PTRDIFF_WIDTH__ 32
 // LA32: #define __SCHAR_MAX__ 127
 // LA32: #define __SHRT_MAX__ 32767
@@ -225,7 +225,7 @@
 // LA32: #define __SIZE_FMTu__ "u"
 // LA32: #define __SIZE_FMTx__ "x"
 // LA32: #define __SIZE_MAX__ 4294967295U
-// LA32: #define __SIZE_TYPE__ unsigned int
+// LA32: #define __SIZE_TYPE__ __typeof(sizeof(0))
 // LA32: #define __SIZE_WIDTH__ 32
 // LA32: #define __STDC_HOSTED__ 0
 // LA32: #define __STDC_UTF_16__ 1
@@ -532,7 +532,7 @@
 // LA64: #define __PTRDIFF_FMTd__ "ld"
 // LA64: #define __PTRDIFF_FMTi__ "li"
 // LA64: #define __PTRDIFF_MAX__ 9223372036854775807L
-// LA64: #define __PTRDIFF_TYPE__ long int
+// LA64: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // LA64: #define __PTRDIFF_WIDTH__ 64
 // LA64: #define __SCHAR_MAX__ 127
 // LA64: #define __SHRT_MAX__ 32767
@@ -557,7 +557,7 @@
 // LA64: #define __SIZE_FMTu__ "lu"
 // LA64: #define __SIZE_FMTx__ "lx"
 // LA64: #define __SIZE_MAX__ 18446744073709551615UL
-// LA64: #define __SIZE_TYPE__ long unsigned int
+// LA64: #define __SIZE_TYPE__ __typeof(sizeof(0))
 // LA64: #define __SIZE_WIDTH__ 64
 // LA64: #define __STDC_HOSTED__ 0
 // LA64: #define __STDC_UTF_16__ 1
diff --git a/clang/test/Preprocessor/init-mips.c 
b/clang/test/Preprocessor/init-mips.c
index 125872a001bac..46b25f07852f2 100644
--- a/clang/test/Preprocessor/init-mips.c
+++ b/clang/test/Preprocessor/init-mips.c
@@ -138,7 +138,7 @@
 // MIPS32BE:#define __MIPSEB__ 1
 // MIPS32BE:#define __POINTER_WIDTH__ 32
 // MIPS32BE:#define __PRAGMA_REDEFINE_EXTNAME 1
-// MIPS32BE:#define __PTRDIFF_TYPE__ int
+// MIPS32BE:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // MIPS32BE:#define __PTRDIFF_WIDTH__ 32
 // MIPS32BE:#define __REGISTER_PREFIX__
 // MIPS32BE:#define __SCHAR_MAX__ 127
@@ -158,7 +158,7 @@
 // MIPS32BE:#define __SIZEOF_WCHAR_T__ 4
 // MIPS32BE:#define __SIZEOF_WINT_T__ 4
 // MIPS32BE:#define __SIZE_MAX__ 4294967295U
-// MIPS32BE:#define __SIZE_TYPE__ unsigned int
+// MIPS32BE:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // MIPS32BE:#define __SIZE_WIDTH__ 32
 // MIPS32BE-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U
 // MIPS32BE:#define __STDC_HOSTED__ 0
@@ -359,7 +359,7 @@
 // MIPS32EL:#define __MIPSEL__ 1
 // MIPS32EL:#define __POINTER_WIDTH__ 32
 // MIPS32EL:#define __PRAGMA_REDEFINE_EXTNAME 1
-// MIPS32EL:#define __PTRDIFF_TYPE__ int
+// MIPS32EL:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // MIPS32EL:#define __PTRDIFF_WIDTH__ 32
 // MIPS32EL:#define __REGISTER_PREFIX__
 // MIPS32EL:#define __SCHAR_MAX__ 127
@@ -379,7 +379,7 @@
 // MIPS32EL:#define __SIZEOF_WCHAR_T__ 4
 // MIPS32EL:#define __SIZEOF_WINT_T__ 4
 // MIPS32EL:#define __SIZE_MAX__ 4294967295U
-// MIPS32EL:#define __SIZE_TYPE__ unsigned int
+// MIPS32EL:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // MIPS32EL:#define __SIZE_WIDTH__ 32
 // MIPS32EL:#define __UINT16_C(c) c
 // MIPS32EL:#define __UINT16_C_SUFFIX__
@@ -611,7 +611,7 @@
 // MIPSN32BE: #define __PTRDIFF_FMTd__ "d"
 // MIPSN32BE: #define __PTRDIFF_FMTi__ "i"
 // MIPSN32BE: #define __PTRDIFF_MAX__ 2147483647
-// MIPSN32BE: #define __PTRDIFF_TYPE__ int
+// MIPSN32BE: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // MIPSN32BE: #define __PTRDIFF_WIDTH__ 32
 // MIPSN32BE: #define __REGISTER_PREFIX__
 // MIPSN32BE: #define __SCHAR_MAX__ 127
@@ -635,7 +635,7 @@
 // MIPSN32BE: #define __SIZE_FMTu__ "u"
 // MIPSN32BE: #define __SIZE_FMTx__ "x"
 // MIPSN32BE: #define __SIZE_MAX__ 4294967295U
-// MIPSN32BE: #define __SIZE_TYPE__ unsigned int
+// MIPSN32BE: #define __SIZE_TYPE__ __typeof(sizeof(0))
 // MIPSN32BE: #define __SIZE_WIDTH__ 32
 // MIPSN32BE-CXX: #define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16U
 // MIPSN32BE: #define __STDC_HOSTED__ 0
@@ -929,7 +929,7 @@
 // MIPSN32EL: #define __PTRDIFF_FMTd__ "d"
 // MIPSN32EL: #define __PTRDIFF_FMTi__ "i"
 // MIPSN32EL: #define __PTRDIFF_MAX__ 2147483647
-// MIPSN32EL: #define __PTRDIFF_TYPE__ int
+// MIPSN32EL: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // MIPSN32EL: #define __PTRDIFF_WIDTH__ 32
 // MIPSN32EL: #define __REGISTER_PREFIX__
 // MIPSN32EL: #define __SCHAR_MAX__ 127
@@ -953,7 +953,7 @@
 // MIPSN32EL: #define __SIZE_FMTu__ "u"
 // MIPSN32EL: #define __SIZE_FMTx__ "x"
 // MIPSN32EL: #define __SIZE_MAX__ 4294967295U
-// MIPSN32EL: #define __SIZE_TYPE__ unsigned int
+// MIPSN32EL: #define __SIZE_TYPE__ __typeof(sizeof(0))
 // MIPSN32EL: #define __SIZE_WIDTH__ 32
 // MIPSN32EL: #define __STDC_HOSTED__ 0
 // MIPSN32EL: #define __STDC_UTF_16__ 1
@@ -1215,7 +1215,7 @@
 // MIPS64BE:#define __MIPSEB__ 1
 // MIPS64BE:#define __POINTER_WIDTH__ 64
 // MIPS64BE:#define __PRAGMA_REDEFINE_EXTNAME 1
-// MIPS64BE:#define __PTRDIFF_TYPE__ long int
+// MIPS64BE:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // MIPS64BE:#define __PTRDIFF_WIDTH__ 64
 // MIPS64BE:#define __REGISTER_PREFIX__
 // MIPS64BE:#define __SCHAR_MAX__ 127
@@ -1236,7 +1236,7 @@
 // MIPS64BE:#define __SIZEOF_WCHAR_T__ 4
 // MIPS64BE:#define __SIZEOF_WINT_T__ 4
 // MIPS64BE:#define __SIZE_MAX__ 18446744073709551615UL
-// MIPS64BE:#define __SIZE_TYPE__ long unsigned int
+// MIPS64BE:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // MIPS64BE:#define __SIZE_WIDTH__ 64
 // MIPS64BE-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL
 // MIPS64BE:#define __UINT16_C(c) c
@@ -1436,7 +1436,7 @@
 // MIPS64EL:#define __MIPSEL__ 1
 // MIPS64EL:#define __POINTER_WIDTH__ 64
 // MIPS64EL:#define __PRAGMA_REDEFINE_EXTNAME 1
-// MIPS64EL:#define __PTRDIFF_TYPE__ long int
+// MIPS64EL:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // MIPS64EL:#define __PTRDIFF_WIDTH__ 64
 // MIPS64EL:#define __REGISTER_PREFIX__
 // MIPS64EL:#define __SCHAR_MAX__ 127
@@ -1457,7 +1457,7 @@
 // MIPS64EL:#define __SIZEOF_WCHAR_T__ 4
 // MIPS64EL:#define __SIZEOF_WINT_T__ 4
 // MIPS64EL:#define __SIZE_MAX__ 18446744073709551615UL
-// MIPS64EL:#define __SIZE_TYPE__ long unsigned int
+// MIPS64EL:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // MIPS64EL:#define __SIZE_WIDTH__ 64
 // MIPS64EL:#define __UINT16_C(c) c
 // MIPS64EL:#define __UINT16_C_SUFFIX__
diff --git a/clang/test/Preprocessor/init-ppc.c 
b/clang/test/Preprocessor/init-ppc.c
index 6b7eceda9b97b..2f73133cf6bd9 100644
--- a/clang/test/Preprocessor/init-ppc.c
+++ b/clang/test/Preprocessor/init-ppc.c
@@ -132,7 +132,7 @@
 // PPC603E:#define __POINTER_WIDTH__ 32
 // PPC603E:#define __POWERPC__ 1
 // PPC603E:#define __PPC__ 1
-// PPC603E:#define __PTRDIFF_TYPE__ long int
+// PPC603E:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // PPC603E:#define __PTRDIFF_WIDTH__ 32
 // PPC603E:#define __REGISTER_PREFIX__
 // PPC603E:#define __SCHAR_MAX__ 127
@@ -152,7 +152,7 @@
 // PPC603E:#define __SIZEOF_WCHAR_T__ 4
 // PPC603E:#define __SIZEOF_WINT_T__ 4
 // PPC603E:#define __SIZE_MAX__ 4294967295UL
-// PPC603E:#define __SIZE_TYPE__ long unsigned int
+// PPC603E:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // PPC603E:#define __SIZE_WIDTH__ 32
 // PPC603E-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL
 // PPC603E:#define __UINT16_C(c) c
@@ -337,7 +337,7 @@
 // PPC:#define __POWERPC__ 1
 // PPC-NOT:#define __PPC 1
 // PPC:#define __PPC__ 1
-// PPC:#define __PTRDIFF_TYPE__ long int
+// PPC:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // PPC:#define __PTRDIFF_WIDTH__ 32
 // PPC:#define __REGISTER_PREFIX__
 // PPC:#define __SCHAR_MAX__ 127
@@ -357,7 +357,7 @@
 // PPC:#define __SIZEOF_WCHAR_T__ 4
 // PPC:#define __SIZEOF_WINT_T__ 4
 // PPC:#define __SIZE_MAX__ 4294967295UL
-// PPC:#define __SIZE_TYPE__ long unsigned int
+// PPC:#define __SIZE_TYPE__ __typeof(sizeof(0))
 // PPC:#define __SIZE_WIDTH__ 32
 // PPC:#define __UINT16_C(c) c
 // PPC:#define __UINT16_C_SUFFIX__
@@ -546,7 +546,7 @@
 // PPC-AIX:#define __POWERPC__ 1
 // PPC-AIX:#define __PPC 1
 // PPC-AIX:#define __PPC__ 1
-// PPC-AIX:#define __PTRDIFF_TYPE__ long int
+// PPC-AIX:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0)
 // PPC-AIX:#define __PTRDIFF_WIDTH__ 32
 // PPC-AIX:#define __REGISTER_PREFIX__
 // PPC-AIX:#define __SCHAR_MAX__ 127
@@ -566,7 +566,...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/155979
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to