// { dg-options "-w -O0 -fdump-tree-gimple" } struct Foo { First: i32, Second: f32 } struct Bar { First: i32, Second: f32 } struct Baz { First: i32, Second: f32 } const A:Foo = Foo { First: 1, Second: 1.0 }; const B:Bar = Bar { First: 2, Second: 2.0 }; const C:Baz = Baz { First: 3, Second: 2.0 }; const fn test() -> f32 { if (A.First == 2) { return A.Second; } else if (B.First == 2) { return B.Second; } else if (C.First == 2) { return C.Second; } return 0.0; } const D:f32 = test(); fn main() { // { dg-final { scan-tree-dump-times {d = 2.0} 1 gimple } } let d = D; }