mirror of git://gcc.gnu.org/git/gcc.git
Fix integer overflow in stats of trees.
2018-01-12 Martin Liska <mliska@suse.cz> * tree-core.h: Use uint64_t instead of int. * tree.c (tree_node_counts): Likewise. (tree_node_sizes): Likewise. (dump_tree_statistics): Use PRIu64 in printf format. From-SVN: r256583
This commit is contained in:
parent
b27b31dc2d
commit
00e4d22dc1
|
|
@ -1,3 +1,10 @@
|
|||
2018-01-12 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* tree-core.h: Use uint64_t instead of int.
|
||||
* tree.c (tree_node_counts): Likewise.
|
||||
(tree_node_sizes): Likewise.
|
||||
(dump_tree_statistics): Use PRIu64 in printf format.
|
||||
|
||||
2018-01-12 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* Makefile.in: As qsort_chk is implemented in vec.c, add
|
||||
|
|
|
|||
|
|
@ -2123,8 +2123,8 @@ extern GTY(()) tree integer_types[itk_none];
|
|||
extern GTY(()) tree sizetype_tab[(int) stk_type_kind_last];
|
||||
|
||||
/* Arrays for keeping track of tree node statistics. */
|
||||
extern int tree_node_counts[];
|
||||
extern int tree_node_sizes[];
|
||||
extern uint64_t tree_node_counts[];
|
||||
extern uint64_t tree_node_sizes[];
|
||||
|
||||
/* True if we are in gimple form and the actions of the folders need to
|
||||
be restricted. False if we are not in gimple form and folding is not
|
||||
|
|
|
|||
20
gcc/tree.c
20
gcc/tree.c
|
|
@ -129,9 +129,9 @@ extern int _obstack_allocated_p (struct obstack *h, void *obj);
|
|||
|
||||
/* Statistics-gathering stuff. */
|
||||
|
||||
static int tree_code_counts[MAX_TREE_CODES];
|
||||
int tree_node_counts[(int) all_kinds];
|
||||
int tree_node_sizes[(int) all_kinds];
|
||||
static uint64_t tree_code_counts[MAX_TREE_CODES];
|
||||
uint64_t tree_node_counts[(int) all_kinds];
|
||||
uint64_t tree_node_sizes[(int) all_kinds];
|
||||
|
||||
/* Keep in sync with tree.h:enum tree_node_kind. */
|
||||
static const char * const tree_node_kind_names[] = {
|
||||
|
|
@ -9123,25 +9123,27 @@ dump_tree_statistics (void)
|
|||
if (GATHER_STATISTICS)
|
||||
{
|
||||
int i;
|
||||
int total_nodes, total_bytes;
|
||||
uint64_t total_nodes, total_bytes;
|
||||
fprintf (stderr, "\nKind Nodes Bytes\n");
|
||||
mem_usage::print_dash_line (TREE_MEM_USAGE_SPACES);
|
||||
total_nodes = total_bytes = 0;
|
||||
for (i = 0; i < (int) all_kinds; i++)
|
||||
{
|
||||
fprintf (stderr, "%-20s %7d %10d\n", tree_node_kind_names[i],
|
||||
tree_node_counts[i], tree_node_sizes[i]);
|
||||
fprintf (stderr, "%-20s %7" PRIu64 " %10" PRIu64 "\n",
|
||||
tree_node_kind_names[i], tree_node_counts[i],
|
||||
tree_node_sizes[i]);
|
||||
total_nodes += tree_node_counts[i];
|
||||
total_bytes += tree_node_sizes[i];
|
||||
}
|
||||
mem_usage::print_dash_line (TREE_MEM_USAGE_SPACES);
|
||||
fprintf (stderr, "%-20s %7d %10d\n", "Total", total_nodes, total_bytes);
|
||||
fprintf (stderr, "%-20s %7" PRIu64 " %10" PRIu64 "\n", "Total",
|
||||
total_nodes, total_bytes);
|
||||
mem_usage::print_dash_line (TREE_MEM_USAGE_SPACES);
|
||||
fprintf (stderr, "Code Nodes\n");
|
||||
mem_usage::print_dash_line (TREE_MEM_USAGE_SPACES);
|
||||
for (i = 0; i < (int) MAX_TREE_CODES; i++)
|
||||
fprintf (stderr, "%-32s %7d\n", get_tree_code_name ((enum tree_code) i),
|
||||
tree_code_counts[i]);
|
||||
fprintf (stderr, "%-32s %7" PRIu64 "\n",
|
||||
get_tree_code_name ((enum tree_code) i), tree_code_counts[i]);
|
||||
mem_usage::print_dash_line (TREE_MEM_USAGE_SPACES);
|
||||
fprintf (stderr, "\n");
|
||||
ssanames_print_statistics ();
|
||||
|
|
|
|||
Loading…
Reference in New Issue