From: Doug Kwan Date: Thu, 14 Jan 2010 02:42:20 +0000 (+0000) Subject: 2010-01-13 Doug Kwan X-Git-Tag: sid-snapshot-20100201~210 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b521dfe453f0590a99375d060a1e0a6f2fa9afec;p=external%2Fbinutils.git 2010-01-13 Doug Kwan * arm.cc (Arm_relobj::section_needs_reloc_stub_scanning, Arm_relobj::scan_sections_for_stubs): Rearrange code to avoid an apparent compiler problem of not folding static constant integral data members of elfcpp::Elf_sizes<32>. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index 32d7fb7..c6d0c16 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,6 +1,13 @@ 2010-01-13 Doug Kwan * arm.cc (Arm_relobj::section_needs_reloc_stub_scanning, + Arm_relobj::scan_sections_for_stubs): Rearrange code to avoid an + apparent compiler problem of not folding static constant integral + data members of elfcpp::Elf_sizes<32>. + +2010-01-13 Doug Kwan + + * arm.cc (Arm_relobj::section_needs_reloc_stub_scanning, Arm_relobj::section_needs_cortex_a8_stub_scanning, Arm_relobj::scan_section_for_cortex_a8_erratum, Arm_relobj::scan_span_for_cortex_a8_erratum): New methods. diff --git a/gold/arm.cc b/gold/arm.cc index c9ea2fd..38f9d71 100644 --- a/gold/arm.cc +++ b/gold/arm.cc @@ -4203,9 +4203,11 @@ Arm_relobj::section_needs_reloc_stub_scanning( if (this->adjust_shndx(shdr.get_sh_link()) != this->symtab_shndx()) return false; - const unsigned int reloc_size = (sh_type == elfcpp::SHT_REL - ? elfcpp::Elf_sizes<32>::rel_size - : elfcpp::Elf_sizes<32>::rela_size); + unsigned int reloc_size; + if (sh_type == elfcpp::SHT_REL) + reloc_size = elfcpp::Elf_sizes<32>::rel_size; + else + reloc_size = elfcpp::Elf_sizes<32>::rela_size; // Ignore reloc section with unexpected entsize or uneven size. // The error will be reported in the final link. @@ -4380,9 +4382,11 @@ Arm_relobj::scan_sections_for_stubs( relinfo.reloc_shndx = i; relinfo.data_shndx = index; unsigned int sh_type = shdr.get_sh_type(); - const unsigned int reloc_size = (sh_type == elfcpp::SHT_REL - ? elfcpp::Elf_sizes<32>::rel_size - : elfcpp::Elf_sizes<32>::rela_size); + unsigned int reloc_size; + if (sh_type == elfcpp::SHT_REL) + reloc_size = elfcpp::Elf_sizes<32>::rel_size; + else + reloc_size = elfcpp::Elf_sizes<32>::rela_size; Output_section* os = out_sections[index]; arm_target->scan_section_for_stubs(&relinfo, sh_type, prelocs,