aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2016-07-08 09:52:03 +0200
committerMartin Liska <marxin@gcc.gnu.org>2016-07-08 07:52:03 +0000
commit2660286dcab0a72865faa3406c1e81572a1e42c8 (patch)
tree077fd0d189f5525c6d73a9798ee9442de39956ad
parent70cdd4ae94a5db49774b64881e93b6c58ecc5574 (diff)
downloadgcc-2660286dcab0a72865faa3406c1e81572a1e42c8.zip
gcc-2660286dcab0a72865faa3406c1e81572a1e42c8.tar.gz
gcc-2660286dcab0a72865faa3406c1e81572a1e42c8.tar.bz2
Do not consider COMPLEX_TYPE as fold_convertible_p
PR middle-end/71606 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE folding produces SAVE_EXPRs, thus return false for the type. * gcc.dg/torture/pr71606.c: New test. From-SVN: r238157
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/fold-const.c1
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr71606.c11
4 files changed, 21 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c3d6327..afd022e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-07-08 Martin Liska <mliska@suse.cz>
+
+ PR middle-end/71606
+ * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
+ folding produces SAVE_EXPRs, thus return false for the type.
+
2016-07-07 Martin Liska <mliska@suse.cz>
* file-find.c (remove_prefix): New function.
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index f97b8bf..ac051ff 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -2192,7 +2192,6 @@ fold_convertible_p (const_tree type, const_tree arg)
case REAL_TYPE:
case FIXED_POINT_TYPE:
- case COMPLEX_TYPE:
case VECTOR_TYPE:
case VOID_TYPE:
return TREE_CODE (type) == TREE_CODE (orig);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 22a4a58..8a4dc1d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2016-07-08 Martin Liska <mliska@suse.cz>
+
+ * gcc.dg/torture/pr71606.c: New test.
+
2016-07-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/71764
diff --git a/gcc/testsuite/gcc.dg/torture/pr71606.c b/gcc/testsuite/gcc.dg/torture/pr71606.c
new file mode 100644
index 0000000..b0cc26a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr71606.c
@@ -0,0 +1,11 @@
+_Complex a;
+void fn1 ();
+
+int main () {
+ fn1 (a);
+ return 0;
+}
+
+void fn1 (__complex__ long double p1) {
+ __imag__ p1 = 6.0L;
+}