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