Commit 33b366c3 by Martin Liska Committed by Martin Liska

Fix integer overflow in stats of GIMPLE statements.

2018-01-12  Martin Liska  <mliska@suse.cz>

	* gimple.c (gimple_alloc_counts): Use uint64_t instead of int.
	(gimple_alloc_sizes): Likewise.
	(dump_gimple_statistics): Use PRIu64 in printf format.
	* gimple.h: Change uint64_t to int.

From-SVN: r256584
parent 00e4d22d
2018-01-12 Martin Liska <mliska@suse.cz> 2018-01-12 Martin Liska <mliska@suse.cz>
* gimple.c (gimple_alloc_counts): Use uint64_t instead of int.
(gimple_alloc_sizes): Likewise.
(dump_gimple_statistics): Use PRIu64 in printf format.
* gimple.h: Change uint64_t to int.
2018-01-12 Martin Liska <mliska@suse.cz>
* tree-core.h: Use uint64_t instead of int. * tree-core.h: Use uint64_t instead of int.
* tree.c (tree_node_counts): Likewise. * tree.c (tree_node_counts): Likewise.
(tree_node_sizes): Likewise. (tree_node_sizes): Likewise.
......
...@@ -77,8 +77,8 @@ EXPORTED_CONST enum gimple_statement_structure_enum gss_for_code_[] = { ...@@ -77,8 +77,8 @@ EXPORTED_CONST enum gimple_statement_structure_enum gss_for_code_[] = {
/* Gimple stats. */ /* Gimple stats. */
int gimple_alloc_counts[(int) gimple_alloc_kind_all]; uint64_t gimple_alloc_counts[(int) gimple_alloc_kind_all];
int gimple_alloc_sizes[(int) gimple_alloc_kind_all]; uint64_t gimple_alloc_sizes[(int) gimple_alloc_kind_all];
/* Keep in sync with gimple.h:enum gimple_alloc_kind. */ /* Keep in sync with gimple.h:enum gimple_alloc_kind. */
static const char * const gimple_alloc_kind_names[] = { static const char * const gimple_alloc_kind_names[] = {
...@@ -2057,11 +2057,12 @@ gimple_assign_rhs_could_trap_p (gimple *s) ...@@ -2057,11 +2057,12 @@ gimple_assign_rhs_could_trap_p (gimple *s)
void void
dump_gimple_statistics (void) dump_gimple_statistics (void)
{ {
int i, total_tuples = 0, total_bytes = 0; int i;
uint64_t total_tuples = 0, total_bytes = 0;
if (! GATHER_STATISTICS) if (! GATHER_STATISTICS)
{ {
fprintf (stderr, "No gimple statistics\n"); fprintf (stderr, "No GIMPLE statistics\n");
return; return;
} }
...@@ -2070,13 +2071,15 @@ dump_gimple_statistics (void) ...@@ -2070,13 +2071,15 @@ dump_gimple_statistics (void)
fprintf (stderr, "---------------------------------------\n"); fprintf (stderr, "---------------------------------------\n");
for (i = 0; i < (int) gimple_alloc_kind_all; ++i) for (i = 0; i < (int) gimple_alloc_kind_all; ++i)
{ {
fprintf (stderr, "%-20s %7d %10d\n", gimple_alloc_kind_names[i], fprintf (stderr, "%-20s %7" PRIu64 " %10" PRIu64 "\n",
gimple_alloc_counts[i], gimple_alloc_sizes[i]); gimple_alloc_kind_names[i], gimple_alloc_counts[i],
gimple_alloc_sizes[i]);
total_tuples += gimple_alloc_counts[i]; total_tuples += gimple_alloc_counts[i];
total_bytes += gimple_alloc_sizes[i]; total_bytes += gimple_alloc_sizes[i];
} }
fprintf (stderr, "---------------------------------------\n"); fprintf (stderr, "---------------------------------------\n");
fprintf (stderr, "%-20s %7d %10d\n", "Total", total_tuples, total_bytes); fprintf (stderr, "%-20s %7" PRIu64 " %10" PRIu64 "\n", "Total",
total_tuples, total_bytes);
fprintf (stderr, "---------------------------------------\n"); fprintf (stderr, "---------------------------------------\n");
} }
......
...@@ -6386,8 +6386,8 @@ enum gimple_alloc_kind ...@@ -6386,8 +6386,8 @@ enum gimple_alloc_kind
gimple_alloc_kind_all gimple_alloc_kind_all
}; };
extern int gimple_alloc_counts[]; extern uint64_t gimple_alloc_counts[];
extern int gimple_alloc_sizes[]; extern uint64_t gimple_alloc_sizes[];
/* Return the allocation kind for a given stmt CODE. */ /* Return the allocation kind for a given stmt CODE. */
static inline enum gimple_alloc_kind static inline enum gimple_alloc_kind
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment