From: Torbjörn SVENSSON Date: Sun, 17 Dec 2023 21:16:08 +0000 (+0100) Subject: ld: Print 0 size in B and not in GB X-Git-Tag: binutils-2_42~533 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8ea1e363b92243b0562e4a4a360a582e368884a8;p=thirdparty%2Fbinutils-gdb.git ld: Print 0 size in B and not in GB When using --print-memory-usage, the printed size can be zero and in that case, the unit should be B and not GB. ld/ * ldlang.c (lang_print_memory_size) Print 0 B instead of 0 GB. * testsuite/ld-scripts/print-memory-usage-1.l: Validate emplty region. * testsuite/ld-scripts/print-memory-usage-1.t: Define empty region. Signed-off-by: Torbjörn SVENSSON --- diff --git a/ld/ldlang.c b/ld/ldlang.c index 566c2b8326f..105404adcfb 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -9921,7 +9921,9 @@ lang_ld_feature (char *str) static void lang_print_memory_size (uint64_t sz) { - if ((sz & 0x3fffffff) == 0) + if (sz == 0) + printf (" %10" PRIu64 " B", sz); + else if ((sz & 0x3fffffff) == 0) printf ("%10" PRIu64 " GB", sz >> 30); else if ((sz & 0xfffff) == 0) printf ("%10" PRIu64 " MB", sz >> 20); diff --git a/ld/testsuite/ld-scripts/print-memory-usage-1.l b/ld/testsuite/ld-scripts/print-memory-usage-1.l index e666a632c96..c59722059fd 100644 --- a/ld/testsuite/ld-scripts/print-memory-usage-1.l +++ b/ld/testsuite/ld-scripts/print-memory-usage-1.l @@ -1,3 +1,4 @@ Memory region Used Size Region Size %age Used ROM: 32 B 1 KB 3.1[23]% RAM: 32 B 256 KB 0.01% + FOO: 0 B 1 KB 0.00% diff --git a/ld/testsuite/ld-scripts/print-memory-usage-1.t b/ld/testsuite/ld-scripts/print-memory-usage-1.t index 97065b30c52..56484f451c5 100644 --- a/ld/testsuite/ld-scripts/print-memory-usage-1.t +++ b/ld/testsuite/ld-scripts/print-memory-usage-1.t @@ -2,4 +2,5 @@ MEMORY { ROM (RX) : ORIGIN = 0x1000, LENGTH = 1K RAM (W) : ORIGIN = 0x100000, LENGTH = 256K + FOO (RX) : ORIGIN = 0x100, LENGTH = 1K }