40 lines
621 B
Rust
40 lines
621 B
Rust
|
//@ run-pass
|
||
|
|
||
|
// This test used to be miscompiled by LLVM 17.
|
||
|
#![allow(dead_code)]
|
||
|
|
||
|
enum Pass {
|
||
|
Opaque {
|
||
|
clear_color: [f32; 4],
|
||
|
with_depth_pre_pass: bool,
|
||
|
},
|
||
|
Transparent,
|
||
|
}
|
||
|
|
||
|
enum LoadOp {
|
||
|
Clear,
|
||
|
Load,
|
||
|
}
|
||
|
|
||
|
#[inline(never)]
|
||
|
fn check(x: Option<LoadOp>) {
|
||
|
assert!(x.is_none());
|
||
|
}
|
||
|
|
||
|
#[inline(never)]
|
||
|
fn test(mode: Pass) {
|
||
|
check(match mode {
|
||
|
Pass::Opaque {
|
||
|
with_depth_pre_pass: true,
|
||
|
..
|
||
|
}
|
||
|
| Pass::Transparent => None,
|
||
|
_ => Some(LoadOp::Clear),
|
||
|
});
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
println!("Hello, world!");
|
||
|
test(Pass::Transparent);
|
||
|
}
|