diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2005-07-08 18:05:04 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2005-07-08 11:05:04 -0700 |
commit | d5c77941577bbb6ace7a8e13dfca2c3b61a4ded9 (patch) | |
tree | 7edc035a3eacb5bdb81a0175686988f2f0a128b9 /gcc | |
parent | 08a3c5cdef945fbf42de92d347dc51cc98b4b007 (diff) | |
download | gcc-d5c77941577bbb6ace7a8e13dfca2c3b61a4ded9.zip gcc-d5c77941577bbb6ace7a8e13dfca2c3b61a4ded9.tar.gz gcc-d5c77941577bbb6ace7a8e13dfca2c3b61a4ded9.tar.bz2 |
re PR tree-optimization/22356 (mis-match types in cplxlower)
2005-07-08 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22356
* testsuite/gcc.dg/pr22356-1.c: New test.
2005-07-08 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22356
* tree-complex.c (expand_complex_libcall): Produce
REALPART_EXPR/IMAGPART_EXPR with the correct type.
From-SVN: r101781
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr22356-1.c | 11 | ||||
-rw-r--r-- | gcc/tree-complex.c | 1 |
4 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b4ae5cd..88c127f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-07-08 Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/22356 + * tree-complex.c (expand_complex_libcall): Produce + REALPART_EXPR/IMAGPART_EXPR with the correct type. + 2005-07-08 Kenneth Zadeck <zadeck@naturalbridge.com> * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8bfd32b..ac82940 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-07-08 Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/22356 + * testsuite/gcc.dg/pr22356-1.c: New test. + 2005-07-08 Nathan Sidwell <nathan@codesourcery.com> PR c++/21799 diff --git a/gcc/testsuite/gcc.dg/pr22356-1.c b/gcc/testsuite/gcc.dg/pr22356-1.c new file mode 100644 index 0000000..118b0b2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr22356-1.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -std=gnu99" } */ +typedef _Complex float GFC_COMPLEX_4; +void product_c4 (GFC_COMPLEX_4 *src, GFC_COMPLEX_4 *dest, int len) +{ + int n; + GFC_COMPLEX_4 result; + for (n = 0; n < len; n++, src += 1) + result *= *src; + *dest = result; +} diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c index e32dd23..21e9245 100644 --- a/gcc/tree-complex.c +++ b/gcc/tree-complex.c @@ -833,6 +833,7 @@ expand_complex_libcall (block_stmt_iterator *bsi, tree ar, tree ai, if (in_ssa_p) { tree lhs = TREE_OPERAND (stmt, 0); + type = TREE_TYPE (type); update_complex_components (bsi, stmt, build1 (REALPART_EXPR, type, lhs), build1 (IMAGPART_EXPR, type, lhs)); |