about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorAaron Hill <aa1ronham@gmail.com>2021-03-25 15:40:50 -0400
committerAaron Hill <aa1ronham@gmail.com>2021-03-25 15:41:31 -0400
commit8ecd931a8eb0bb9bde2e7d35e72553b512d01c80 (patch)
treeb564308e942c85f29774402b8a1c9fad2d157db2 /src/test
parent6e17a5c5fd086ebe6f57216fb3ce5d1d8d6c83e5 (diff)
downloadrust-8ecd931a8eb0bb9bde2e7d35e72553b512d01c80.tar.gz
rust-8ecd931a8eb0bb9bde2e7d35e72553b512d01c80.zip
Don't ICE when using `#[global_alloc]` on a non-item statement
Fixes #83469

We need to return an `Annotatable::Stmt` if we were passed an
`Annotatable::Stmt`
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/proc-macro/issue-83469-global-alloc-invalid-stmt.rs10
-rw-r--r--src/test/ui/proc-macro/issue-83469-global-alloc-invalid-stmt.stderr8
2 files changed, 18 insertions, 0 deletions
diff --git a/src/test/ui/proc-macro/issue-83469-global-alloc-invalid-stmt.rs b/src/test/ui/proc-macro/issue-83469-global-alloc-invalid-stmt.rs
new file mode 100644
index 00000000000..25adc5d2578
--- /dev/null
+++ b/src/test/ui/proc-macro/issue-83469-global-alloc-invalid-stmt.rs
@@ -0,0 +1,10 @@
+// Regression test for issue #83469
+// Ensures that we recover from `#[global_alloc]` on an invalid
+// stmt without an ICE
+
+fn outer() {
+    #[global_allocator]
+    fn inner() {} //~ ERROR allocators must be statics
+}
+
+fn main() {}
diff --git a/src/test/ui/proc-macro/issue-83469-global-alloc-invalid-stmt.stderr b/src/test/ui/proc-macro/issue-83469-global-alloc-invalid-stmt.stderr
new file mode 100644
index 00000000000..ec0e3c4c754
--- /dev/null
+++ b/src/test/ui/proc-macro/issue-83469-global-alloc-invalid-stmt.stderr
@@ -0,0 +1,8 @@
+error: allocators must be statics
+  --> $DIR/issue-83469-global-alloc-invalid-stmt.rs:7:5
+   |
+LL |     fn inner() {}
+   |     ^^^^^^^^^^^^^
+
+error: aborting due to previous error
+