if (TREE_CODE (init) == NON_LVALUE_EXPR)
inside_init = TREE_OPERAND (init, 0);
- if (init && raw_constructor
+ if (inside_init && raw_constructor
&& CONSTRUCTOR_ELTS (inside_init) != 0
&& TREE_CHAIN (CONSTRUCTOR_ELTS (inside_init)) == 0)
{
({
if (ofwhat)
push_string (ofwhat);
- inside_init = convert_for_assignment (type, default_conversion (init),
- &initialization_message, NULL_TREE, 0);
+ inside_init
+ = convert_for_assignment (type,
+ default_conversion (raw_constructor
+ ? inside_init
+ : init),
+ &initialization_message, NULL_TREE, 0);
});
if (require_constant && ! TREE_CONSTANT (inside_init))
case EQ_EXPR:
return fold (build1 (NEGATE_EXPR, type, arg1));
case NE_EXPR:
- return arg1;
+ return convert (type, arg1);
case GE_EXPR:
case GT_EXPR:
return fold (build1 (ABS_EXPR, type, arg1));
if (integer_zerop (TREE_OPERAND (arg0, 1)) && integer_zerop (arg2))
{
if (comp_code == NE_EXPR)
- return arg1;
+ return convert (type, arg1);
else if (comp_code == EQ_EXPR)
return convert (type, integer_zero_node);
}
switch (comp_code)
{
case EQ_EXPR:
- return arg2;
+ return convert (type, arg2);
case NE_EXPR:
- return arg1;
+ return convert (type, arg1);
case LE_EXPR:
case LT_EXPR:
return fold (build (MIN_EXPR, type, arg1, arg2));
&& GET_CODE (PATTERN (insn)) != RETURN
&& (! condjump_p (insn)
|| (JUMP_LABEL (insn) != 0
- && (INSN_UID (JUMP_LABEL (insn)) > max_uid_for_loop
- || INSN_UID (insn) > max_uid_for_loop
+ && (INSN_UID (JUMP_LABEL (insn)) >= max_uid_for_loop
+ || INSN_UID (insn) >= max_uid_for_loop
|| (INSN_LUID (JUMP_LABEL (insn))
< INSN_LUID (insn))))))
{
record_align = MAX (record_align, desired_align);
#else
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))))
{
/* For these machines, a zero-length field does not
if (PCC_BITFIELD_TYPE_MATTERS
&& TREE_CODE (field) == FIELD_DECL
&& TREE_TYPE (field) != error_mark_node
- && DECL_BIT_FIELD (field)
+ && DECL_BIT_FIELD_TYPE (field)
&& !DECL_PACKED (field)
&& !integer_zerop (DECL_SIZE (field)))
{
if (BITFIELD_NBYTES_LIMITED
&& TREE_CODE (field) == FIELD_DECL
&& TREE_TYPE (field) != error_mark_node
- && DECL_BIT_FIELD (field)
+ && DECL_BIT_FIELD_TYPE (field)
&& !DECL_PACKED (field)
&& !integer_zerop (DECL_SIZE (field)))
{
#ifdef PCC_BITFIELD_TYPE_MATTERS
/* On the m88000, a bit field of declare type `int'
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)));
#endif