diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f45983db5f..f21e60b75c3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2013-06-25 Eric Botcazou + + * expr.c (expand_expr_real_1) : Fix formatting glitches. + : Remove trailing TAB. + * varasm.c (output_constructor_bitfield): Fix formatting glitch and + remove blank line. + 2013-06-24 Martin Jambor PR tree-optimization/57358 diff --git a/gcc/expr.c b/gcc/expr.c index bce96c9c227..923f59bffda 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -9698,7 +9698,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, { tree array = treeop0; tree index = treeop1; - tree init; + tree init; /* Fold an expression like: "foo"[2]. This is not done in fold so it won't happen inside &. @@ -9776,32 +9776,31 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, break; } - return expand_expr (fold (value), target, tmode, - modifier); + return + expand_expr (fold (value), target, tmode, modifier); } } - else if(TREE_CODE (init) == STRING_CST) + else if (TREE_CODE (init) == STRING_CST) { - tree index1 = index; tree low_bound = array_ref_low_bound (exp); - index1 = fold_convert_loc (loc, sizetype, - treeop1); + tree index1 = fold_convert_loc (loc, sizetype, treeop1); - /* Optimize the special-case of a zero lower bound. + /* Optimize the special case of a zero lower bound. - We convert the low_bound to sizetype to avoid some problems - with constant folding. (E.g. suppose the lower bound is 1, - and its mode is QI. Without the conversion,l (ARRAY - +(INDEX-(unsigned char)1)) becomes ((ARRAY+(-(unsigned char)1)) - +INDEX), which becomes (ARRAY+255+INDEX). Opps!) */ - - if (! integer_zerop (low_bound)) + We convert the lower bound to sizetype to avoid problems + with constant folding. E.g. suppose the lower bound is + 1 and its mode is QI. Without the conversion + (ARRAY + (INDEX - (unsigned char)1)) + becomes + (ARRAY + (-(unsigned char)1) + INDEX) + which becomes + (ARRAY + 255 + INDEX). Oops! */ + if (!integer_zerop (low_bound)) index1 = size_diffop_loc (loc, index1, - fold_convert_loc (loc, sizetype, - low_bound)); + fold_convert_loc (loc, sizetype, + low_bound)); - if (0 > compare_tree_int (index1, - TREE_STRING_LENGTH (init))) + if (compare_tree_int (index1, TREE_STRING_LENGTH (init)) < 0) { tree type = TREE_TYPE (TREE_TYPE (init)); enum machine_mode mode = TYPE_MODE (type); @@ -10187,7 +10186,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, || modifier == EXPAND_CONST_ADDRESS || modifier == EXPAND_INITIALIZER) return op0; - + if (target == 0) target = gen_reg_rtx (tmode != VOIDmode ? tmode : mode); diff --git a/gcc/varasm.c b/gcc/varasm.c index c21a25fcd25..8efd98e0020 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -4947,7 +4947,7 @@ output_constructor_bitfield (oc_local_state *local, unsigned int bit_offset) /* Bit position of this element from the start of a possibly ongoing outer byte buffer. */ HOST_WIDE_INT byte_relative_ebitpos - = bit_offset + constructor_relative_ebitpos; + = bit_offset + constructor_relative_ebitpos; /* From the start of a possibly ongoing outer byte buffer, offsets to the first bit of this element and to the first bit past the end of @@ -5131,7 +5131,6 @@ output_constructor (tree exp, unsigned HOST_WIDE_INT size, local.total_bytes = 0; local.byte_buffer_in_use = outer != NULL; local.byte = outer ? outer->byte : 0; - local.last_relative_index = -1; gcc_assert (HOST_BITS_PER_WIDE_INT >= BITS_PER_UNIT);