Silence GCC 9 error about deprecated implicit copy constructor.
Replacing push_back() with emplace_back() eliminates the calls to the copy constructor, but I still had to provide explicit copy constructors because of the call to vector::reserve(), which tries to instantiate them even though they'll never actually be called when reserve() is called on an empty vector. gold/ * incremental.cc (Sized_incremental_binary::setup_readers): Use emplace_back for GCC 5 and later. * incremental.h (Incremental_binary::Input_reader): Provide copy constructor. (Sized_incremental_binary::Sized_input_reader): Likewise.
This commit is contained in:
parent
2e7a29d570
commit
a1893a821c
@ -1,3 +1,11 @@
|
||||
2018-06-22 Cary Coutant <ccoutant@gmail.com>
|
||||
|
||||
* incremental.cc (Sized_incremental_binary::setup_readers): Use
|
||||
emplace_back for GCC 5 and later.
|
||||
* incremental.h (Incremental_binary::Input_reader): Provide copy
|
||||
constructor.
|
||||
(Sized_incremental_binary::Sized_input_reader): Likewise.
|
||||
|
||||
2018-06-22 Cary Coutant <ccoutant@gmail.com>
|
||||
|
||||
PR gold/22914
|
||||
|
@ -311,7 +311,11 @@ Sized_incremental_binary<size, big_endian>::setup_readers()
|
||||
for (unsigned int i = 0; i < count; i++)
|
||||
{
|
||||
Input_entry_reader input_file = inputs.input_file(i);
|
||||
#if defined(__GNUC__) && __GNUC__ < 5
|
||||
this->input_entry_readers_.push_back(Sized_input_reader(input_file));
|
||||
#else
|
||||
this->input_entry_readers_.emplace_back(input_file);
|
||||
#endif
|
||||
switch (input_file.type())
|
||||
{
|
||||
case INCREMENTAL_INPUT_OBJECT:
|
||||
|
@ -1368,6 +1368,9 @@ class Incremental_binary
|
||||
Input_reader()
|
||||
{ }
|
||||
|
||||
Input_reader(const Input_reader&)
|
||||
{ }
|
||||
|
||||
virtual
|
||||
~Input_reader()
|
||||
{ }
|
||||
@ -1708,6 +1711,10 @@ class Sized_incremental_binary : public Incremental_binary
|
||||
: Input_reader(), reader_(r)
|
||||
{ }
|
||||
|
||||
Sized_input_reader(const Sized_input_reader& r)
|
||||
: Input_reader(), reader_(r.reader_)
|
||||
{ }
|
||||
|
||||
virtual
|
||||
~Sized_input_reader()
|
||||
{ }
|
||||
|
Loading…
Reference in New Issue
Block a user