about summary refs log tree commit diff
path: root/src/test/ui/proc-macro/macros-in-extern-rpass.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/proc-macro/macros-in-extern-rpass.rs')
-rw-r--r--src/test/ui/proc-macro/macros-in-extern-rpass.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/ui/proc-macro/macros-in-extern-rpass.rs b/src/test/ui/proc-macro/macros-in-extern-rpass.rs
new file mode 100644
index 00000000000..a30a287a101
--- /dev/null
+++ b/src/test/ui/proc-macro/macros-in-extern-rpass.rs
@@ -0,0 +1,25 @@
+// run-pass
+// aux-build:test-macros-rpass.rs
+// ignore-wasm32
+
+#![feature(macros_in_extern)]
+
+extern crate test_macros_rpass as test_macros;
+
+use test_macros::{nop_attr, no_output, emit_input};
+
+fn main() {
+    assert_eq!(unsafe { rust_get_test_int() }, 1isize);
+    assert_eq!(unsafe { rust_dbg_extern_identity_u32(0xDEADBEEF) }, 0xDEADBEEF);
+}
+
+#[link(name = "rust_test_helpers", kind = "static")]
+extern {
+    #[no_output]
+    fn some_definitely_unknown_symbol_which_should_be_removed();
+
+    #[nop_attr]
+    fn rust_get_test_int() -> isize;
+
+    emit_input!(fn rust_dbg_extern_identity_u32(arg: u32) -> u32;);
+}