From 1e6a3e1e1ed2664c90b02372d92cc2a365adfde7 Mon Sep 17 00:00:00 2001 From: Gabriel Dos Reis Date: Tue, 30 Jul 2002 06:34:57 +0000 Subject: [PATCH] c-pretty-print.c (pp_c_primary_expression): Handle STMT_EXPR. * 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. From-SVN: r55864 --- gcc/ChangeLog | 7 +++++++ gcc/c-pretty-print.c | 32 +++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d3b958a..f8e3ef6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2002-07-30 Gabriel Dos Reis + + * 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 * alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or diff --git a/gcc/c-pretty-print.c b/gcc/c-pretty-print.c index 20a8003..19c83d4 100644 --- a/gcc/c-pretty-print.c +++ b/gcc/c-pretty-print.c @@ -335,6 +335,12 @@ pp_c_primary_expression (ppi, e) } 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); @@ -416,6 +422,11 @@ pp_c_postfix_expression (ppi, e) 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)); @@ -432,7 +443,9 @@ pp_c_postfix_expression (ppi, e) 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); @@ -481,9 +494,21 @@ pp_c_postfix_expression (ppi, e) 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); @@ -868,19 +893,24 @@ pp_c_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; -- 2.7.4