Commit cdc54cc9 by Tom Wood

*** empty log message ***

From-SVN: r729
parent f357808b
...@@ -4461,7 +4461,7 @@ digest_init (type, init, tail, require_constant, constructor_constant, ofwhat) ...@@ -4461,7 +4461,7 @@ digest_init (type, init, tail, require_constant, constructor_constant, ofwhat)
if (TREE_CODE (init) == NON_LVALUE_EXPR) if (TREE_CODE (init) == NON_LVALUE_EXPR)
inside_init = TREE_OPERAND (init, 0); inside_init = TREE_OPERAND (init, 0);
if (init && raw_constructor if (inside_init && raw_constructor
&& CONSTRUCTOR_ELTS (inside_init) != 0 && CONSTRUCTOR_ELTS (inside_init) != 0
&& TREE_CHAIN (CONSTRUCTOR_ELTS (inside_init)) == 0) && TREE_CHAIN (CONSTRUCTOR_ELTS (inside_init)) == 0)
{ {
...@@ -4672,8 +4672,12 @@ digest_init (type, init, tail, require_constant, constructor_constant, ofwhat) ...@@ -4672,8 +4672,12 @@ digest_init (type, init, tail, require_constant, constructor_constant, ofwhat)
({ ({
if (ofwhat) if (ofwhat)
push_string (ofwhat); push_string (ofwhat);
inside_init = convert_for_assignment (type, default_conversion (init), inside_init
&initialization_message, NULL_TREE, 0); = convert_for_assignment (type,
default_conversion (raw_constructor
? inside_init
: init),
&initialization_message, NULL_TREE, 0);
}); });
if (require_constant && ! TREE_CONSTANT (inside_init)) if (require_constant && ! TREE_CONSTANT (inside_init))
......
...@@ -3667,7 +3667,7 @@ fold (expr) ...@@ -3667,7 +3667,7 @@ fold (expr)
case EQ_EXPR: case EQ_EXPR:
return fold (build1 (NEGATE_EXPR, type, arg1)); return fold (build1 (NEGATE_EXPR, type, arg1));
case NE_EXPR: case NE_EXPR:
return arg1; return convert (type, arg1);
case GE_EXPR: case GE_EXPR:
case GT_EXPR: case GT_EXPR:
return fold (build1 (ABS_EXPR, type, arg1)); return fold (build1 (ABS_EXPR, type, arg1));
...@@ -3683,7 +3683,7 @@ fold (expr) ...@@ -3683,7 +3683,7 @@ fold (expr)
if (integer_zerop (TREE_OPERAND (arg0, 1)) && integer_zerop (arg2)) if (integer_zerop (TREE_OPERAND (arg0, 1)) && integer_zerop (arg2))
{ {
if (comp_code == NE_EXPR) if (comp_code == NE_EXPR)
return arg1; return convert (type, arg1);
else if (comp_code == EQ_EXPR) else if (comp_code == EQ_EXPR)
return convert (type, integer_zero_node); return convert (type, integer_zero_node);
} }
...@@ -3696,9 +3696,9 @@ fold (expr) ...@@ -3696,9 +3696,9 @@ fold (expr)
switch (comp_code) switch (comp_code)
{ {
case EQ_EXPR: case EQ_EXPR:
return arg2; return convert (type, arg2);
case NE_EXPR: case NE_EXPR:
return arg1; return convert (type, arg1);
case LE_EXPR: case LE_EXPR:
case LT_EXPR: case LT_EXPR:
return fold (build (MIN_EXPR, type, arg1, arg2)); return fold (build (MIN_EXPR, type, arg1, arg2));
......
...@@ -3187,8 +3187,8 @@ strength_reduce (scan_start, end, loop_top, insn_count, ...@@ -3187,8 +3187,8 @@ strength_reduce (scan_start, end, loop_top, insn_count,
&& GET_CODE (PATTERN (insn)) != RETURN && GET_CODE (PATTERN (insn)) != RETURN
&& (! condjump_p (insn) && (! condjump_p (insn)
|| (JUMP_LABEL (insn) != 0 || (JUMP_LABEL (insn) != 0
&& (INSN_UID (JUMP_LABEL (insn)) > max_uid_for_loop && (INSN_UID (JUMP_LABEL (insn)) >= max_uid_for_loop
|| INSN_UID (insn) > max_uid_for_loop || INSN_UID (insn) >= max_uid_for_loop
|| (INSN_LUID (JUMP_LABEL (insn)) || (INSN_LUID (JUMP_LABEL (insn))
< INSN_LUID (insn)))))) < INSN_LUID (insn))))))
{ {
......
...@@ -304,7 +304,7 @@ layout_record (rec) ...@@ -304,7 +304,7 @@ layout_record (rec)
record_align = MAX (record_align, desired_align); record_align = MAX (record_align, desired_align);
#else #else
if (PCC_BITFIELD_TYPE_MATTERS && TREE_TYPE (field) != error_mark_node if (PCC_BITFIELD_TYPE_MATTERS && TREE_TYPE (field) != error_mark_node
&& DECL_BIT_FIELD (field) && DECL_BIT_FIELD_TYPE (field)
&& ! integer_zerop (TYPE_SIZE (TREE_TYPE (field)))) && ! integer_zerop (TYPE_SIZE (TREE_TYPE (field))))
{ {
/* For these machines, a zero-length field does not /* For these machines, a zero-length field does not
...@@ -354,7 +354,7 @@ layout_record (rec) ...@@ -354,7 +354,7 @@ layout_record (rec)
if (PCC_BITFIELD_TYPE_MATTERS if (PCC_BITFIELD_TYPE_MATTERS
&& TREE_CODE (field) == FIELD_DECL && TREE_CODE (field) == FIELD_DECL
&& TREE_TYPE (field) != error_mark_node && TREE_TYPE (field) != error_mark_node
&& DECL_BIT_FIELD (field) && DECL_BIT_FIELD_TYPE (field)
&& !DECL_PACKED (field) && !DECL_PACKED (field)
&& !integer_zerop (DECL_SIZE (field))) && !integer_zerop (DECL_SIZE (field)))
{ {
...@@ -376,7 +376,7 @@ layout_record (rec) ...@@ -376,7 +376,7 @@ layout_record (rec)
if (BITFIELD_NBYTES_LIMITED if (BITFIELD_NBYTES_LIMITED
&& TREE_CODE (field) == FIELD_DECL && TREE_CODE (field) == FIELD_DECL
&& TREE_TYPE (field) != error_mark_node && TREE_TYPE (field) != error_mark_node
&& DECL_BIT_FIELD (field) && DECL_BIT_FIELD_TYPE (field)
&& !DECL_PACKED (field) && !DECL_PACKED (field)
&& !integer_zerop (DECL_SIZE (field))) && !integer_zerop (DECL_SIZE (field)))
{ {
...@@ -505,7 +505,7 @@ layout_union (rec) ...@@ -505,7 +505,7 @@ layout_union (rec)
#ifdef PCC_BITFIELD_TYPE_MATTERS #ifdef PCC_BITFIELD_TYPE_MATTERS
/* On the m88000, a bit field of declare type `int' /* On the m88000, a bit field of declare type `int'
forces the entire union to have `int' alignment. */ forces the entire union to have `int' alignment. */
if (PCC_BITFIELD_TYPE_MATTERS && DECL_BIT_FIELD (field)) if (PCC_BITFIELD_TYPE_MATTERS && DECL_BIT_FIELD_TYPE (field))
union_align = MAX (union_align, TYPE_ALIGN (TREE_TYPE (field))); union_align = MAX (union_align, TYPE_ALIGN (TREE_TYPE (field)));
#endif #endif
......
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