diff options
-rw-r--r-- | gold/ChangeLog | 8 | ||||
-rw-r--r-- | gold/incremental.cc | 4 | ||||
-rw-r--r-- | gold/plugin.cc | 2 |
3 files changed, 11 insertions, 3 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 77b1f88..9614a87 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,11 @@ +2020-12-19 H.J. Lu <hjl.tools@gmail.com> + + PR gold/27097 + * incremental.cc (Sized_relobj_incr::do_add_symbols): Move sym + declaration just before use. + (Sized_incr_dynobj::do_add_symbols): Likewise. + * plugin.cc (Sized_pluginobj::do_add_symbols): Likewise. + 2020-12-15 Cary Coutant <ccoutant@gmail.com> * dwp.cc (class Dwo_file): Use new Ehdr::get_ei_osabi and diff --git a/gold/incremental.cc b/gold/incremental.cc index 1f2ae5b..525c92c 100644 --- a/gold/incremental.cc +++ b/gold/incremental.cc @@ -2129,7 +2129,6 @@ Sized_relobj_incr<size, big_endian>::do_add_symbols( { const int sym_size = elfcpp::Elf_sizes<size>::sym_size; unsigned char symbuf[sym_size]; - elfcpp::Sym<size, big_endian> sym(symbuf); elfcpp::Sym_write<size, big_endian> osym(symbuf); typedef typename elfcpp::Elf_types<size>::Elf_WXword Elf_size_type; @@ -2196,6 +2195,7 @@ Sized_relobj_incr<size, big_endian>::do_add_symbols( osym.put_st_other(gsym.get_st_other()); osym.put_st_shndx(shndx); + elfcpp::Sym<size, big_endian> sym(symbuf); Symbol* res = symtab->add_from_incrobj(this, name, NULL, &sym); if (shndx != elfcpp::SHN_UNDEF) @@ -2730,7 +2730,6 @@ Sized_incr_dynobj<size, big_endian>::do_add_symbols( { const int sym_size = elfcpp::Elf_sizes<size>::sym_size; unsigned char symbuf[sym_size]; - elfcpp::Sym<size, big_endian> sym(symbuf); elfcpp::Sym_write<size, big_endian> osym(symbuf); unsigned int nsyms = this->input_reader_.get_global_symbol_count(); @@ -2795,6 +2794,7 @@ Sized_incr_dynobj<size, big_endian>::do_add_symbols( osym.put_st_other(gsym.get_st_other()); osym.put_st_shndx(shndx); + elfcpp::Sym<size, big_endian> sym(symbuf); Sized_symbol<size>* res = symtab->add_from_incrobj<size, big_endian>(this, name, NULL, &sym); this->symbols_[i] = res; diff --git a/gold/plugin.cc b/gold/plugin.cc index fd37957..5f5da5d 100644 --- a/gold/plugin.cc +++ b/gold/plugin.cc @@ -1397,7 +1397,6 @@ Sized_pluginobj<size, big_endian>::do_add_symbols(Symbol_table* symtab, { const int sym_size = elfcpp::Elf_sizes<size>::sym_size; unsigned char symbuf[sym_size]; - elfcpp::Sym<size, big_endian> sym(symbuf); elfcpp::Sym_write<size, big_endian> osym(symbuf); Plugin_recorder* recorder = parameters->options().plugins()->recorder(); @@ -1480,6 +1479,7 @@ Sized_pluginobj<size, big_endian>::do_add_symbols(Symbol_table* symtab, osym.put_st_other(vis, 0); osym.put_st_shndx(shndx); + elfcpp::Sym<size, big_endian> sym(symbuf); this->symbols_[i] = symtab->add_from_pluginobj<size, big_endian>(this, name, ver, &sym); } |