diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/opt/pr51396.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/opt/pr51396.C | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/opt/pr51396.C b/gcc-4.9/gcc/testsuite/g++.dg/opt/pr51396.C new file mode 100644 index 000000000..39ebe0887 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/opt/pr51396.C @@ -0,0 +1,24 @@ +// 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); +} |