diff options
author | Kewen Lin <linkw@linux.ibm.com> | 2020-01-14 02:34:10 -0600 |
---|---|---|
committer | Kewen Lin <linkw@linux.ibm.com> | 2020-01-14 02:39:11 -0600 |
commit | b38e86ddb7a9b6d7e87d7cc0b23983d027fcbd96 (patch) | |
tree | ac08636905c56ca66c946998800cc121edde8c52 | |
parent | edabbec31e3bfc9a9757f80c8610706ed00e5a1a (diff) | |
download | gcc-b38e86ddb7a9b6d7e87d7cc0b23983d027fcbd96.zip gcc-b38e86ddb7a9b6d7e87d7cc0b23983d027fcbd96.tar.gz gcc-b38e86ddb7a9b6d7e87d7cc0b23983d027fcbd96.tar.bz2 |
Fix typo and avoid possible memory leak in average_num_loop_insns
Function average_num_loop_insns forgets to free loop body in early
return. Besides, overflow comparison checks 1000000 (e6) but the
return value is 100000 (e5), fix this typo.
gcc/ChangeLog
2020-01-14 Kewen Lin <linkw@gcc.gnu.org>
* cfgloopanal.c (average_num_loop_insns): Free bbs when early
return, fix typo on return value.
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgloopanal.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 07e5beb..f3301b1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2020-01-14 Kewen Lin <linkw@gcc.gnu.org> + + * cfgloopanal.c (average_num_loop_insns): Free bbs when early return, + fix typo on return value. + 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com> PR ipa/69678 diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c index 392b1c3..0b33e82 100644 --- a/gcc/cfgloopanal.c +++ b/gcc/cfgloopanal.c @@ -219,7 +219,10 @@ average_num_loop_insns (const class loop *loop) ninsns += (sreal)binsns * bb->count.to_sreal_scale (loop->header->count); /* Avoid overflows. */ if (ninsns > 1000000) - return 100000; + { + free (bbs); + return 1000000; + } } free (bbs); |