[llvm] [ASan] Convert pointer-pair operands based on type (PR #218494)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 25 23:08:38 PDT 2026
================
@@ -71,3 +71,51 @@ define <2 x i1> @mycmp_vector(<2 x ptr> %p, <2 x ptr> %q) sanitize_address {
%z = icmp ult <2 x i64> %x, %y
ret <2 x i1> %z
}
+
+define i32 @mysub_ptrtoint_trunc(ptr %p, ptr %q) sanitize_address {
+; ALL-LABEL: @mysub_ptrtoint_trunc
+; NOSUB-NOT: call void @__sanitizer_ptr_sub
+; SUB: [[P:%[0-9A-Za-z]+]] = ptrtoint ptr %p to i32
+; SUB: [[Q:%[0-9A-Za-z]+]] = ptrtoint ptr %q to i32
+ %x = ptrtoint ptr %p to i32
+ %y = ptrtoint ptr %q to i32
+ %z = sub i32 %x, %y
+; SUB: [[XP:%[0-9A-Za-z]+]] = zext i32 [[P]] to i64
+; SUB: [[XQ:%[0-9A-Za-z]+]] = zext i32 [[Q]] to i64
+; SUB: call void @__sanitizer_ptr_sub(i64 [[XP]], i64 [[XQ]])
----------------
im-lunex wrote:
hmm seems reasonable.. the new update should fix this... here operands that arent pointers and arent already `intptr-width` are now skipped entirely
https://github.com/llvm/llvm-project/pull/218494
More information about the llvm-commits
mailing list