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/AST/ast-dump-types-json.cpp b/clang/test/AST/ast-dump-types-json.cpp index aac602780e8c0..e9fc3b3881801 100644 --- a/clang/test/AST/ast-dump-types-json.cpp +++ b/clang/test/AST/ast-dump-types-json.cpp @@ -25,6 +25,14 @@ namespace TestNamespaceWithUsingShadowType { using ::TestUsingShadowDeclType; } +typedef __SIZE_TYPE__ macro_size_t; +typedef __PTRDIFF_TYPE__ macro_ptrdiff_t; +typedef __typeof__(sizeof(0)) typeof_size_t; +typedef __typeof__((int*)0 - (int*)0) typeof_ptrdiff_t; + +typedef __typeof__((macro_size_t)0 + (typeof_size_t)0) Test_common_sugar_size_t; +typedef __typeof__((macro_ptrdiff_t)0 + (typeof_ptrdiff_t)0) Test_common_sugar_ptrdiff_t; + // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py @@ -557,3 +565,497 @@ using ::TestUsingShadowDeclType; // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 847, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 56, +// CHECK-NEXT: "tokLen": 24 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 792, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 847, +// CHECK-NEXT: "col": 56, +// CHECK-NEXT: "tokLen": 24 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test_common_sugar_size_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "typeof ((macro_size_t)0 + (typeof_size_t)0)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypeOfExprType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "typeof ((macro_size_t)0 + (typeof_size_t)0)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 810, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 845, +// CHECK-NEXT: "col": 54, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 811, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 844, +// CHECK-NEXT: "col": 53, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 811, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 825, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "macro_size_t", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 825, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 825, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "macro_size_t", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "isPartOfExplicitCast": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 825, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 825, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 829, +// CHECK-NEXT: "col": 38, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 844, +// CHECK-NEXT: "col": 53, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "typeof_size_t", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 844, +// CHECK-NEXT: "col": 53, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 844, +// CHECK-NEXT: "col": 53, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "typeof_size_t", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "isPartOfExplicitCast": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 844, +// CHECK-NEXT: "col": 53, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 844, +// CHECK-NEXT: "col": 53, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PredefinedSugarType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned long" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 934, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 62, +// CHECK-NEXT: "tokLen": 27 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 873, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 934, +// CHECK-NEXT: "col": 62, +// CHECK-NEXT: "tokLen": 27 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test_common_sugar_ptrdiff_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "typeof ((macro_ptrdiff_t)0 + (typeof_ptrdiff_t)0)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypeOfExprType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "typeof ((macro_ptrdiff_t)0 + (typeof_ptrdiff_t)0)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 891, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 932, +// CHECK-NEXT: "col": 60, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "__ptrdiff_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 892, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 931, +// CHECK-NEXT: "col": 59, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "__ptrdiff_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 892, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 909, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "macro_ptrdiff_t", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 909, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 909, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "macro_ptrdiff_t", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "isPartOfExplicitCast": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 909, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 909, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 913, +// CHECK-NEXT: "col": 41, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 931, +// CHECK-NEXT: "col": 59, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "typeof_ptrdiff_t", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 931, +// CHECK-NEXT: "col": 59, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 931, +// CHECK-NEXT: "col": 59, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "typeof_ptrdiff_t", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "isPartOfExplicitCast": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 931, +// CHECK-NEXT: "col": 59, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 931, +// CHECK-NEXT: "col": 59, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PredefinedSugarType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__ptrdiff_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "long" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/Analysis/std-c-library-functions-arg-constraints.c b/clang/test/Analysis/std-c-library-functions-arg-constraints.c index 0b817dda98c72..4d07b8e220125 100644 --- a/clang/test/Analysis/std-c-library-functions-arg-constraints.c +++ b/clang/test/Analysis/std-c-library-functions-arg-constraints.c @@ -323,7 +323,8 @@ void test_buf_size_concrete_with_multiplication(void) { void test_buf_size_symbolic_with_multiplication(size_t s) { short buf[3]; __buf_size_arg_constraint_mul(buf, s, sizeof(short)); - clang_analyzer_eval(s * sizeof(short) <= 6); // \ + // FIXME: remove the conversion to unsigned long will cause the test to fail. + clang_analyzer_eval((unsigned long)s * sizeof(short) <= 6); // \ // report-warning{{TRUE}} \ // bugpath-warning{{TRUE}} \ // bugpath-note{{TRUE}} @@ -331,7 +332,8 @@ void test_buf_size_symbolic_with_multiplication(size_t s) { void test_buf_size_symbolic_and_offset_with_multiplication(size_t s) { short buf[3]; __buf_size_arg_constraint_mul(buf + 1, s, sizeof(short)); - clang_analyzer_eval(s * sizeof(short) <= 4); // \ + // FIXME: remove the conversion to unsigned long will cause the test to fail. + clang_analyzer_eval((unsigned long)s * sizeof(short) <= 4); // \ // report-warning{{TRUE}} \ // bugpath-warning{{TRUE}} \ // bugpath-note{{TRUE}} 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,7 @@ // PPC-AIX:#define __SIZEOF_WCHAR_T__ 2 // PPC-AIX:#define __SIZEOF_WINT_T__ 4 // PPC-AIX:#define __SIZE_MAX__ 4294967295UL -// PPC-AIX:#define __SIZE_TYPE__ long unsigned int +// PPC-AIX:#define __SIZE_TYPE__ __typeof(sizeof(0)) // PPC-AIX:#define __SIZE_WIDTH__ 32 // PPC-AIX:#define __THW_BIG_ENDIAN__ 1 // PPC-AIX:#define __THW_PPC__ 1 @@ -928,7 +928,7 @@ // PPC-LINUX:#define __POINTER_WIDTH__ 32 // PPC-LINUX:#define __POWERPC__ 1 // PPC-LINUX:#define __PPC__ 1 -// PPC-LINUX:#define __PTRDIFF_TYPE__ int +// PPC-LINUX:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // PPC-LINUX:#define __PTRDIFF_WIDTH__ 32 // PPC-LINUX:#define __REGISTER_PREFIX__ // PPC-LINUX:#define __SCHAR_MAX__ 127 @@ -948,7 +948,7 @@ // PPC-LINUX:#define __SIZEOF_WCHAR_T__ 4 // PPC-LINUX:#define __SIZEOF_WINT_T__ 4 // PPC-LINUX:#define __SIZE_MAX__ 4294967295U -// PPC-LINUX:#define __SIZE_TYPE__ unsigned int +// PPC-LINUX:#define __SIZE_TYPE__ __typeof(sizeof(0)) // PPC-LINUX:#define __SIZE_WIDTH__ 32 // PPC-LINUX:#define __UINT16_C(c) c // PPC-LINUX:#define __UINT16_C_SUFFIX__ diff --git a/clang/test/Preprocessor/init-ppc64.c b/clang/test/Preprocessor/init-ppc64.c index 7dffd4627481b..f1f7307f7653c 100644 --- a/clang/test/Preprocessor/init-ppc64.c +++ b/clang/test/Preprocessor/init-ppc64.c @@ -139,7 +139,7 @@ // PPC64:#define __POWERPC__ 1 // PPC64:#define __PPC64__ 1 // PPC64:#define __PPC__ 1 -// PPC64:#define __PTRDIFF_TYPE__ long int +// PPC64:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // PPC64:#define __PTRDIFF_WIDTH__ 64 // PPC64:#define __REGISTER_PREFIX__ // PPC64:#define __SCHAR_MAX__ 127 @@ -159,7 +159,7 @@ // PPC64:#define __SIZEOF_WCHAR_T__ 4 // PPC64:#define __SIZEOF_WINT_T__ 4 // PPC64:#define __SIZE_MAX__ 18446744073709551615UL -// PPC64:#define __SIZE_TYPE__ long unsigned int +// PPC64:#define __SIZE_TYPE__ __typeof(sizeof(0)) // PPC64:#define __SIZE_WIDTH__ 64 // PPC64-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL // PPC64:#define __UINT16_C(c) c @@ -353,7 +353,7 @@ // PPC64LE:#define __POWERPC__ 1 // PPC64LE:#define __PPC64__ 1 // PPC64LE:#define __PPC__ 1 -// PPC64LE:#define __PTRDIFF_TYPE__ long int +// PPC64LE:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // PPC64LE:#define __PTRDIFF_WIDTH__ 64 // PPC64LE:#define __REGISTER_PREFIX__ // PPC64LE:#define __SCHAR_MAX__ 127 @@ -373,7 +373,7 @@ // PPC64LE:#define __SIZEOF_WCHAR_T__ 4 // PPC64LE:#define __SIZEOF_WINT_T__ 4 // PPC64LE:#define __SIZE_MAX__ 18446744073709551615UL -// PPC64LE:#define __SIZE_TYPE__ long unsigned int +// PPC64LE:#define __SIZE_TYPE__ __typeof(sizeof(0)) // PPC64LE:#define __SIZE_WIDTH__ 64 // PPC64LE:#define __STRUCT_PARM_ALIGN__ 16 // PPC64LE:#define __UINT16_C(c) c @@ -844,7 +844,7 @@ // PPC64-AIX:#define __POWERPC__ 1 // PPC64-AIX:#define __PPC64__ 1 // PPC64-AIX:#define __PPC__ 1 -// PPC64-AIX:#define __PTRDIFF_TYPE__ long int +// PPC64-AIX:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // PPC64-AIX:#define __PTRDIFF_WIDTH__ 64 // PPC64-AIX:#define __REGISTER_PREFIX__ // PPC64-AIX:#define __SCHAR_MAX__ 127 @@ -865,7 +865,7 @@ // PPC64-AIX:#define __SIZEOF_WCHAR_T__ 4 // PPC64-AIX:#define __SIZEOF_WINT_T__ 4 // PPC64-AIX:#define __SIZE_MAX__ 18446744073709551615UL -// PPC64-AIX:#define __SIZE_TYPE__ long unsigned int +// PPC64-AIX:#define __SIZE_TYPE__ __typeof(sizeof(0)) // PPC64-AIX:#define __SIZE_WIDTH__ 64 // PPC64-AIX:#define __UINT16_C(c) c // PPC64-AIX:#define __UINT16_C_SUFFIX__ @@ -1052,7 +1052,7 @@ // PPC64-LINUX:#define __POWERPC__ 1 // PPC64-LINUX:#define __PPC64__ 1 // PPC64-LINUX:#define __PPC__ 1 -// PPC64-LINUX:#define __PTRDIFF_TYPE__ long int +// PPC64-LINUX:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // PPC64-LINUX:#define __PTRDIFF_WIDTH__ 64 // PPC64-LINUX:#define __REGISTER_PREFIX__ // PPC64-LINUX:#define __SCHAR_MAX__ 127 @@ -1072,7 +1072,7 @@ // PPC64-LINUX:#define __SIZEOF_WCHAR_T__ 4 // PPC64-LINUX:#define __SIZEOF_WINT_T__ 4 // PPC64-LINUX:#define __SIZE_MAX__ 18446744073709551615UL -// PPC64-LINUX:#define __SIZE_TYPE__ long unsigned int +// PPC64-LINUX:#define __SIZE_TYPE__ __typeof(sizeof(0)) // PPC64-LINUX:#define __SIZE_WIDTH__ 64 // PPC64-LINUX:#define __UINT16_C(c) c // PPC64-LINUX:#define __UINT16_C_SUFFIX__ diff --git a/clang/test/Preprocessor/init-s390x.c b/clang/test/Preprocessor/init-s390x.c index a8fbde46cbb75..4f5f299fa2d0a 100644 --- a/clang/test/Preprocessor/init-s390x.c +++ b/clang/test/Preprocessor/init-s390x.c @@ -120,7 +120,7 @@ // S390X:#define __LONG_MAX__ 9223372036854775807L // S390X:#define __NO_INLINE__ 1 // S390X:#define __POINTER_WIDTH__ 64 -// S390X:#define __PTRDIFF_TYPE__ long int +// S390X:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // S390X:#define __PTRDIFF_WIDTH__ 64 // S390X:#define __SCHAR_MAX__ 127 // S390X:#define __SHRT_MAX__ 32767 @@ -138,7 +138,7 @@ // 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_TYPE__ __typeof(sizeof(0)) // S390X:#define __SIZE_WIDTH__ 64 // S390X-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8UL // S390X:#define __UINT16_C(c) c diff --git a/clang/test/Preprocessor/init-v7k-compat.c b/clang/test/Preprocessor/init-v7k-compat.c index a9c6e7a290646..697f31589c614 100644 --- a/clang/test/Preprocessor/init-v7k-compat.c +++ b/clang/test/Preprocessor/init-v7k-compat.c @@ -124,7 +124,7 @@ // CHECK: #define __LONG_LONG_MAX__ 9223372036854775807LL // CHECK: #define __LONG_MAX__ 2147483647L // CHECK: #define __POINTER_WIDTH__ 32 -// CHECK: #define __PTRDIFF_TYPE__ long int +// CHECK: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // CHECK: #define __PTRDIFF_WIDTH__ 32 // CHECK: #define __SCHAR_MAX__ 127 // CHECK: #define __SHRT_MAX__ 32767 @@ -143,7 +143,7 @@ // CHECK: #define __SIZEOF_WCHAR_T__ 4 // CHECK: #define __SIZEOF_WINT_T__ 4 // CHECK: #define __SIZE_MAX__ 4294967295UL -// CHECK: #define __SIZE_TYPE__ long unsigned int +// CHECK: #define __SIZE_TYPE__ __typeof(sizeof(0)) // CHECK: #define __SIZE_WIDTH__ 32 // CHECK: #define __UINT16_C(c) c // CHECK: #define __UINT16_C_SUFFIX__ {{$}} diff --git a/clang/test/Preprocessor/init-ve.c b/clang/test/Preprocessor/init-ve.c index 711c2a04865b3..99ed2f9292cd8 100644 --- a/clang/test/Preprocessor/init-ve.c +++ b/clang/test/Preprocessor/init-ve.c @@ -140,7 +140,7 @@ // VE:#define __PTRDIFF_FMTd__ "ld" // VE:#define __PTRDIFF_FMTi__ "li" // VE:#define __PTRDIFF_MAX__ 9223372036854775807L -// VE:#define __PTRDIFF_TYPE__ long int +// VE:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // VE:#define __PTRDIFF_WIDTH__ 64 // VE:#define __SCHAR_MAX__ 127 // VE:#define __SHRT_MAX__ 32767 @@ -164,7 +164,7 @@ // VE:#define __SIZE_FMTu__ "lu" // VE:#define __SIZE_FMTx__ "lx" // VE:#define __SIZE_MAX__ 18446744073709551615UL -// VE:#define __SIZE_TYPE__ long unsigned int +// VE:#define __SIZE_TYPE__ __typeof(sizeof(0)) // VE:#define __SIZE_WIDTH__ 64 // VE-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL // VE-HOSTED:#define __STDC_HOSTED__ 1 diff --git a/clang/test/Preprocessor/init-x86.c b/clang/test/Preprocessor/init-x86.c index f5fd976b3db73..b1a9082b36e4b 100644 --- a/clang/test/Preprocessor/init-x86.c +++ b/clang/test/Preprocessor/init-x86.c @@ -123,7 +123,7 @@ // I386-NOT:#define __LP64__ // I386:#define __NO_MATH_INLINES 1 // I386:#define __POINTER_WIDTH__ 32 -// I386:#define __PTRDIFF_TYPE__ int +// I386:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // I386:#define __PTRDIFF_WIDTH__ 32 // I386:#define __REGISTER_PREFIX__ // I386:#define __SCHAR_MAX__ 127 @@ -143,7 +143,7 @@ // I386:#define __SIZEOF_WCHAR_T__ 4 // I386:#define __SIZEOF_WINT_T__ 4 // I386:#define __SIZE_MAX__ 4294967295U -// I386:#define __SIZE_TYPE__ unsigned int +// I386:#define __SIZE_TYPE__ __typeof(sizeof(0)) // I386:#define __SIZE_WIDTH__ 32 // I386:#define __UINT16_C(c) c // I386:#define __UINT16_C_SUFFIX__ @@ -333,7 +333,7 @@ // I386-LINUX-NOT:#define __LP64__ // I386-LINUX:#define __NO_MATH_INLINES 1 // I386-LINUX:#define __POINTER_WIDTH__ 32 -// I386-LINUX:#define __PTRDIFF_TYPE__ int +// I386-LINUX:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // I386-LINUX:#define __PTRDIFF_WIDTH__ 32 // I386-LINUX:#define __REGISTER_PREFIX__ // I386-LINUX:#define __SCHAR_MAX__ 127 @@ -353,7 +353,7 @@ // I386-LINUX:#define __SIZEOF_WCHAR_T__ 4 // I386-LINUX:#define __SIZEOF_WINT_T__ 4 // I386-LINUX:#define __SIZE_MAX__ 4294967295U -// I386-LINUX:#define __SIZE_TYPE__ unsigned int +// I386-LINUX:#define __SIZE_TYPE__ __typeof(sizeof(0)) // I386-LINUX:#define __SIZE_WIDTH__ 32 // I386-LINUX-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U // I386-LINUX:#define __UINT16_C(c) c @@ -544,7 +544,7 @@ // I386-NETBSD-NOT:#define __LP64__ // I386-NETBSD:#define __NO_MATH_INLINES 1 // I386-NETBSD:#define __POINTER_WIDTH__ 32 -// I386-NETBSD:#define __PTRDIFF_TYPE__ int +// I386-NETBSD:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // I386-NETBSD:#define __PTRDIFF_WIDTH__ 32 // I386-NETBSD:#define __REGISTER_PREFIX__ // I386-NETBSD:#define __SCHAR_MAX__ 127 @@ -564,7 +564,7 @@ // I386-NETBSD:#define __SIZEOF_WCHAR_T__ 4 // I386-NETBSD:#define __SIZEOF_WINT_T__ 4 // I386-NETBSD:#define __SIZE_MAX__ 4294967295U -// I386-NETBSD:#define __SIZE_TYPE__ unsigned int +// I386-NETBSD:#define __SIZE_TYPE__ __typeof(sizeof(0)) // I386-NETBSD:#define __SIZE_WIDTH__ 32 // I386-NETBSD-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 4U // I386-NETBSD:#define __UINT16_C(c) c @@ -756,7 +756,7 @@ // X86_64:#define __MMX__ 1 // X86_64:#define __NO_MATH_INLINES 1 // X86_64:#define __POINTER_WIDTH__ 64 -// X86_64:#define __PTRDIFF_TYPE__ long int +// X86_64:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // X86_64:#define __PTRDIFF_WIDTH__ 64 // X86_64:#define __REGISTER_PREFIX__ // X86_64:#define __SCHAR_MAX__ 127 @@ -776,7 +776,7 @@ // X86_64:#define __SIZEOF_WCHAR_T__ 4 // X86_64:#define __SIZEOF_WINT_T__ 4 // X86_64:#define __SIZE_MAX__ 18446744073709551615UL -// X86_64:#define __SIZE_TYPE__ long unsigned int +// X86_64:#define __SIZE_TYPE__ __typeof(sizeof(0)) // X86_64:#define __SIZE_WIDTH__ 64 // X86_64:#define __SSE2_MATH__ 1 // X86_64:#define __SSE2__ 1 @@ -970,7 +970,7 @@ // X32:#define __MMX__ 1 // X32:#define __NO_MATH_INLINES 1 // X32:#define __POINTER_WIDTH__ 32 -// X32:#define __PTRDIFF_TYPE__ int +// X32:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // X32:#define __PTRDIFF_WIDTH__ 32 // X32:#define __REGISTER_PREFIX__ // X32:#define __SCHAR_MAX__ 127 @@ -990,7 +990,7 @@ // X32:#define __SIZEOF_WCHAR_T__ 4 // X32:#define __SIZEOF_WINT_T__ 4 // X32:#define __SIZE_MAX__ 4294967295U -// X32:#define __SIZE_TYPE__ unsigned int +// X32:#define __SIZE_TYPE__ __typeof(sizeof(0)) // X32:#define __SIZE_WIDTH__ 32 // X32:#define __SSE2_MATH__ 1 // X32:#define __SSE2__ 1 @@ -1185,7 +1185,7 @@ // X86_64-LINUX:#define __MMX__ 1 // X86_64-LINUX:#define __NO_MATH_INLINES 1 // X86_64-LINUX:#define __POINTER_WIDTH__ 64 -// X86_64-LINUX:#define __PTRDIFF_TYPE__ long int +// X86_64-LINUX:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // X86_64-LINUX:#define __PTRDIFF_WIDTH__ 64 // X86_64-LINUX:#define __REGISTER_PREFIX__ // X86_64-LINUX:#define __SCHAR_MAX__ 127 @@ -1205,7 +1205,7 @@ // X86_64-LINUX:#define __SIZEOF_WCHAR_T__ 4 // X86_64-LINUX:#define __SIZEOF_WINT_T__ 4 // X86_64-LINUX:#define __SIZE_MAX__ 18446744073709551615UL -// X86_64-LINUX:#define __SIZE_TYPE__ long unsigned int +// X86_64-LINUX:#define __SIZE_TYPE__ __typeof(sizeof(0)) // X86_64-LINUX:#define __SIZE_WIDTH__ 64 // X86_64-LINUX:#define __SSE2_MATH__ 1 // X86_64-LINUX:#define __SSE2__ 1 @@ -1407,7 +1407,7 @@ // X86_64-NETBSD:#define __MMX__ 1 // X86_64-NETBSD:#define __NO_MATH_INLINES 1 // X86_64-NETBSD:#define __POINTER_WIDTH__ 64 -// X86_64-NETBSD:#define __PTRDIFF_TYPE__ long int +// X86_64-NETBSD:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // X86_64-NETBSD:#define __PTRDIFF_WIDTH__ 64 // X86_64-NETBSD:#define __REGISTER_PREFIX__ // X86_64-NETBSD:#define __SCHAR_MAX__ 127 @@ -1427,7 +1427,7 @@ // X86_64-NETBSD:#define __SIZEOF_WCHAR_T__ 4 // X86_64-NETBSD:#define __SIZEOF_WINT_T__ 4 // X86_64-NETBSD:#define __SIZE_MAX__ 18446744073709551615UL -// X86_64-NETBSD:#define __SIZE_TYPE__ long unsigned int +// X86_64-NETBSD:#define __SIZE_TYPE__ __typeof(sizeof(0)) // X86_64-NETBSD:#define __SIZE_WIDTH__ 64 // X86_64-NETBSD:#define __SSE2_MATH__ 1 // X86_64-NETBSD:#define __SSE2__ 1 @@ -1625,7 +1625,7 @@ // I386-CYGWIN-NOT:#define __LP64__ // I386-CYGWIN:#define __NO_MATH_INLINES 1 // I386-CYGWIN:#define __POINTER_WIDTH__ 32 -// I386-CYGWIN:#define __PTRDIFF_TYPE__ int +// I386-CYGWIN:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // I386-CYGWIN:#define __PTRDIFF_WIDTH__ 32 // I386-CYGWIN:#define __REGISTER_PREFIX__ // I386-CYGWIN:#define __SCHAR_MAX__ 127 @@ -1645,7 +1645,7 @@ // I386-CYGWIN:#define __SIZEOF_WCHAR_T__ 2 // I386-CYGWIN:#define __SIZEOF_WINT_T__ 4 // I386-CYGWIN:#define __SIZE_MAX__ 4294967295U -// I386-CYGWIN:#define __SIZE_TYPE__ unsigned int +// I386-CYGWIN:#define __SIZE_TYPE__ __typeof(sizeof(0)) // I386-CYGWIN:#define __SIZE_WIDTH__ 32 // I386-CYGWIN:#define __UINT16_C(c) c // I386-CYGWIN:#define __UINT16_C_SUFFIX__ @@ -1837,7 +1837,7 @@ // X86_64-CYGWIN:#define __MMX__ 1 // X86_64-CYGWIN:#define __NO_MATH_INLINES 1 // X86_64-CYGWIN:#define __POINTER_WIDTH__ 64 -// X86_64-CYGWIN:#define __PTRDIFF_TYPE__ long int +// X86_64-CYGWIN:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // X86_64-CYGWIN:#define __PTRDIFF_WIDTH__ 64 // X86_64-CYGWIN:#define __REGISTER_PREFIX__ // X86_64-CYGWIN:#define __SCHAR_MAX__ 127 @@ -1857,7 +1857,7 @@ // X86_64-CYGWIN:#define __SIZEOF_WCHAR_T__ 2 // X86_64-CYGWIN:#define __SIZEOF_WINT_T__ 4 // X86_64-CYGWIN:#define __SIZE_MAX__ 18446744073709551615UL -// X86_64-CYGWIN:#define __SIZE_TYPE__ long unsigned int +// X86_64-CYGWIN:#define __SIZE_TYPE__ __typeof(sizeof(0)) // X86_64-CYGWIN:#define __SIZE_WIDTH__ 64 // X86_64-CYGWIN:#define __SSE2_MATH__ 1 // X86_64-CYGWIN:#define __SSE2__ 1 diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index 7e0df96141364..cca0f71a12d8f 100644 --- a/clang/test/Preprocessor/init.c +++ b/clang/test/Preprocessor/init.c @@ -514,7 +514,7 @@ // MSP430-NOT:#define __LP64__ // MSP430:#define __MSP430__ 1 // MSP430:#define __POINTER_WIDTH__ 16 -// MSP430:#define __PTRDIFF_TYPE__ int +// MSP430:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // MSP430:#define __PTRDIFF_WIDTH__ 16 // MSP430:#define __SCHAR_MAX__ 127 // MSP430:#define __SHRT_MAX__ 32767 @@ -533,7 +533,7 @@ // MSP430:#define __SIZEOF_WCHAR_T__ 2 // MSP430:#define __SIZEOF_WINT_T__ 2 // MSP430:#define __SIZE_MAX__ 65535U -// MSP430:#define __SIZE_TYPE__ unsigned int +// MSP430:#define __SIZE_TYPE__ __typeof(sizeof(0)) // MSP430:#define __SIZE_WIDTH__ 16 // MSP430-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 2U // MSP430:#define __UINT16_C(c) c##U @@ -712,7 +712,7 @@ // NVPTX32:#define __NVPTX__ 1 // NVPTX32:#define __POINTER_WIDTH__ 32 // NVPTX32:#define __PRAGMA_REDEFINE_EXTNAME 1 -// NVPTX32:#define __PTRDIFF_TYPE__ int +// NVPTX32:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // NVPTX32:#define __PTRDIFF_WIDTH__ 32 // NVPTX32:#define __PTX__ 1 // NVPTX32:#define __SCHAR_MAX__ 127 @@ -732,7 +732,7 @@ // NVPTX32:#define __SIZEOF_WCHAR_T__ 4 // NVPTX32:#define __SIZEOF_WINT_T__ 4 // NVPTX32:#define __SIZE_MAX__ 4294967295U -// NVPTX32:#define __SIZE_TYPE__ unsigned int +// NVPTX32:#define __SIZE_TYPE__ __typeof(sizeof(0)) // NVPTX32:#define __SIZE_WIDTH__ 32 // NVPTX32-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U // NVPTX32:#define __UINT16_C(c) c @@ -910,7 +910,7 @@ // NVPTX64:#define __NVPTX__ 1 // NVPTX64:#define __POINTER_WIDTH__ 64 // NVPTX64:#define __PRAGMA_REDEFINE_EXTNAME 1 -// NVPTX64:#define __PTRDIFF_TYPE__ long int +// NVPTX64:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // NVPTX64:#define __PTRDIFF_WIDTH__ 64 // NVPTX64:#define __PTX__ 1 // NVPTX64:#define __SCHAR_MAX__ 127 @@ -930,7 +930,7 @@ // NVPTX64:#define __SIZEOF_WCHAR_T__ 4 // NVPTX64:#define __SIZEOF_WINT_T__ 4 // NVPTX64:#define __SIZE_MAX__ 18446744073709551615UL -// NVPTX64:#define __SIZE_TYPE__ long unsigned int +// NVPTX64:#define __SIZE_TYPE__ __typeof(sizeof(0)) // NVPTX64:#define __SIZE_WIDTH__ 64 // NVPTX64-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8UL // NVPTX64:#define __UINT16_C(c) c @@ -1123,8 +1123,8 @@ // SPARC:#define __LONG_MAX__ 2147483647L // SPARC-NOT:#define __LP64__ // SPARC:#define __POINTER_WIDTH__ 32 -// SPARC-DEFAULT:#define __PTRDIFF_TYPE__ int -// SPARC-NETOPENBSD:#define __PTRDIFF_TYPE__ long int +// SPARC-DEFAULT:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// SPARC-NETOPENBSD:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // SPARC:#define __PTRDIFF_WIDTH__ 32 // SPARC:#define __REGISTER_PREFIX__ // SPARC:#define __SCHAR_MAX__ 127 @@ -1144,9 +1144,9 @@ // SPARC:#define __SIZEOF_WCHAR_T__ 4 // SPARC:#define __SIZEOF_WINT_T__ 4 // SPARC-DEFAULT:#define __SIZE_MAX__ 4294967295U -// SPARC-DEFAULT:#define __SIZE_TYPE__ unsigned int +// SPARC-DEFAULT:#define __SIZE_TYPE__ __typeof(sizeof(0)) // SPARC-NETOPENBSD:#define __SIZE_MAX__ 4294967295UL -// SPARC-NETOPENBSD:#define __SIZE_TYPE__ long unsigned int +// SPARC-NETOPENBSD:#define __SIZE_TYPE__ __typeof(sizeof(0)) // SPARC:#define __SIZE_WIDTH__ 32 // SPARC-DEFAULT-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U // SPARC:#define __UINT16_C(c) c @@ -1313,7 +1313,7 @@ // TCE:#define __LONG_MAX__ 2147483647L // TCE-NOT:#define __LP64__ // TCE:#define __POINTER_WIDTH__ 32 -// TCE:#define __PTRDIFF_TYPE__ int +// TCE:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // TCE:#define __PTRDIFF_WIDTH__ 32 // TCE:#define __SCHAR_MAX__ 127 // TCE:#define __SHRT_MAX__ 32767 @@ -1332,7 +1332,7 @@ // TCE:#define __SIZEOF_WCHAR_T__ 4 // TCE:#define __SIZEOF_WINT_T__ 4 // TCE:#define __SIZE_MAX__ 4294967295U -// TCE:#define __SIZE_TYPE__ unsigned int +// TCE:#define __SIZE_TYPE__ __typeof(sizeof(0)) // TCE:#define __SIZE_WIDTH__ 32 // TCE-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 4U // TCE:#define __TCE_V1__ 1 @@ -1455,7 +1455,7 @@ // PS4:#define __POINTER_WIDTH__ 64 // PS5ONLY:#define __PROSPERO__ 1 // PS4:#define __PTRDIFF_MAX__ 9223372036854775807L -// PS4:#define __PTRDIFF_TYPE__ long int +// PS4:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // PS4:#define __PTRDIFF_WIDTH__ 64 // PS4:#define __REGISTER_PREFIX__ // PS4:#define __SCE__ 1 @@ -1475,7 +1475,7 @@ // PS4:#define __SIZEOF_SIZE_T__ 8 // PS4:#define __SIZEOF_WCHAR_T__ 2 // PS4:#define __SIZEOF_WINT_T__ 4 -// PS4:#define __SIZE_TYPE__ long unsigned int +// PS4:#define __SIZE_TYPE__ __typeof(sizeof(0)) // PS4:#define __SIZE_WIDTH__ 64 // PS4:#define __SSE2_MATH__ 1 // PS4:#define __SSE2__ 1 @@ -1603,8 +1603,8 @@ // OPENBSD:#define __INTMAX_TYPE__ long long int // OPENBSD:#define __INTPTR_TYPE__ long int // OPENBSD:#define __OpenBSD__ 1 -// OPENBSD:#define __PTRDIFF_TYPE__ long int -// OPENBSD:#define __SIZE_TYPE__ long unsigned int +// OPENBSD:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// OPENBSD:#define __SIZE_TYPE__ __typeof(sizeof(0)) // OPENBSD:#define __UINT16_TYPE__ unsigned short // OPENBSD:#define __UINT32_TYPE__ unsigned int // OPENBSD:#define __UINT64_TYPE__ long long unsigned int @@ -1912,7 +1912,7 @@ // WEBASSEMBLY-NEXT:#define __PTRDIFF_FMTi__ "li" // WEBASSEMBLY32-NEXT:#define __PTRDIFF_MAX__ 2147483647L // WEBASSEMBLY64-NEXT:#define __PTRDIFF_MAX__ 9223372036854775807L -// WEBASSEMBLY-NEXT:#define __PTRDIFF_TYPE__ long int +// WEBASSEMBLY-NEXT:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // WEBASSEMBLY32-NEXT:#define __PTRDIFF_WIDTH__ 32 // WEBASSEMBLY64-NEXT:#define __PTRDIFF_WIDTH__ 64 // WEBASSEMBLY-NOT:#define __REGISTER_PREFIX__ @@ -1946,7 +1946,7 @@ // WEBASSEMBLY-NEXT:#define __SIZE_FMTx__ "lx" // WEBASSEMBLY32-NEXT:#define __SIZE_MAX__ 4294967295UL // WEBASSEMBLY64-NEXT:#define __SIZE_MAX__ 18446744073709551615UL -// WEBASSEMBLY-NEXT:#define __SIZE_TYPE__ long unsigned int +// WEBASSEMBLY-NEXT:#define __SIZE_TYPE__ __typeof(sizeof(0)) // WEBASSEMBLY32-NEXT:#define __SIZE_WIDTH__ 32 // WEBASSEMBLY64-NEXT:#define __SIZE_WIDTH__ 64 // WEBASSEMBLY-NEXT:#define __STDC_EMBED_EMPTY__ 2 @@ -2227,7 +2227,7 @@ // AVR:#define __ORDER_PDP_ENDIAN__ 3412 // AVR:#define __PRAGMA_REDEFINE_EXTNAME 1 // AVR:#define __PTRDIFF_MAX__ 32767 -// AVR:#define __PTRDIFF_TYPE__ int +// AVR:#define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // AVR:#define __SCHAR_MAX__ 127 // AVR:#define __SHRT_MAX__ 32767 // AVR:#define __SIG_ATOMIC_MAX__ 127 @@ -2245,7 +2245,7 @@ // AVR:#define __SIZEOF_WCHAR_T__ 2 // AVR:#define __SIZEOF_WINT_T__ 2 // AVR:#define __SIZE_MAX__ 65535U -// AVR:#define __SIZE_TYPE__ unsigned int +// AVR:#define __SIZE_TYPE__ __typeof(sizeof(0)) // AVR:#define __STDC__ 1 // AVR:#define __UINT16_MAX__ 65535U // AVR:#define __UINT16_TYPE__ unsigned int @@ -2336,12 +2336,12 @@ // RUN: %clang_cc1 -triple x86_64-apple-macosx -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix MACOS-64 %s // MACOS-32: #define __INTPTR_TYPE__ long int -// MACOS-32: #define __PTRDIFF_TYPE__ int -// MACOS-32: #define __SIZE_TYPE__ long unsigned int +// MACOS-32: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// MACOS-32: #define __SIZE_TYPE__ __typeof(sizeof(0)) // MACOS-64: #define __INTPTR_TYPE__ long int -// MACOS-64: #define __PTRDIFF_TYPE__ long int -// MACOS-64: #define __SIZE_TYPE__ long unsigned int +// MACOS-64: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// MACOS-64: #define __SIZE_TYPE__ __typeof(sizeof(0)) // RUN: %clang_cc1 -triple i386-apple-ios-simulator -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix IOS-32 %s // RUN: %clang_cc1 -triple armv7-apple-ios -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix IOS-32 %s @@ -2349,12 +2349,12 @@ // RUN: %clang_cc1 -triple arm64-apple-ios -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix IOS-64 %s // IOS-32: #define __INTPTR_TYPE__ long int -// IOS-32: #define __PTRDIFF_TYPE__ int -// IOS-32: #define __SIZE_TYPE__ long unsigned int +// IOS-32: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// IOS-32: #define __SIZE_TYPE__ __typeof(sizeof(0)) // IOS-64: #define __INTPTR_TYPE__ long int -// IOS-64: #define __PTRDIFF_TYPE__ long int -// IOS-64: #define __SIZE_TYPE__ long unsigned int +// IOS-64: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// IOS-64: #define __SIZE_TYPE__ __typeof(sizeof(0)) // RUN: %clang_cc1 -triple i386-apple-tvos-simulator -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix TVOS-32 %s // RUN: %clang_cc1 -triple armv7-apple-tvos -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix TVOS-32 %s @@ -2362,12 +2362,12 @@ // RUN: %clang_cc1 -triple arm64-apple-tvos -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix TVOS-64 %s // TVOS-32: #define __INTPTR_TYPE__ long int -// TVOS-32: #define __PTRDIFF_TYPE__ int -// TVOS-32: #define __SIZE_TYPE__ long unsigned int +// TVOS-32: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// TVOS-32: #define __SIZE_TYPE__ __typeof(sizeof(0)) // TVOS-64: #define __INTPTR_TYPE__ long int -// TVOS-64: #define __PTRDIFF_TYPE__ long int -// TVOS-64: #define __SIZE_TYPE__ long unsigned int +// TVOS-64: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// TVOS-64: #define __SIZE_TYPE__ __typeof(sizeof(0)) // RUN: %clang_cc1 -triple i386-apple-watchos-simulator -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix WATCHOS-32 %s // RUN: %clang_cc1 -triple armv7k-apple-watchos -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix WATCHOS-64 %s @@ -2375,23 +2375,23 @@ // RUN: %clang_cc1 -triple arm64-apple-watchos -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix WATCHOS-64 %s // WATCHOS-32: #define __INTPTR_TYPE__ long int -// WATCHOS-32: #define __PTRDIFF_TYPE__ int -// WATCHOS-32: #define __SIZE_TYPE__ long unsigned int +// WATCHOS-32: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// WATCHOS-32: #define __SIZE_TYPE__ __typeof(sizeof(0)) // WATCHOS-64: #define __INTPTR_TYPE__ long int -// WATCHOS-64: #define __PTRDIFF_TYPE__ long int -// WATCHOS-64: #define __SIZE_TYPE__ long unsigned int +// WATCHOS-64: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// WATCHOS-64: #define __SIZE_TYPE__ __typeof(sizeof(0)) // RUN: %clang_cc1 -triple armv7-apple-none-macho -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix ARM-DARWIN-BAREMETAL-32 %s // RUN: %clang_cc1 -triple arm64-apple-none-macho -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix ARM-DARWIN-BAREMETAL-64 %s // ARM-DARWIN-BAREMETAL-32: #define __INTPTR_TYPE__ long int -// ARM-DARWIN-BAREMETAL-32: #define __PTRDIFF_TYPE__ int -// ARM-DARWIN-BAREMETAL-32: #define __SIZE_TYPE__ long unsigned int +// ARM-DARWIN-BAREMETAL-32: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// ARM-DARWIN-BAREMETAL-32: #define __SIZE_TYPE__ __typeof(sizeof(0)) // ARM-DARWIN-BAREMETAL-64: #define __INTPTR_TYPE__ long int -// ARM-DARWIN-BAREMETAL-64: #define __PTRDIFF_TYPE__ long int -// ARM-DARWIN-BAREMETAL-64: #define __SIZE_TYPE__ long unsigned int +// ARM-DARWIN-BAREMETAL-64: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) +// ARM-DARWIN-BAREMETAL-64: #define __SIZE_TYPE__ __typeof(sizeof(0)) // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=riscv32 < /dev/null \ // RUN: | FileCheck -match-full-lines -check-prefix=RISCV32 %s @@ -2530,7 +2530,7 @@ // RISCV32: #define __POINTER_WIDTH__ 32 // RISCV32: #define __PRAGMA_REDEFINE_EXTNAME 1 // RISCV32: #define __PTRDIFF_MAX__ 2147483647 -// RISCV32: #define __PTRDIFF_TYPE__ int +// RISCV32: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // RISCV32: #define __PTRDIFF_WIDTH__ 32 // RISCV32: #define __SCHAR_MAX__ 127 // RISCV32: #define __SHRT_MAX__ 32767 @@ -2550,7 +2550,7 @@ // RISCV32: #define __SIZEOF_WCHAR_T__ 4 // RISCV32: #define __SIZEOF_WINT_T__ 4 // RISCV32: #define __SIZE_MAX__ 4294967295U -// RISCV32: #define __SIZE_TYPE__ unsigned int +// RISCV32: #define __SIZE_TYPE__ __typeof(sizeof(0)) // RISCV32: #define __SIZE_WIDTH__ 32 // RISCV32: #define __STDC_HOSTED__ 0 // RISCV32: #define __STDC_UTF_16__ 1 @@ -2754,7 +2754,7 @@ // RISCV64: #define __POINTER_WIDTH__ 64 // RISCV64: #define __PRAGMA_REDEFINE_EXTNAME 1 // RISCV64: #define __PTRDIFF_MAX__ 9223372036854775807L -// RISCV64: #define __PTRDIFF_TYPE__ long int +// RISCV64: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // RISCV64: #define __PTRDIFF_WIDTH__ 64 // RISCV64: #define __SCHAR_MAX__ 127 // RISCV64: #define __SHRT_MAX__ 32767 @@ -2773,7 +2773,7 @@ // RISCV64: #define __SIZEOF_WCHAR_T__ 4 // RISCV64: #define __SIZEOF_WINT_T__ 4 // RISCV64: #define __SIZE_MAX__ 18446744073709551615UL -// RISCV64: #define __SIZE_TYPE__ long unsigned int +// RISCV64: #define __SIZE_TYPE__ __typeof(sizeof(0)) // RISCV64: #define __SIZE_WIDTH__ 64 // RISCV64: #define __STDC_HOSTED__ 0 // RISCV64: #define __STDC_UTF_16__ 1 @@ -3019,7 +3019,7 @@ // XTENSA: #define __POINTER_WIDTH__ 32 // XTENSA: #define __PRAGMA_REDEFINE_EXTNAME 1 // XTENSA: #define __PTRDIFF_MAX__ 2147483647 -// XTENSA: #define __PTRDIFF_TYPE__ int +// XTENSA: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // XTENSA: #define __PTRDIFF_WIDTH__ 32 // XTENSA: #define __SCHAR_MAX__ 127 // XTENSA: #define __SHRT_MAX__ 32767 @@ -3039,7 +3039,7 @@ // XTENSA: #define __SIZEOF_WCHAR_T__ 4 // XTENSA: #define __SIZEOF_WINT_T__ 4 // XTENSA: #define __SIZE_MAX__ 4294967295U -// XTENSA: #define __SIZE_TYPE__ unsigned int +// XTENSA: #define __SIZE_TYPE__ __typeof(sizeof(0)) // XTENSA: #define __SIZE_WIDTH__ 32 // XTENSA: #define __STDC_EMBED_EMPTY__ 2 // XTENSA: #define __STDC_EMBED_FOUND__ 1 diff --git a/clang/test/Preprocessor/woa-defaults.c b/clang/test/Preprocessor/woa-defaults.c index 97578239396ac..d58636781e8e0 100644 --- a/clang/test/Preprocessor/woa-defaults.c +++ b/clang/test/Preprocessor/woa-defaults.c @@ -15,7 +15,7 @@ // CHECK: #define __ARM_PCS_VFP 1 // CHECK: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // CHECK: #define __INTPTR_TYPE__ int -// CHECK: #define __PTRDIFF_TYPE__ int +// CHECK: #define __PTRDIFF_TYPE__ __typeof((int*)0-(int*)0) // CHECK: #define __SIZEOF_DOUBLE__ 8 // CHECK: #define __SIZEOF_FLOAT__ 4 // CHECK: #define __SIZEOF_INT__ 4 @@ -28,7 +28,7 @@ // CHECK: #define __SIZEOF_SIZE_T__ 4 // CHECK: #define __SIZEOF_WCHAR_T__ 2 // CHECK: #define __SIZEOF_WINT_T__ 2 -// CHECK: #define __SIZE_TYPE__ unsigned int +// CHECK: #define __SIZE_TYPE__ __typeof(sizeof(0)) // CHECK: #define __UINTPTR_TYPE__ unsigned int // CHECK-NOT: __THUMB_INTERWORK__ diff --git a/clang/test/Sema/warn-bad-function-cast.c b/clang/test/Sema/warn-bad-function-cast.c index 0172c9b37c97d..b5d5acc996631 100644 --- a/clang/test/Sema/warn-bad-function-cast.c +++ b/clang/test/Sema/warn-bad-function-cast.c @@ -13,6 +13,9 @@ char *pf1(void); int *pf2(void); _Fract ff1(void); +typedef __SIZE_TYPE__ size_t; +typedef __PTRDIFF_TYPE__ ptrdiff_t; + void foo(void) { @@ -46,8 +49,8 @@ foo(void) (double)cf(); /* expected-warning {{cast from function call of type '_Complex double' to non-matching type 'double'}} */ (int)ef(); /* expected-warning {{cast from function call of type 'enum e' to non-matching type 'int'}} */ (int)bf(); /* expected-warning {{cast from function call of type '_Bool' to non-matching type 'int'}} */ - (__SIZE_TYPE__)pf1(); /* expected-warning {{cast from function call of type 'char *' to non-matching type 'unsigned long'}} */ - (__PTRDIFF_TYPE__)pf2(); /* expected-warning {{cast from function call of type 'int *' to non-matching type 'long'}} */ + (size_t)pf1(); /* expected-warning {{cast from function call of type 'char *' to non-matching type 'size_t' (aka 'unsigned long')}} */ + (ptrdiff_t)pf2(); /* expected-warning {{cast from function call of type 'int *' to non-matching type 'ptrdiff_t' (aka 'long')}} */ (_Fract) if1(); /* expected-warning{{cast from function call of type 'int' to non-matching type '_Fract'}} */ (int)ff1(); /* expected-warning{{cast from function call of type '_Fract' to non-matching type 'int'}} */ }