| //@ compile-flags: -C opt-level=0 | |
| #![crate_type = "lib"] | |
| #[repr(C)] | |
| pub enum E { | |
| A, | |
| } | |
| // CHECK-LABEL: @index | |
| #[no_mangle] | |
| pub fn index(x: &[u32; 3], ind: E) -> u32 { | |
| // Canary: we should be able to optimize out the bounds check, but we need | |
| // to track the range of the discriminant result in order to be able to do that. | |
| // oli-obk tried to add that, but that caused miscompilations all over the place. | |
| // CHECK: panic_bounds_check | |
| x[ind as usize] | |
| } |