aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2016-07-08 20:22:22 +0000
committerMartin Liska <mliska@suse.cz>2016-07-08 20:22:22 +0000
commit6553d0d0a725fa3066384946d80dfe558989caca (patch)
treeb444f003e54aca8e69b8ac03612a9a34148d56b8
parente01833c3daa99e4534c20e9c3f1a5474e4e83c46 (diff)
Do not consider COMPLEX_TYPE as fold_convertible_p
Backported from mainline 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. Backported from mainline 2016-07-08 Martin Liska <mliska@suse.cz> * gcc.dg/torture/pr71606.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@238174 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/fold-const.c1
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr71606.c11
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ef4bc992e3e..683efeb1a2e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2016-07-08 Martin Liska <mliska@suse.cz>
+
+ Backported from mainline
+ 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 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 61bbf82e169..f6d92abd250 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -1933,7 +1933,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 6949e8f23fd..38717717b77 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-08 Martin Liska <mliska@suse.cz>
+
+ Backported from mainline
+ 2016-07-08 Martin Liska <mliska@suse.cz>
+
+ * gcc.dg/torture/pr71606.c: New test.
+
2016-07-07 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
diff --git a/gcc/testsuite/gcc.dg/torture/pr71606.c b/gcc/testsuite/gcc.dg/torture/pr71606.c
new file mode 100644
index 00000000000..b0cc26ac771
--- /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;
+}