]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR c/48685 (ICE in gimplify_expr, at gimplify.c:7034)
authorJakub Jelinek <jakub@redhat.com>
Tue, 3 May 2011 16:33:09 +0000 (18:33 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 3 May 2011 16:33:09 +0000 (18:33 +0200)
Backport from mainline
2011-04-23  Jakub Jelinek  <jakub@redhat.com>

PR c/48685
* fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
to VOID_TYPE even around MODIFY_EXPR.

* gcc.dg/pr48685.c: New test.

From-SVN: r173324

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

index 434c4ca1dcf5d9d8e7ce641bceeb71718081c19c..a67888f9965f59e4886931f49341b0e12ccd7eef 100644 (file)
@@ -1,3 +1,12 @@
+2011-05-03  Jakub Jelinek  <jakub@redhat.com>
+
+       Backport from mainline
+       2011-04-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/48685
+       * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
+       to VOID_TYPE even around MODIFY_EXPR.
+
 2011-05-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
 
        PR middle-end/43085
index 799a3cb41d2443fd764cfb1c76994e5b1ebf8095..cd207d98200ef31a6cd7482ae3f761ac78cefbf1 100644 (file)
@@ -2784,8 +2784,6 @@ fold_convert_loc (location_t loc, tree type, tree arg)
 
     case VOID_TYPE:
       tem = fold_ignored_result (arg);
-      if (TREE_CODE (tem) == MODIFY_EXPR)
-       goto fold_convert_exit;
       return fold_build1_loc (loc, NOP_EXPR, type, tem);
 
     default:
index 62656be1d4fd4728b0dee326b936f1c5c1ee59b0..0bacbf0c652b007a570ace0a241c4764aecc3d91 100644 (file)
@@ -1,3 +1,11 @@
+2011-05-03  Jakub Jelinek  <jakub@redhat.com>
+
+       Backport from mainline
+       2011-04-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/48685
+       * gcc.dg/pr48685.c: New test.
+
 2011-04-27  Jason Merrill  <jason@redhat.com>
 
        * g++.dg/parse/ambig6.C: New.
diff --git a/gcc/testsuite/gcc.dg/pr48685.c b/gcc/testsuite/gcc.dg/pr48685.c
new file mode 100644 (file)
index 0000000..36df0cc
--- /dev/null
@@ -0,0 +1,11 @@
+/* PR c/48685 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+int
+main ()
+{
+  int v = 1;
+  (void) (1 == 2 ? (void) 0 : (v = 0));
+  return v;
+}