aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@nerim.net>2002-07-30 06:34:57 +0000
committerGabriel Dos Reis <gdr@gcc.gnu.org>2002-07-30 06:34:57 +0000
commit1e6a3e1e1ed2664c90b02372d92cc2a365adfde7 (patch)
treec472c84e113ec07a3d06866afeafb25c9815f490
parent03fc215c4cd08c7ba124c617a7676c0f2f689c3f (diff)
downloadgcc-1e6a3e1e1ed2664c90b02372d92cc2a365adfde7.zip
gcc-1e6a3e1e1ed2664c90b02372d92cc2a365adfde7.tar.gz
gcc-1e6a3e1e1ed2664c90b02372d92cc2a365adfde7.tar.bz2
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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/c-pretty-print.c32
2 files changed, 38 insertions, 1 deletions
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 <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
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;