Commit 0a49e5c2 by Jakub Jelinek Committed by Jakub Jelinek

re PR middle-end/38347 (gfortran.dg/alloc_comp_constructor_1.f90 ICE with -O2 -fdefault-integer-8)

	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
parent 060481a0
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.
......
/* 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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment