1 // unit-test: SimplifyLocals-before-const-prop
4 #![feature(thread_local)]
12 // EMIT_MIR simplify_locals.c.SimplifyLocals-before-const-prop.diff
14 let bytes = [0u8; 10];
16 let _: &[u8] = &bytes;
19 // EMIT_MIR simplify_locals.d1.SimplifyLocals-before-const-prop.diff
21 // Unused set discriminant
25 // EMIT_MIR simplify_locals.d2.SimplifyLocals-before-const-prop.diff
27 // Unused set discriminant
28 {(10, E::A)}.1 = E::B;
31 // EMIT_MIR simplify_locals.r.SimplifyLocals-before-const-prop.diff
39 #[thread_local] static mut X: u32 = 0;
41 // EMIT_MIR simplify_locals.t1.SimplifyLocals-before-const-prop.diff
43 // Unused thread local
47 // EMIT_MIR simplify_locals.t2.SimplifyLocals-before-const-prop.diff
49 // Unused thread local
53 // EMIT_MIR simplify_locals.t3.SimplifyLocals-before-const-prop.diff
55 // Unused thread local
59 // EMIT_MIR simplify_locals.t4.SimplifyLocals-before-const-prop.diff
65 // EMIT_MIR simplify_locals.expose_addr.SimplifyLocals-before-const-prop.diff
66 fn expose_addr(p: *const usize) {
67 // Used pointer to address cast. Has a side effect of exposing the provenance.