summaryrefslogtreecommitdiff
path: root/gcc/c-pretty-print.c
diff options
context:
space:
mode:
authorgdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-30 06:34:57 +0000
committergdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-30 06:34:57 +0000
commit219e3838166676908a23c6859c526062491d1f9a (patch)
treec472c84e113ec07a3d06866afeafb25c9815f490 /gcc/c-pretty-print.c
parentfcc15fc5f131964ec6be8e2a1f800a65a685bc52 (diff)
downloadgcc-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.c32
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;