]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/38347 (gfortran.dg/alloc_comp_constructor_1.f90 ICE with -O2 -fdefau...
authorJakub Jelinek <jakub@redhat.com>
Fri, 9 Jan 2009 13:43:14 +0000 (14:43 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 9 Jan 2009 13:43:14 +0000 (14:43 +0100)
PR middle-end/38347
* dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
GET_MODE (op0) in operand_subword_force calls.

From-SVN: r143204

gcc/ChangeLog
gcc/dojump.c

index 3a9d0e1b6a451aa6df1f1cdd9fec233acad92b42..3701476d8750e304fc0df7b133c2df7cc5f0fa50 100644 (file)
@@ -1,5 +1,9 @@
 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
 
+       PR middle-end/38347
+       * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
+       GET_MODE (op0) in operand_subword_force calls.
+
        PR middle-end/38771
        * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
        fold_convert arg0 operands to TREE_TYPE (op0) first.
index 849f69f07cdfcb8c894ac9c53af3a0d136eeb9d5..060eb51e77e11677703556de3f6a13f897002d91 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert tree expression to rtl instructions, for GNU compiler.
    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -675,10 +675,10 @@ do_jump_by_parts_zero_rtx (enum machine_mode mode, rtx op0,
      be slower, but that's highly unlikely.  */
 
   part = gen_reg_rtx (word_mode);
-  emit_move_insn (part, operand_subword_force (op0, 0, GET_MODE (op0)));
+  emit_move_insn (part, operand_subword_force (op0, 0, mode));
   for (i = 1; i < nwords && part != 0; i++)
     part = expand_binop (word_mode, ior_optab, part,
-                         operand_subword_force (op0, i, GET_MODE (op0)),
+                         operand_subword_force (op0, i, mode),
                          part, 1, OPTAB_WIDEN);
 
   if (part != 0)
@@ -694,7 +694,7 @@ do_jump_by_parts_zero_rtx (enum machine_mode mode, rtx op0,
     drop_through_label = if_false_label = gen_label_rtx ();
 
   for (i = 0; i < nwords; i++)
-    do_compare_rtx_and_jump (operand_subword_force (op0, i, GET_MODE (op0)),
+    do_compare_rtx_and_jump (operand_subword_force (op0, i, mode),
                              const0_rtx, EQ, 1, word_mode, NULL_RTX,
                              if_false_label, NULL_RTX);