the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-/* TODO: Class types.
- Binfos. */
-
#include "config.h"
#include "system.h"
#include "tree.h"
static void dump_string_field PROTO ((dump_info_p, const char *, const char *));
static void dump_node PROTO ((tree, FILE *));
static void dump_stmt PROTO ((dump_info_p, tree));
+static void dump_next_stmt PROTO ((dump_info_p, tree));
/* Add T to the end of the queue of nodes to dump. If DUMP_CHILDREN_P
is non-zero, then its children should be dumped as well. Returns
#define dump_child(field, child) \
queue_and_dump_index (di, field, child, DUMP_CHILDREN)
+/* Dump the next statement after STMT. */
+
+static void
+dump_next_stmt (di, t)
+ dump_info_p di;
+ tree t;
+{
+ dump_child ("next", TREE_CHAIN (t));
+}
+
/* Dump the next node in the queue. */
static void
dump_child ("ins", ASM_INPUTS (t));
dump_child ("clbr", ASM_CLOBBERS (t));
}
+ dump_next_stmt (di, t);
break;
case BREAK_STMT:
case CONTINUE_STMT:
dump_stmt (di, t);
+ dump_next_stmt (di, t);
break;
case CASE_LABEL:
dump_child ("low", CASE_LOW (t));
dump_child ("high", CASE_HIGH (t));
}
+ dump_next_stmt (di, t);
break;
case COMPOUND_STMT:
dump_stmt (di, t);
if (dump_children_p)
dump_child ("body", COMPOUND_BODY (t));
+ dump_next_stmt (di, t);
break;
case DECL_STMT:
dump_stmt (di, t);
if (dump_children_p)
dump_child ("decl", DECL_STMT_DECL (t));
+ dump_next_stmt (di, t);
break;
case DO_STMT:
dump_child ("body", DO_BODY (t));
dump_child ("cond", DO_COND (t));
}
+ dump_next_stmt (di, t);
break;
case EXPR_STMT:
dump_stmt (di, t);
if (dump_children_p)
dump_child ("expr", EXPR_STMT_EXPR (t));
+ dump_next_stmt (di, t);
break;
case FOR_STMT:
dump_child ("expr", FOR_EXPR (t));
dump_child ("body", FOR_BODY (t));
}
+ dump_next_stmt (di, t);
break;
case GOTO_STMT:
dump_stmt (di, t);
if (dump_children_p)
dump_child ("dest", GOTO_DESTINATION (t));
+ dump_next_stmt (di, t);
break;
case IF_STMT:
dump_child ("then", THEN_CLAUSE (t));
dump_child ("else", ELSE_CLAUSE (t));
}
+ dump_next_stmt (di, t);
break;
case RETURN_STMT:
dump_stmt (di, t);
if (dump_children_p)
dump_child ("expr", RETURN_EXPR (t));
+ dump_next_stmt (di, t);
break;
case SWITCH_STMT:
dump_child ("cond", SWITCH_COND (t));
dump_child ("body", SWITCH_BODY (t));
}
+ dump_next_stmt (di, t);
break;
case TRY_BLOCK:
dump_child ("body", TRY_STMTS (t));
dump_child ("hdlr", TRY_HANDLERS (t));
}
+ dump_next_stmt (di, t);
break;
case WHILE_STMT:
dump_child ("cond", WHILE_COND (t));
dump_child ("body", WHILE_BODY (t));
}
+ dump_next_stmt (di, t);
break;
case INTEGER_CST:
dump_child ("elts", TREE_OPERAND (t, 1));
break;
+ case STMT_EXPR:
+ if (dump_children_p)
+ dump_child ("stmt", STMT_EXPR_STMT (t));
+ break;
+
default:
/* There are no additional fields to print. */
break;