mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 10:03:47 +08:00
[GOLD] PR27815, gold fails to build with latest GCC
...gold/gc.h:250:37: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: [-Werror] 250 | (*secvec).push_back(Section_id(NULL, 0)); | ^~~~~~~~~~~~~~~~~~~ PR gold/27815 * gc.h (gc_process_relocs): Use nullptr in Section_id constructor. Don't use nullptr, it requires -std=c++11 on versions of gcc prior to 6.1. It would be possible to arrange to pass -std=c++11 automatically when required (top level configure does that for gcc builds) but that seems overkill and since we're not up-to-date on the top level config files would mean someone would need to sync those over. PR gold/27815 * gc.h (gc_process_relocs): Use cast in Section_id constructor. https://en.cppreference.com/w/cpp/types/NULL says NULL might be defined as nullptr. https://en.cppreference.com/w/cpp/language/reinterpret_cast says reinterpret_cast can't be used on nullptr. PR gold/28106 PR gold/27815 * gc.h (gc_process_relocs): Use static_cast in Section_id constructor. (cherry picked from commit1f1fb219fd
) (cherry picked from commit5d7f11f0e7
) (cherry picked from commitb97bd97623
)
This commit is contained in:
parent
74b1f14926
commit
ee51385839
@ -247,7 +247,7 @@ gc_process_relocs(
|
||||
if (is_ordinary)
|
||||
(*secvec).push_back(Section_id(src_obj, dst_indx));
|
||||
else
|
||||
(*secvec).push_back(Section_id(NULL, 0));
|
||||
(*secvec).push_back(Section_id(static_cast<Relobj*>(NULL), 0));
|
||||
// If the target of the relocation is an STT_SECTION symbol,
|
||||
// make a note of that by storing -1 in the symbol vector.
|
||||
if (lsym.get_st_type() == elfcpp::STT_SECTION)
|
||||
@ -329,7 +329,7 @@ gc_process_relocs(
|
||||
if (is_ordinary && dst_obj != NULL)
|
||||
(*secvec).push_back(Section_id(dst_obj, dst_indx));
|
||||
else
|
||||
(*secvec).push_back(Section_id(NULL, 0));
|
||||
(*secvec).push_back(Section_id(static_cast<Relobj*>(NULL), 0));
|
||||
(*symvec).push_back(gsym);
|
||||
(*addendvec).push_back(std::make_pair(
|
||||
static_cast<long long>(symvalue),
|
||||
|
Loading…
Reference in New Issue
Block a user