summaryrefslogtreecommitdiff
path: root/gcc/cp/dump.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/dump.c')
-rw-r--r--gcc/cp/dump.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c
index c63cfe2bd89..de569f2d894 100644
--- a/gcc/cp/dump.c
+++ b/gcc/cp/dump.c
@@ -388,10 +388,21 @@ cp_dump_tree (void* dump_info, tree t)
break;
case AGGR_INIT_EXPR:
- dump_int (di, "ctor", AGGR_INIT_VIA_CTOR_P (t));
- dump_child ("fn", TREE_OPERAND (t, 0));
- dump_child ("args", TREE_OPERAND (t, 1));
- dump_child ("decl", TREE_OPERAND (t, 2));
+ {
+ int i = 0;
+ tree arg;
+ aggr_init_expr_arg_iterator iter;
+ dump_int (di, "ctor", AGGR_INIT_VIA_CTOR_P (t));
+ dump_child ("fn", AGGR_INIT_EXPR_FN (t));
+ FOR_EACH_AGGR_INIT_EXPR_ARG (arg, iter, t)
+ {
+ char buffer[32];
+ sprintf (buffer, "%u", i);
+ dump_child (buffer, arg);
+ i++;
+ }
+ dump_child ("decl", AGGR_INIT_EXPR_SLOT (t));
+ }
break;
case HANDLER: