diff options
author | gdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-07-30 06:34:57 +0000 |
---|---|---|
committer | gdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-07-30 06:34:57 +0000 |
commit | 219e3838166676908a23c6859c526062491d1f9a (patch) | |
tree | c472c84e113ec07a3d06866afeafb25c9815f490 /gcc/c-pretty-print.c | |
parent | fcc15fc5f131964ec6be8e2a1f800a65a685bc52 (diff) | |
download | gcc-219e3838166676908a23c6859c526062491d1f9a.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55864 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-pretty-print.c')
-rw-r--r-- | gcc/c-pretty-print.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/gcc/c-pretty-print.c b/gcc/c-pretty-print.c index 20a80037776..19c83d48731 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; |