about summary refs log tree commit diff
path: root/src/tools/miri/tests/fail/alloc
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2024-06-17 11:41:18 +0200
committerRalf Jung <post@ralfj.de>2024-06-17 11:53:58 +0200
commitb8db9f0785dce07f6ee49eae3c493af5ea161c0a (patch)
treec545f3d563039d625f33adc907381113fe608163 /src/tools/miri/tests/fail/alloc
parent3f2c50c541767d9be497849e31ad1202853886a3 (diff)
downloadrust-b8db9f0785dce07f6ee49eae3c493af5ea161c0a.tar.gz
rust-b8db9f0785dce07f6ee49eae3c493af5ea161c0a.zip
show proper UB when making a too large allocation request
Diffstat (limited to 'src/tools/miri/tests/fail/alloc')
-rw-r--r--src/tools/miri/tests/fail/alloc/too_large.rs10
-rw-r--r--src/tools/miri/tests/fail/alloc/too_large.stderr15
2 files changed, 25 insertions, 0 deletions
diff --git a/src/tools/miri/tests/fail/alloc/too_large.rs b/src/tools/miri/tests/fail/alloc/too_large.rs
new file mode 100644
index 00000000000..4e28d2401d7
--- /dev/null
+++ b/src/tools/miri/tests/fail/alloc/too_large.rs
@@ -0,0 +1,10 @@
+extern "Rust" {
+    fn __rust_alloc(size: usize, align: usize) -> *mut u8;
+}
+
+fn main() {
+    let bytes = isize::MAX as usize + 1;
+    unsafe {
+        __rust_alloc(bytes, 1); //~ERROR: larger than half the address space
+    }
+}
diff --git a/src/tools/miri/tests/fail/alloc/too_large.stderr b/src/tools/miri/tests/fail/alloc/too_large.stderr
new file mode 100644
index 00000000000..77dcf91d843
--- /dev/null
+++ b/src/tools/miri/tests/fail/alloc/too_large.stderr
@@ -0,0 +1,15 @@
+error: Undefined Behavior: creating an allocation larger than half the address space
+  --> $DIR/too_large.rs:LL:CC
+   |
+LL |         __rust_alloc(bytes, 1);
+   |         ^^^^^^^^^^^^^^^^^^^^^^ creating an allocation larger than half the address space
+   |
+   = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
+   = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
+   = note: BACKTRACE:
+   = note: inside `main` at $DIR/too_large.rs:LL:CC
+
+note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
+
+error: aborting due to 1 previous error
+