Mercurial > hg > CbC > CbC_gcc
diff gcc/print-tree.c @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
line wrap: on
line diff
--- a/gcc/print-tree.c Tue May 25 18:58:51 2010 +0900 +++ b/gcc/print-tree.c Tue Mar 22 17:18:12 2011 +0900 @@ -50,7 +50,7 @@ Most nodes referred to by this one are printed recursively down to a depth of six. */ -void +DEBUG_FUNCTION void debug_tree (tree node) { table = XCNEWVEC (struct bucket *, HASH_SIZE); @@ -60,6 +60,20 @@ putc ('\n', stderr); } +/* Print the vector of trees VEC on standard error, for debugging. + Most nodes referred to by this one are printed recursively + down to a depth of six. */ + +DEBUG_FUNCTION void +debug_vec_tree (VEC(tree,gc) *vec) +{ + table = XCNEWVEC (struct bucket *, HASH_SIZE); + print_vec_tree (stderr, "", vec, 0); + free (table); + table = 0; + putc ('\n', stderr); +} + /* Print PREFIX and ADDR to FILE. */ void dump_addr (FILE *file, const char *prefix, const void *addr) @@ -425,6 +439,8 @@ if (code == VAR_DECL && DECL_IN_TEXT_SECTION (node)) fputs (" in-text-section", file); + if (code == VAR_DECL && DECL_IN_CONSTANT_POOL (node)) + fputs (" in-constant-pool", file); if (code == VAR_DECL && DECL_COMMON (node)) fputs (" common", file); if (code == VAR_DECL && DECL_THREAD_LOCAL_P (node)) @@ -860,8 +876,7 @@ { char temp[10]; sprintf (temp, "elt %d", i); - indent_to (file, indent + 4); - print_node_brief (file, temp, TREE_VEC_ELT (node, i), 0); + print_node (file, temp, TREE_VEC_ELT (node, i), indent + 4); } break; @@ -979,3 +994,27 @@ fprintf (file, ">"); } + +/* Print the tree vector VEC in full on file FILE, preceded by PREFIX, + starting in column INDENT. */ + +void +print_vec_tree (FILE *file, const char *prefix, VEC(tree,gc) *vec, int indent) +{ + tree elt; + unsigned ix; + + /* Indent to the specified column, since this is the long form. */ + indent_to (file, indent); + + /* Print the slot this node is in, and its code, and address. */ + fprintf (file, "%s <VEC", prefix); + dump_addr (file, " ", vec); + + FOR_EACH_VEC_ELT (tree, vec, ix, elt) + { + char temp[10]; + sprintf (temp, "elt %d", ix); + print_node (file, temp, elt, indent + 4); + } +}