about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorhyd-dev <yd-huang@outlook.com>2021-06-20 21:49:08 +0800
committerhyd-dev <yd-huang@outlook.com>2021-08-12 17:11:43 +0800
commitc84beefd83df7bb39a02a341f5615019e1ffaa63 (patch)
tree0b420757c1f88a4fdc8f8c8968d6c87a0412d0db /src
parenteb2226b1f174f3cc644275ef8663be6295a7f704 (diff)
downloadrust-c84beefd83df7bb39a02a341f5615019e1ffaa63.tar.gz
rust-c84beefd83df7bb39a02a341f5615019e1ffaa63.zip
Add associated functions that have custom linkage to `reachable_set`
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/auxiliary/no-mangle-associated-fn.rs10
-rw-r--r--src/test/ui/no-mangle-associated-fn.rs22
2 files changed, 32 insertions, 0 deletions
diff --git a/src/test/ui/auxiliary/no-mangle-associated-fn.rs b/src/test/ui/auxiliary/no-mangle-associated-fn.rs
new file mode 100644
index 00000000000..2ef161edf29
--- /dev/null
+++ b/src/test/ui/auxiliary/no-mangle-associated-fn.rs
@@ -0,0 +1,10 @@
+#![crate_type = "lib"]
+
+struct Bar;
+
+impl Bar {
+    #[no_mangle]
+    fn bar() -> u8 {
+        2
+    }
+}
diff --git a/src/test/ui/no-mangle-associated-fn.rs b/src/test/ui/no-mangle-associated-fn.rs
new file mode 100644
index 00000000000..e9c621914b2
--- /dev/null
+++ b/src/test/ui/no-mangle-associated-fn.rs
@@ -0,0 +1,22 @@
+// aux-build: no-mangle-associated-fn.rs
+// run-pass
+
+extern crate no_mangle_associated_fn;
+
+struct Foo;
+
+impl Foo {
+    #[no_mangle]
+    fn foo() -> u8 {
+        1
+    }
+}
+
+fn main() {
+    extern "Rust" {
+        fn foo() -> u8;
+        fn bar() -> u8;
+    }
+    assert_eq!(unsafe { foo() }, 1);
+    assert_eq!(unsafe { bar() }, 2);
+}