about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2019-01-15 06:55:17 +0900
committerYuki Okushi <huyuumi.dev@gmail.com>2019-01-15 06:55:17 +0900
commitefd111e5026ccc78f78c3534267e5ba74899f268 (patch)
treecd077296bfdc1204e7e4cfa61f48102a8ec206a3
parent60a68bed7b1da4cd9052c2610525c3c50dd344d2 (diff)
downloadrust-efd111e5026ccc78f78c3534267e5ba74899f268.tar.gz
rust-efd111e5026ccc78f78c3534267e5ba74899f268.zip
Add test
-rw-r--r--src/test/ui/lint/lint-forbid-internal-unsafe.rs16
-rw-r--r--src/test/ui/lint/lint-forbid-internal-unsafe.stderr14
2 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/lint/lint-forbid-internal-unsafe.rs b/src/test/ui/lint/lint-forbid-internal-unsafe.rs
new file mode 100644
index 00000000000..7f58b7280f3
--- /dev/null
+++ b/src/test/ui/lint/lint-forbid-internal-unsafe.rs
@@ -0,0 +1,16 @@
+#![forbid(unsafe_code)]
+#![feature(allow_internal_unsafe)]
+
+#[allow_internal_unsafe]
+//~^ ERROR: cannot use `allow_internal_unsafe` with `forbid(unsafe_code)`
+macro_rules! evil {
+    ($e:expr) => {
+        unsafe {
+            $e
+        }
+    }
+}
+
+fn main() {
+    println!("{}", evil!(*(0 as *const u8)));
+}
diff --git a/src/test/ui/lint/lint-forbid-internal-unsafe.stderr b/src/test/ui/lint/lint-forbid-internal-unsafe.stderr
new file mode 100644
index 00000000000..b65ba6118b9
--- /dev/null
+++ b/src/test/ui/lint/lint-forbid-internal-unsafe.stderr
@@ -0,0 +1,14 @@
+error: cannot use `allow_internal_unsafe` with `forbid(unsafe_code)`
+  --> $DIR/lint-forbid-internal-unsafe.rs:4:1
+   |
+LL | #[allow_internal_unsafe]
+   | ^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/lint-forbid-internal-unsafe.rs:1:11
+   |
+LL | #![forbid(unsafe_code)]
+   |           ^^^^^^^^^^^
+
+error: aborting due to previous error
+