[binutils-gdb] PR25244, --print-memory-usage, division by zero if MEMORY length is zero

Alan Modra amodra@sourceware.org
Thu Dec 5 07:08:00 GMT 2019


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1769380a11463b907263ef5443de5d14559f2095

commit 1769380a11463b907263ef5443de5d14559f2095
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Dec 5 16:37:25 2019 +1030

    PR25244, --print-memory-usage, division by zero if MEMORY length is zero
    
    	PR 25244
    	* ldlang.c (lang_print_memory_usage): Don't print percent used
    	when length is zero.

Diff:
---
 ld/ChangeLog | 6 ++++++
 ld/ldlang.c  | 9 +++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/ld/ChangeLog b/ld/ChangeLog
index adca95f..15b2d80 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2019-12-05  Alan Modra  <amodra@gmail.com>
+
+	PR 25244
+	* ldlang.c (lang_print_memory_usage): Don't print percent used
+	when length is zero.
+
 2019-11-27  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* testsuite/ld-elf/eh5.d: Accept version 3 DWARF CIE.
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 191d8f1..bb3cd91 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -9273,14 +9273,15 @@ lang_print_memory_usage (void)
   for (r = lang_memory_region_list; r->next != NULL; r = r->next)
     {
       bfd_vma used_length = r->current - r->origin;
-      double percent;
 
       printf ("%16s: ",r->name_list.name);
       lang_print_memory_size (used_length);
       lang_print_memory_size ((bfd_vma) r->length);
 
-      percent = used_length * 100.0 / r->length;
-
-      printf ("    %6.2f%%\n", percent);
+      if (r->length != 0)
+	{
+	  double percent = used_length * 100.0 / r->length;
+	  printf ("    %6.2f%%\n", percent);
+	}
     }
 }



More information about the Binutils-cvs mailing list