diff options
author | Martin Liska <mliska@suse.cz> | 2019-10-29 09:45:06 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-10-29 08:45:06 +0000 |
commit | 50a2d3be7bf473c7590f77350fadf3471427ce09 (patch) | |
tree | 1535cbd21da96dd65bfd76e013d9b46a237393d2 | |
parent | 3518424d4bf6a9654c7fea7f046ed839e888b1d6 (diff) | |
download | gcc-50a2d3be7bf473c7590f77350fadf3471427ce09.zip gcc-50a2d3be7bf473c7590f77350fadf3471427ce09.tar.gz gcc-50a2d3be7bf473c7590f77350fadf3471427ce09.tar.bz2 |
Fix unsigned type overflow in memory report.
2019-10-29 Martin Liska <mliska@suse.cz>
* ggc-common.c: One can't subtract unsigned types
in compare function.
From-SVN: r277560
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ggc-common.c | 9 |
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 51097bb..b6eeead 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2019-10-29 Martin Liska <mliska@suse.cz> + * ggc-common.c: One can't subtract unsigned types + in compare function. + +2019-10-29 Martin Liska <mliska@suse.cz> + * cgraphunit.c (symbol_table::compile): Pass title as dump_memory_report argument. * toplev.c (dump_memory_report): New argument. diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c index 37d3c5d..48db420 100644 --- a/gcc/ggc-common.c +++ b/gcc/ggc-common.c @@ -928,10 +928,13 @@ public: static int compare (const void *first, const void *second) { - const mem_pair_t f = *(const mem_pair_t *)first; - const mem_pair_t s = *(const mem_pair_t *)second; + const mem_pair_t mem1 = *(const mem_pair_t *) first; + const mem_pair_t mem2 = *(const mem_pair_t *) second; - return s.second->get_balance () - f.second->get_balance (); + size_t balance1 = mem1.second->get_balance (); + size_t balance2 = mem2.second->get_balance (); + + return balance1 == balance2 ? 0 : (balance1 < balance2 ? 1 : -1); } /* Dump header with NAME. */ |