diff options
| author | bors <bors@rust-lang.org> | 2025-02-24 03:06:16 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2025-02-24 03:06:16 +0000 |
| commit | e0be1a02626abef2878cb7f4aaef7ae409477112 (patch) | |
| tree | 1a54c1ce995121c0e6f6b605084bbcab554a11a9 /tests/codegen/intrinsics/offset.rs | |
| parent | 9af8985e059071ea2e0566969a4f140eca73fca9 (diff) | |
| parent | 9e7b1847dcd0d5c61c48e362e02c36ad6f8c51ab (diff) | |
| download | rust-e0be1a02626abef2878cb7f4aaef7ae409477112.tar.gz rust-e0be1a02626abef2878cb7f4aaef7ae409477112.zip | |
Auto merge of #137271 - nikic:gep-nuw-2, r=scottmcm
Emit getelementptr inbounds nuw for pointer::add() Lower pointer::add (via intrinsic::offset with unsigned offset) to getelementptr inbounds nuw on LLVM versions that support it. This lets LLVM make use of the pre-condition that the offset addition does not wrap in an unsigned sense. Together with inbounds, this also implies that the offset is non-negative. Fixes https://github.com/rust-lang/rust/issues/137217.
Diffstat (limited to 'tests/codegen/intrinsics/offset.rs')
| -rw-r--r-- | tests/codegen/intrinsics/offset.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/codegen/intrinsics/offset.rs b/tests/codegen/intrinsics/offset.rs index d76d3e705ab..cf0c7c7ac7d 100644 --- a/tests/codegen/intrinsics/offset.rs +++ b/tests/codegen/intrinsics/offset.rs @@ -27,7 +27,7 @@ pub unsafe fn offset_isize(p: *const u32, d: isize) -> *const u32 { // CHECK-SAME: (ptr noundef %p, [[SIZE]] noundef %d) #[no_mangle] pub unsafe fn offset_usize(p: *const u64, d: usize) -> *const u64 { - // CHECK: %[[R:.*]] = getelementptr inbounds i64, ptr %p, [[SIZE]] %d + // CHECK: %[[R:.*]] = getelementptr inbounds{{( nuw)?}} i64, ptr %p, [[SIZE]] %d // CHECK-NEXT: ret ptr %[[R]] offset(p, d) } |
