[compiler-rt] [ASan] Add xfail test for PR #213546 (PR #216532)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 15 21:09:57 PDT 2026
https://github.com/flovent updated https://github.com/llvm/llvm-project/pull/216532
>From 9e1a058b16a37c5107a0344f411d8b7d017aab6e Mon Sep 17 00:00:00 2001
From: flovent <flbven at protonmail.com>
Date: Sun, 16 Aug 2026 09:42:28 +0800
Subject: [PATCH 1/2] Add xfail test
---
.../invalid-pointer-pairs-vector-extract.cpp | 32 +++++++++++++++++++
1 file changed, 32 insertions(+)
create mode 100644 compiler-rt/test/asan/TestCases/invalid-pointer-pairs-vector-extract.cpp
diff --git a/compiler-rt/test/asan/TestCases/invalid-pointer-pairs-vector-extract.cpp b/compiler-rt/test/asan/TestCases/invalid-pointer-pairs-vector-extract.cpp
new file mode 100644
index 0000000000000..6de635b3f95b0
--- /dev/null
+++ b/compiler-rt/test/asan/TestCases/invalid-pointer-pairs-vector-extract.cpp
@@ -0,0 +1,32 @@
+// REQUIRES: asserts
+// RUN: %clangxx_asan -O2 %s -o %t -mllvm -asan-detect-invalid-pointer-pair
+// RUN: %env_asan_opts=detect_invalid_pointer_pairs=1:halt_on_error=0 %run %t 2>&1 | FileCheck %s
+// RUN: %env_asan_opts=detect_invalid_pointer_pairs=2:halt_on_error=0 %run %t 2>&1 | FileCheck %s
+
+// XFAIL: *
+
+#include <stdio.h>
+#include <stdlib.h>
+
+__attribute__((noinline)) void span_lengths(const char **begins,
+ const char **ends, long *lengths) {
+ // CHECK: ERROR: AddressSanitizer: invalid-pointer-pair
+ // CHECK: #{{[0-9]+ .*}} in span_lengths
+ lengths[0] = ends[0] - begins[0];
+ // CHECK: ERROR: AddressSanitizer: invalid-pointer-pair
+ // CHECK: #{{[0-9]+ .*}} in span_lengths
+ lengths[1] = ends[1] - begins[1];
+}
+
+int main() {
+ char *a = (char *)malloc(16);
+ char *b = (char *)malloc(16);
+ const char *begins[2] = {a, b};
+ const char *ends[2] = {b + 2, a + 10};
+ long lengths[2] = {0};
+ span_lengths(begins, ends, lengths);
+ fprintf(stderr, "lengths: %ld %ld\n", lengths[0], lengths[1]);
+ free(a);
+ free(b);
+ return 0;
+}
>From e9c4d23af0ccb54b4848b63b851275961c4e9b1e Mon Sep 17 00:00:00 2001
From: flovent <flbven at protonmail.com>
Date: Sun, 16 Aug 2026 12:09:42 +0800
Subject: [PATCH 2/2] [NFC] testcase: long -> int64_t
---
.../asan/TestCases/invalid-pointer-pairs-vector-extract.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/compiler-rt/test/asan/TestCases/invalid-pointer-pairs-vector-extract.cpp b/compiler-rt/test/asan/TestCases/invalid-pointer-pairs-vector-extract.cpp
index 6de635b3f95b0..510ee3dc34427 100644
--- a/compiler-rt/test/asan/TestCases/invalid-pointer-pairs-vector-extract.cpp
+++ b/compiler-rt/test/asan/TestCases/invalid-pointer-pairs-vector-extract.cpp
@@ -5,11 +5,12 @@
// XFAIL: *
+#include <cstdint>
#include <stdio.h>
#include <stdlib.h>
__attribute__((noinline)) void span_lengths(const char **begins,
- const char **ends, long *lengths) {
+ const char **ends, int64_t *lengths) {
// CHECK: ERROR: AddressSanitizer: invalid-pointer-pair
// CHECK: #{{[0-9]+ .*}} in span_lengths
lengths[0] = ends[0] - begins[0];
@@ -23,7 +24,7 @@ int main() {
char *b = (char *)malloc(16);
const char *begins[2] = {a, b};
const char *ends[2] = {b + 2, a + 10};
- long lengths[2] = {0};
+ int64_t lengths[2] = {0};
span_lengths(begins, ends, lengths);
fprintf(stderr, "lengths: %ld %ld\n", lengths[0], lengths[1]);
free(a);
More information about the llvm-commits
mailing list