// PR tree-optimization/51396 // { dg-do compile } // { dg-options "-O2 -fnon-call-exceptions" } // { dg-additional-options "-mfma" { target i?86-*-* x86_64-*-* } } double baz (double) throw (); struct C { C (double d = 0.0) : c (d) {} double c; }; static inline void foo (double x, const C &y) { x ? (y.c * baz (x)) : (C (), y); } void bar (double x, C y) { foo (x, y); }