1 // Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
12 // `#[no_mangle]`d static variables always have external linkage, i.e. no `internal` in their
15 #![crate_type = "lib"]
18 // CHECK: @A = local_unnamed_addr constant
22 // CHECK: @B = local_unnamed_addr global
26 // CHECK: @C = local_unnamed_addr constant
30 // CHECK: @D = local_unnamed_addr global
32 pub static mut D: u8 = 0;
35 // CHECK: @E = local_unnamed_addr constant
39 // CHECK: @F = local_unnamed_addr global
43 // CHECK: @G = local_unnamed_addr constant
47 // CHECK: @H = local_unnamed_addr global
49 pub static mut H: u8 = 0;
53 // CHECK: @I = local_unnamed_addr constant
57 // CHECK: @J = local_unnamed_addr global
61 // CHECK: @K = local_unnamed_addr constant
65 // CHECK: @L = local_unnamed_addr global
67 pub static mut L: u8 = 0;
70 // The surrounding item should not accidentally become external
72 // CHECK: @M = local_unnamed_addr constant
76 // CHECK: @N = local_unnamed_addr global
80 // CHECK: @O = local_unnamed_addr constant
84 // CHECK: @P = local_unnamed_addr global
86 pub static mut P: u8 = 0;
88 // CHECK: define internal void @_ZN26external_no_mangle_statics1x{{.*$}}