if (conv)
;
- else if ((IS_AGGR_TYPE (non_reference (from))
+ else if (expr != NULL_TREE
+ && (IS_AGGR_TYPE (non_reference (from))
|| IS_AGGR_TYPE (non_reference (to)))
&& (flags & LOOKUP_NO_CONVERSION) == 0)
{
case POSTDECREMENT_EXPR:
args[1] = integer_zero_node;
type2 = integer_type_node;
+ break;
+ default:
+ break;
}
switch (code)
return rval;
TREE_TYPE (rval) = arg1;
- TREE_CALLS_NEW (rval) = 1;
return rval;
}
case CALL_EXPR:
return build_object_call (arg1, arg2);
+
+ default:
+ break;
}
/* The comma operator can have void args. */
case COMPOUND_EXPR:
case COMPONENT_REF:
return NULL_TREE;
+
+ default:
+ break;
}
if (flags & LOOKUP_COMPLAIN)
{
cp_warning ("comparison between `%#T' and `%#T'",
TREE_TYPE (arg1), TREE_TYPE (arg2));
}
+ break;
+ default:
+ break;
}
/* We need to strip any leading REF_BIND so that bitfields don't cause
/* Call build_user_type_conversion again for the error. */
return build_user_type_conversion
(TREE_TYPE (convs), TREE_OPERAND (convs, 0), LOOKUP_NORMAL);
+
+ default:
+ break;
};
expr = convert_like (TREE_OPERAND (convs, 0), expr);
error_mark_node);
case LVALUE_CONV:
return decay_conversion (expr);
+
+ default:
+ break;
}
return ocp_convert (TREE_TYPE (convs), expr, CONV_IMPLICIT,
LOOKUP_NORMAL|LOOKUP_NO_CONVERSION);
&& copy_args_p (fn))
{
tree targ;
- arg = TREE_VALUE (TREE_CHAIN (converted_args));
+ arg = TREE_CHAIN (converted_args);
+ if (TYPE_USES_VIRTUAL_BASECLASSES (DECL_CONTEXT (fn)))
+ arg = TREE_CHAIN (arg);
+ arg = TREE_VALUE (arg);
/* Pull out the real argument, disregarding const-correctness. */
targ = arg;