| //@ compile-flags: -C no-prepopulate-passes |
| // `#[no_mangle]`d functions always have external linkage, i.e., no `internal` in their `define`s |
| // CHECK: define{{( dso_local)?}} void @a() |
| // CHECK: define{{( dso_local)?}} void @b() |
| // CHECK: define{{( dso_local)?}} void @c() |
| // CHECK: define{{( dso_local)?}} void @d() |
| // CHECK: define{{( dso_local)?}} void @e() |
| // CHECK: define{{( dso_local)?}} void @f() |
| // The surrounding item should not accidentally become external |
| // CHECK-LABEL: ; external_no_mangle_fns::x |
| // CHECK-NEXT: ; Function Attrs: |
| // CHECK-NEXT: define internal |
| // CHECK: define{{( dso_local)?}} void @g() |
| // CHECK: define{{( dso_local)?}} void @h() |
| // side effect to keep `x` around |
| core::ptr::read_volatile(&42); |
| // CHECK: define{{( dso_local)?}} void @i() |
| // CHECK: define{{( dso_local)?}} void @j() |
| // CHECK: define{{( dso_local)?}} void @k() |
| // CHECK: define{{( dso_local)?}} void @l() |