]> git.lizzy.rs Git - rust.git/blob - tests/codegen/external-no-mangle-statics.rs
Rollup merge of #107700 - jyn514:tools-builder, r=Mark-Simulacrum
[rust.git] / tests / codegen / external-no-mangle-statics.rs
1 // revisions: lib staticlib
2 // ignore-emscripten default visibility is hidden
3 // compile-flags: -O
4 // [lib] compile-flags: --crate-type lib
5 // [staticlib] compile-flags: --crate-type staticlib
6 // `#[no_mangle]`d static variables always have external linkage, i.e., no `internal` in their
7 // definitions
8
9 // CHECK: @A = local_unnamed_addr constant
10 #[no_mangle]
11 static A: u8 = 0;
12
13 // CHECK: @B = local_unnamed_addr global
14 #[no_mangle]
15 static mut B: u8 = 0;
16
17 // CHECK: @C = local_unnamed_addr constant
18 #[no_mangle]
19 pub static C: u8 = 0;
20
21 // CHECK: @D = local_unnamed_addr global
22 #[no_mangle]
23 pub static mut D: u8 = 0;
24
25 mod private {
26     // CHECK: @E = local_unnamed_addr constant
27     #[no_mangle]
28     static E: u8 = 0;
29
30     // CHECK: @F = local_unnamed_addr global
31     #[no_mangle]
32     static mut F: u8 = 0;
33
34     // CHECK: @G = local_unnamed_addr constant
35     #[no_mangle]
36     pub static G: u8 = 0;
37
38     // CHECK: @H = local_unnamed_addr global
39     #[no_mangle]
40     pub static mut H: u8 = 0;
41 }
42
43 const HIDDEN: () = {
44     // CHECK: @I = local_unnamed_addr constant
45     #[no_mangle]
46     static I: u8 = 0;
47
48     // CHECK: @J = local_unnamed_addr global
49     #[no_mangle]
50     static mut J: u8 = 0;
51
52     // CHECK: @K = local_unnamed_addr constant
53     #[no_mangle]
54     pub static K: u8 = 0;
55
56     // CHECK: @L = local_unnamed_addr global
57     #[no_mangle]
58     pub static mut L: u8 = 0;
59 };
60
61 fn x() {
62     // CHECK: @M = local_unnamed_addr constant
63     #[no_mangle]
64     static M: fn() = x;
65
66     // CHECK: @N = local_unnamed_addr global
67     #[no_mangle]
68     static mut N: u8 = 0;
69
70     // CHECK: @O = local_unnamed_addr constant
71     #[no_mangle]
72     pub static O: u8 = 0;
73
74     // CHECK: @P = local_unnamed_addr global
75     #[no_mangle]
76     pub static mut P: u8 = 0;
77 }