PR28106, build of 2.37 fails on FreeBSD and Clang

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.
This commit is contained in:
Alan Modra
2021-07-20 18:46:57 +09:30
parent 05558223b5
commit b97bd97623
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2021-07-20 Alan Modra <amodra@gmail.com>
PR gold/28106
PR gold/27815
* gc.h (gc_process_relocs): Use static_cast in Section_id constructor.
2021-07-17 Michael Krasnyk <michael.krasnyk@gmail.com>
PR gold/28098

View File

@ -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(reinterpret_cast<Relobj*>(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(reinterpret_cast<Relobj*>(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),