]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Do not consider COMPLEX_TYPE as fold_convertible_p
authorMartin Liska <mliska@suse.cz>
Fri, 8 Jul 2016 20:22:22 +0000 (22:22 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Fri, 8 Jul 2016 20:22:22 +0000 (20:22 +0000)
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.

From-SVN: r238174

gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr71606.c [new file with mode: 0644]

index ef4bc992e3e24173b641f25723b1c16602ff0712..683efeb1a2eff09d766b42ace7ac8ad127f579c9 100644 (file)
@@ -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
index 61bbf82e169c4bca717e3c24959483ae3a40289a..f6d92abd2504a60df253cd98e03d7fdb74c01ffc 100644 (file)
@@ -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);
index 6949e8f23fd96da7ed373fb2d4f38e09de15c9c2..38717717b77f4c97fd73b4b0f147cb211c40a73e 100644 (file)
@@ -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 (file)
index 0000000..b0cc26a
--- /dev/null
@@ -0,0 +1,11 @@
+_Complex a;
+void fn1 ();
+
+int main () {
+  fn1 (a);
+  return 0;
+}
+
+void fn1 (__complex__ long double p1) {
+  __imag__ p1 = 6.0L;
+}