pp_wide_integer (pp, TREE_INT_CST_LOW (i));
else
{
+ unsigned HOST_WIDE_INT low = TREE_INT_CST_LOW (i);
+ HOST_WIDE_INT high = TREE_INT_CST_HIGH (i);
if (tree_int_cst_sgn (i) < 0)
{
pp_character (pp, '-');
- i = build_int_cst_wide (NULL_TREE,
- -TREE_INT_CST_LOW (i),
- ~TREE_INT_CST_HIGH (i)
- + !TREE_INT_CST_LOW (i));
+ high = ~high + !low;
+ low = -low;
}
sprintf (pp_buffer (pp)->digit_buffer,
- HOST_WIDE_INT_PRINT_DOUBLE_HEX,
- TREE_INT_CST_HIGH (i), TREE_INT_CST_LOW (i));
+ HOST_WIDE_INT_PRINT_DOUBLE_HEX, high, low);
pp_string (pp, pp_buffer (pp)->digit_buffer);
}
if (TYPE_UNSIGNED (type))
break;
case CALL_EXPR:
- pp_postfix_expression (pp, TREE_OPERAND (e, 0));
- pp_c_call_argument_list (pp, TREE_OPERAND (e, 1));
- break;
+ {
+ call_expr_arg_iterator iter;
+ tree arg;
+ pp_postfix_expression (pp, CALL_EXPR_FN (e));
+ pp_c_left_paren (pp);
+ FOR_EACH_CALL_EXPR_ARG (arg, iter, e)
+ {
+ pp_expression (pp, arg);
+ if (more_call_expr_args_p (&iter))
+ pp_separate_with (pp, ',');
+ }
+ pp_c_right_paren (pp);
+ break;
+ }
case UNORDERED_EXPR:
pp_c_identifier (pp, flag_isoc99
}
}
-/* Print out an expression-list in parens, as in a function call. */
+/* Print out an expression-list in parens, as if it were the argument
+ list to a function. */
void
pp_c_call_argument_list (c_pretty_printer *pp, tree t)
static void
pp_c_assignment_expression (c_pretty_printer *pp, tree e)
{
- if (TREE_CODE (e) == MODIFY_EXPR || TREE_CODE (e) == INIT_EXPR)
+ if (TREE_CODE (e) == MODIFY_EXPR
+ || TREE_CODE (e) == GIMPLE_MODIFY_STMT
+ || TREE_CODE (e) == INIT_EXPR)
{
- pp_c_unary_expression (pp, TREE_OPERAND (e, 0));
+ pp_c_unary_expression (pp, GENERIC_TREE_OPERAND (e, 0));
pp_c_whitespace (pp);
pp_equal (pp);
pp_space (pp);
- pp_c_expression (pp, TREE_OPERAND (e, 1));
+ pp_c_expression (pp, GENERIC_TREE_OPERAND (e, 1));
}
else
pp_c_conditional_expression (pp, e);
break;
case MODIFY_EXPR:
+ case GIMPLE_MODIFY_STMT:
case INIT_EXPR:
pp_assignment_expression (pp, e);
break;