about summary refs log tree commit diff
path: root/src/test/codegen/export-no-mangle.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2020-06-18 15:20:51 -0700
committerGitHub <noreply@github.com>2020-06-18 15:20:51 -0700
commit0e332e9e3c4a33458cac1801f59c2d0a3ca28484 (patch)
tree47466b9f29e0272a3aa750d65a9820bbbaae2b76 /src/test/codegen/export-no-mangle.rs
parentbf59152c01d9ffc4ceeb982e26b3df2354ebede6 (diff)
parente8e0a0e4e220533db31bc6a572ed9f1b99b31289 (diff)
downloadrust-0e332e9e3c4a33458cac1801f59c2d0a3ca28484.tar.gz
rust-0e332e9e3c4a33458cac1801f59c2d0a3ca28484.zip
Rollup merge of #73034 - doctorn:nomangle-inline-linkage, r=matthewjasper
Export `#[inline]` fns with extern indicators

In ancient history (#36280) we stopped `#[inline]` fns being codegened if they weren't used. However,

- #72944
- #72463

observe that when writing something like

```rust
#![crate_type = "cdylib"]

#[no_mangle]
#[inline]
pub extern "C" fn foo() {
    // ...
}
```

we really _do_ want `foo` to be codegened. This change makes this the case.

Resolves #72944, resolves #72463 (and maybe some more)
Diffstat (limited to 'src/test/codegen/export-no-mangle.rs')
-rw-r--r--src/test/codegen/export-no-mangle.rs20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/test/codegen/export-no-mangle.rs b/src/test/codegen/export-no-mangle.rs
index 78d41e4be0a..59e97601c83 100644
--- a/src/test/codegen/export-no-mangle.rs
+++ b/src/test/codegen/export-no-mangle.rs
@@ -11,11 +11,21 @@ mod private {
     #[export_name = "BAR"]
     static BAR: u32 = 3;
 
-    // CHECK: void @foo()
+    // CHECK: void @a()
     #[no_mangle]
-    pub extern fn foo() {}
+    pub extern fn a() {}
 
-    // CHECK: void @bar()
-    #[export_name = "bar"]
-    extern fn bar() {}
+    // CHECK: void @b()
+    #[export_name = "b"]
+    extern fn b() {}
+
+    // CHECK: void @c()
+    #[export_name = "c"]
+    #[inline]
+    extern fn c() {}
+
+    // CHECK: void @d()
+    #[export_name = "d"]
+    #[inline(always)]
+    extern fn d() {}
 }