about summary refs log tree commit diff
path: root/tests/ui/sanitizer
diff options
context:
space:
mode:
authorRamon de C Valle <rcvalle@users.noreply.github.com>2025-03-11 19:04:35 +0000
committerRamon de C Valle <rcvalle@users.noreply.github.com>2025-04-05 04:05:04 +0000
commita98546b961a7fc707155aecbde094fbcecce81fd (patch)
treeda6b071ea5c57fbc3fc9e44c4edac62eee00fb5f /tests/ui/sanitizer
parentbad13a970a136389187dd1cf2f2fc737a8bea5fc (diff)
downloadrust-a98546b961a7fc707155aecbde094fbcecce81fd.tar.gz
rust-a98546b961a7fc707155aecbde094fbcecce81fd.zip
KCFI: Add KCFI arity indicator support
Adds KCFI arity indicator support to the Rust compiler (see rust-lang/rust#138311,
https://github.com/llvm/llvm-project/pull/121070, and
https://lore.kernel.org/lkml/CANiq72=3ghFxy8E=AU9p+0imFxKr5iU3sd0hVUXed5BA+KjdNQ@mail.gmail.com/).
Diffstat (limited to 'tests/ui/sanitizer')
-rw-r--r--tests/ui/sanitizer/kcfi-arity-requires-kcfi.rs9
-rw-r--r--tests/ui/sanitizer/kcfi-arity-requires-kcfi.stderr4
-rw-r--r--tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.rs11
-rw-r--r--tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.stderr4
4 files changed, 28 insertions, 0 deletions
diff --git a/tests/ui/sanitizer/kcfi-arity-requires-kcfi.rs b/tests/ui/sanitizer/kcfi-arity-requires-kcfi.rs
new file mode 100644
index 00000000000..12aabb3b862
--- /dev/null
+++ b/tests/ui/sanitizer/kcfi-arity-requires-kcfi.rs
@@ -0,0 +1,9 @@
+// Verifies that `-Zsanitizer-kcfi-arity` requires `-Zsanitizer=kcfi`.
+//
+//@ needs-sanitizer-kcfi
+//@ compile-flags: -Cno-prepopulate-passes -Ctarget-feature=-crt-static -Zsanitizer-kcfi-arity
+
+//~? ERROR `-Zsanitizer-kcfi-arity` requires `-Zsanitizer=kcfi`
+#![feature(no_core)]
+#![no_core]
+#![no_main]
diff --git a/tests/ui/sanitizer/kcfi-arity-requires-kcfi.stderr b/tests/ui/sanitizer/kcfi-arity-requires-kcfi.stderr
new file mode 100644
index 00000000000..4ed1b754fd4
--- /dev/null
+++ b/tests/ui/sanitizer/kcfi-arity-requires-kcfi.stderr
@@ -0,0 +1,4 @@
+error: `-Zsanitizer-kcfi-arity` requires `-Zsanitizer=kcfi`
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.rs b/tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.rs
new file mode 100644
index 00000000000..8a724b853e1
--- /dev/null
+++ b/tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.rs
@@ -0,0 +1,11 @@
+// Verifies that `-Zsanitizer-kcfi-arity` requires LLVM 21.0.0 or later.
+//
+//@ needs-sanitizer-kcfi
+//@ compile-flags: -Cno-prepopulate-passes -Ctarget-feature=-crt-static -Cpanic=abort -Zsanitizer=kcfi -Zsanitizer-kcfi-arity
+//@ build-fail
+//@ max-llvm-major-version: 20
+
+//~? ERROR `-Zsanitizer-kcfi-arity` requires LLVM 21.0.0 or later.
+#![feature(no_core)]
+#![no_core]
+#![no_main]
diff --git a/tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.stderr b/tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.stderr
new file mode 100644
index 00000000000..ac6bd7411fd
--- /dev/null
+++ b/tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.stderr
@@ -0,0 +1,4 @@
+error: `-Zsanitizer-kcfi-arity` requires LLVM 21.0.0 or later.
+
+error: aborting due to 1 previous error
+