+2002-07-30 Gabriel Dos Reis <gdr@nerim.net>
+
+ * c-pretty-print.c (pp_c_primary_expression): Handle STMT_EXPR.
+ (pp_c_postfix_expression): Handle ARROW_EXPR, FFS_EXPR,
+ COMPOUND_LITERAL_EXPR, VA_ARG_EXPR.
+ (pp_c_expression): Update.
+
2002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or
}
pp_c_right_paren (ppi);
+ case STMT_EXPR:
+ pp_c_left_paren (ppi);
+ pp_statement (ppi, STMT_EXPR_STMT (e));
+ pp_c_right_paren (ppi);
+ break;
+
default:
/* Make sure this call won't cause any infinite loop. */
pp_c_left_paren (ppi);
pp_postfix_expression (ppi, TREE_OPERAND (e, 0));
pp_identifier (ppi, code == POSTINCREMENT_EXPR ? "++" : "--");
break;
+
+ case ARROW_EXPR:
+ pp_postfix_expression (ppi, TREE_OPERAND (e, 0));
+ pp_arrow (ppi);
+ break;
case ARRAY_REF:
pp_postfix_expression (ppi, TREE_OPERAND (e, 0));
break;
case ABS_EXPR:
- pp_c_identifier (ppi, "abs");
+ case FFS_EXPR:
+ pp_c_identifier (ppi,
+ code == ABS_EXPR ? "__builtin_abs" : "__builtin_ffs");
pp_c_left_paren (ppi);
pp_c_expression (ppi, TREE_OPERAND (e, 0));
pp_c_right_paren (ppi);
pp_right_brace (ppi);
break;
+ case COMPOUND_LITERAL_EXPR:
+ e = DECL_INITIAL (e);
+ /* Fall through. */
case CONSTRUCTOR:
pp_initializer (ppi, e);
break;
+
+ case VA_ARG_EXPR:
+ pp_c_identifier (ppi, "__builtin_va_arg");
+ pp_c_left_paren (ppi);
+ pp_assignment_expression (ppi, TREE_OPERAND (e, 0));
+ pp_separate_with (ppi, ',');
+ pp_type_id (ppi, TREE_TYPE (e));
+ pp_c_right_paren (ppi);
+ break;
default:
pp_primary_expression (ppi, e);
case LABEL_DECL:
case ERROR_MARK:
case TARGET_EXPR:
+ case STMT_EXPR:
pp_c_primary_expression (ppi, e);
break;
case POSTINCREMENT_EXPR:
case POSTDECREMENT_EXPR:
+ case ARROW_EXPR:
case ARRAY_REF:
case CALL_EXPR:
case COMPONENT_REF:
case COMPLEX_CST:
case VECTOR_CST:
case ABS_EXPR:
+ case FFS_EXPR:
case CONSTRUCTOR:
+ case COMPOUND_LITERAL_EXPR:
case COMPLEX_EXPR:
+ case VA_ARG_EXPR:
pp_c_postfix_expression (ppi, e);
break;