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