aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorHervé Poussineau <hpoussin@reactos.org>2025-07-21 18:17:45 +0200
committerGitHub <noreply@github.com>2025-07-21 18:17:45 +0200
commit13906724ff7aa1bc58202faac62690570dfe0dc3 (patch)
tree5b8ed1b875fd25d2fe923f8f433f4c1eccdecf60 /clang/lib/Basic
parent5b98992fb98cb9cd3c492907b262e149f84c0cb0 (diff)
downloadllvm-13906724ff7aa1bc58202faac62690570dfe0dc3.zip
llvm-13906724ff7aa1bc58202faac62690570dfe0dc3.tar.gz
llvm-13906724ff7aa1bc58202faac62690570dfe0dc3.tar.bz2
[Mips] Correctly define IntPtrType (#145158)
Mips was the only architecture having PtrDiffType = SignedInt and IntPtrType = SignedLong This fixes a problem on mipsel-windows-gnu triple, where uintptr_t was wrongly defined as unsigned long instead of unsigned int, leading to problems in compiler-rt. compiler-rt/lib/interception/interception_type_test.cpp:24:17: error: static assertion failed due to requirement '__sanitizer::is_same<unsigned long, unsigned int>::value': 24 | COMPILER_CHECK((__sanitizer::is_same<__sanitizer::uptr, ::uintptr_t>::value)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compiler-rt/lib/interception/../sanitizer_common/sanitizer_internal_defs.h:369:44: note: expanded from macro 'COMPILER_CHECK' 369 | #define COMPILER_CHECK(pred) static_assert(pred, "") | ^~~~ compiler-rt/lib/interception/interception_type_test.cpp:25:17: error: static assertion failed due to requirement '__sanitizer::is_same<long, int>::value': 25 | COMPILER_CHECK((__sanitizer::is_same<__sanitizer::sptr, ::intptr_t>::value)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compiler-rt/lib/interception/../sanitizer_common/sanitizer_internal_defs.h:369:44: note: expanded from macro 'COMPILER_CHECK' 369 | #define COMPILER_CHECK(pred) static_assert(pred, "") | ^~~~ compiler-rt/lib/interception/interception_type_test.cpp:27:17: error: static assertion failed due to requirement '__sanitizer::is_same<long, int>::value': 27 | COMPILER_CHECK((__sanitizer::is_same<::PTRDIFF_T, ::ptrdiff_t>::value)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compiler-rt/lib/interception/../sanitizer_common/sanitizer_internal_defs.h:369:44: note: expanded from macro 'COMPILER_CHECK' 369 | #define COMPILER_CHECK(pred) static_assert(pred, "")
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets/Mips.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Basic/Targets/Mips.h b/clang/lib/Basic/Targets/Mips.h
index 35501ed..e199df3 100644
--- a/clang/lib/Basic/Targets/Mips.h
+++ b/clang/lib/Basic/Targets/Mips.h
@@ -129,7 +129,7 @@ public:
LongWidth = LongAlign = 32;
MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 32;
PointerWidth = PointerAlign = 32;
- PtrDiffType = SignedInt;
+ PtrDiffType = IntPtrType = SignedInt;
SizeType = UnsignedInt;
SuitableAlign = 64;
}
@@ -155,7 +155,7 @@ public:
IntMaxType = Int64Type;
LongWidth = LongAlign = 64;
PointerWidth = PointerAlign = 64;
- PtrDiffType = SignedLong;
+ PtrDiffType = IntPtrType = SignedLong;
SizeType = UnsignedLong;
}
@@ -165,7 +165,7 @@ public:
IntMaxType = Int64Type;
LongWidth = LongAlign = 32;
PointerWidth = PointerAlign = 32;
- PtrDiffType = SignedInt;
+ PtrDiffType = IntPtrType = SignedInt;
SizeType = UnsignedInt;
}