aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2020-10-13 05:08:25 -0700
committerH.J. Lu <hjl.tools@gmail.com>2020-10-13 05:08:39 -0700
commit1fb1d64f4a7c817f91a164dc22d5a22a0e75c1b8 (patch)
tree81d577a5a5ff88fd565ec93bb528c6cd9bfbc66a
parent1b71cfcfdc3e13a655fefa6566b5564cec044c10 (diff)
downloadgdb-1fb1d64f4a7c817f91a164dc22d5a22a0e75c1b8.zip
gdb-1fb1d64f4a7c817f91a164dc22d5a22a0e75c1b8.tar.gz
gdb-1fb1d64f4a7c817f91a164dc22d5a22a0e75c1b8.tar.bz2
Gold: Skip zero-sized sections for ICF
Skip zero-sized sections since there is no need to do ICF on them. * icf.cc (Icf::find_identical_sections): Skip zero-sized sections.
-rw-r--r--gold/ChangeLog4
-rw-r--r--gold/icf.cc2
2 files changed, 6 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 25248a6..0300722 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,7 @@
+2020-10-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * icf.cc (Icf::find_identical_sections): Skip zero-sized sections.
+
2020-10-09 Alan Modra <amodra@gmail.com>
* powerpc.cc (Powerpc_relobj::do_relocate_sections): Don't do
diff --git a/gold/icf.cc b/gold/icf.cc
index a60db7a..54af412 100644
--- a/gold/icf.cc
+++ b/gold/icf.cc
@@ -973,6 +973,8 @@ Icf::find_identical_sections(const Input_objects* input_objects,
for (unsigned int i = 0; i < (*p)->shnum(); ++i)
{
+ if ((*p)->section_size(i) == 0)
+ continue;
const std::string section_name = (*p)->section_name(i);
if (!is_section_foldable_candidate(section_name))
{