diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/opt/conj2.C')
-rw-r--r-- | gcc/testsuite/g++.dg/opt/conj2.C | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/opt/conj2.C b/gcc/testsuite/g++.dg/opt/conj2.C new file mode 100644 index 000000000..25e832a02 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/conj2.C @@ -0,0 +1,23 @@ +// PR target/6043 +// This testcase ICEd on IA-64 because emit_group_store +// did not handle loading CONCAT from register group +// { dg-do compile } + +struct C +{ + C (double y, double z) { __real__ x = y; __imag__ x = z; } + double r () const { return __real__ x; } + double i () const { return __imag__ x; } + __complex__ double x; +}; + +inline C conj (const C& x) +{ + return C (x.r (), - x.i ()); +} + +void foo (void) +{ + C x (1.0, 1.0); + conj (x); +} |