]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* fold-const.c (fold_convert): When casting an expression to void,
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Jan 2007 23:00:00 +0000 (23:00 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Jan 2007 23:00:00 +0000 (23:00 +0000)
fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
have a type.  Instead of attempting to build a NOP_EXPR, return
these "special" trees directly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120451 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/fold-const.c

index c6b21eb1b69f480a0e960447c36c4fed9f9fe4d9..3f81da506274fa1a9e975130cdcfcdc6fdefb9ff 100644 (file)
@@ -1,3 +1,10 @@
+2007-01-04  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_convert): When casting an expression to void,
+       fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
+       have a type.  Instead of attempting to build a NOP_EXPR, return
+       these "special" trees directly.
+
 2007-01-04  Joseph Myers  <joseph@codesourcery.com>
 
        * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
index 8826908054d447455a884e3d28e261b76cf44dce..559acf018adfb9f5c5dcc1b048302207cb7bd58a 100644 (file)
@@ -2144,7 +2144,10 @@ fold_convert (tree type, tree arg)
       return fold_build1 (VIEW_CONVERT_EXPR, type, arg);
 
     case VOID_TYPE:
-      return fold_build1 (NOP_EXPR, type, fold_ignored_result (arg));
+      tem = fold_ignored_result (arg);
+      if (TREE_CODE (tem) == GIMPLE_MODIFY_STMT)
+       return tem;
+      return fold_build1 (NOP_EXPR, type, tem);
 
     default:
       gcc_unreachable ();