about summary refs log tree commit diff
path: root/src/test/codegen
diff options
context:
space:
mode:
authorNathan Corbyn <me@nathancorbyn.com>2020-06-08 09:37:11 +0100
committerNathan Corbyn <me@nathancorbyn.com>2020-06-15 09:40:56 +0100
commit6b7cacb2c99567a76cf0d5ce6833a129c8bb8814 (patch)
treef0a358cb6e0cb9ea6a0aeedc366b00dd66b3a4a9 /src/test/codegen
parentf62903b74a8630fa62e721f69e6621d1d441e7f1 (diff)
downloadrust-6b7cacb2c99567a76cf0d5ce6833a129c8bb8814.tar.gz
rust-6b7cacb2c99567a76cf0d5ce6833a129c8bb8814.zip
Export all fns with extern indicator
Diffstat (limited to 'src/test/codegen')
-rw-r--r--src/test/codegen/cdylib-external-inline-fns.rs23
-rw-r--r--src/test/codegen/cdylib-external-no-mangle-fns.rs13
-rw-r--r--src/test/codegen/export-no-mangle.rs5
-rw-r--r--src/test/codegen/external-no-mangle-fns.rs10
-rw-r--r--src/test/codegen/staticlib-external-inline-fns.rs23
-rw-r--r--src/test/codegen/staticlib-external-no-mangle-fns.rs13
6 files changed, 61 insertions, 26 deletions
diff --git a/src/test/codegen/cdylib-external-inline-fns.rs b/src/test/codegen/cdylib-external-inline-fns.rs
new file mode 100644
index 00000000000..58f806b5a1f
--- /dev/null
+++ b/src/test/codegen/cdylib-external-inline-fns.rs
@@ -0,0 +1,23 @@
+// compile-flags: -C no-prepopulate-passes
+
+#![crate_type = "cdylib"]
+
+// CHECK: define void @a()
+#[no_mangle]
+#[inline]
+pub extern "C" fn a() {}
+
+// CHECK: define void @b()
+#[export_name = "b"]
+#[inline]
+pub extern "C" fn b() {}
+
+// CHECK: define void @c()
+#[no_mangle]
+#[inline]
+extern "C" fn c() {}
+
+// CHECK: define void @d()
+#[export_name = "d"]
+#[inline]
+extern "C" fn d() {}
diff --git a/src/test/codegen/cdylib-external-no-mangle-fns.rs b/src/test/codegen/cdylib-external-no-mangle-fns.rs
deleted file mode 100644
index 827de7e5c11..00000000000
--- a/src/test/codegen/cdylib-external-no-mangle-fns.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-// compile-flags: -C no-prepopulate-passes
-
-#![crate_type = "cdylib"]
-
-// CHECK: define void @a()
-#[no_mangle]
-#[inline]
-pub extern "C" fn a() {
-    // side effect to keep `a` around
-    unsafe {
-        core::ptr::read_volatile(&42);
-    }
-}
diff --git a/src/test/codegen/export-no-mangle.rs b/src/test/codegen/export-no-mangle.rs
index 78d41e4be0a..793636bb1b0 100644
--- a/src/test/codegen/export-no-mangle.rs
+++ b/src/test/codegen/export-no-mangle.rs
@@ -18,4 +18,9 @@ mod private {
     // CHECK: void @bar()
     #[export_name = "bar"]
     extern fn bar() {}
+    
+    // CHECK: void @baz()
+    #[export_name = "baz"]
+    #[inline]
+    extern fn baz() {}
 }
diff --git a/src/test/codegen/external-no-mangle-fns.rs b/src/test/codegen/external-no-mangle-fns.rs
index 90288214499..aefa9ce21c3 100644
--- a/src/test/codegen/external-no-mangle-fns.rs
+++ b/src/test/codegen/external-no-mangle-fns.rs
@@ -53,3 +53,13 @@ fn x() {
         core::ptr::read_volatile(&42);
     }
 }
+
+// CHECK: define void @i()
+#[no_mangle]
+#[inline]
+fn i() {}
+
+// CHECK: define void @j()
+#[no_mangle]
+#[inline]
+pub fn j() {}
diff --git a/src/test/codegen/staticlib-external-inline-fns.rs b/src/test/codegen/staticlib-external-inline-fns.rs
new file mode 100644
index 00000000000..8f55a530331
--- /dev/null
+++ b/src/test/codegen/staticlib-external-inline-fns.rs
@@ -0,0 +1,23 @@
+// compile-flags: -C no-prepopulate-passes
+
+#![crate_type = "staticlib"]
+
+// CHECK: define void @a()
+#[no_mangle]
+#[inline]
+pub extern "C" fn a() {}
+
+// CHECK: define void @b()
+#[export_name = "b"]
+#[inline]
+pub extern "C" fn b() {}
+
+// CHECK: define void @c()
+#[no_mangle]
+#[inline]
+extern "C" fn c() {}
+
+// CHECK: define void @d()
+#[export_name = "d"]
+#[inline]
+extern "C" fn d() {}
diff --git a/src/test/codegen/staticlib-external-no-mangle-fns.rs b/src/test/codegen/staticlib-external-no-mangle-fns.rs
deleted file mode 100644
index 0b4a37febb2..00000000000
--- a/src/test/codegen/staticlib-external-no-mangle-fns.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-// compile-flags: -C no-prepopulate-passes
-
-#![crate_type = "staticlib"]
-
-// CHECK: define void @a()
-#[no_mangle]
-#[inline]
-pub extern "C" fn a() {
-    // side effect to keep `a` around
-    unsafe {
-        core::ptr::read_volatile(&42);
-    }
-}