mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
gold: Use char16_t, char32_t instead of uint16_t, uint32_t as character types
The std::basic_string template type is only specified for instantiations using character types. Newer (LLVM) libc++ implementations no longer allow non-character integer types to be used. gold/ * output.cc: Include <uchar.h>. (Output_section::add_merge_input_section): Use char16_t and char32_t for 2- and 4-byte entry size, respectively. * stringpool.cc: Include <uchar.h>. (Stringpool_template): Explicitly instantiate for char16_t, char32_t instead of uint16_t, uint32_t. * merge.cc (Output_merge_string): Likewise.
This commit is contained in:
parent
33a0b29105
commit
5e9091dab8
@ -1,3 +1,17 @@
|
||||
2023-09-05 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
The std::basic_string template type is only specified for
|
||||
instantiations using character types. Newer (LLVM) libc++
|
||||
implementations no longer allow non-character integer types
|
||||
to be used.
|
||||
* output.cc: Include <uchar.h>.
|
||||
(Output_section::add_merge_input_section): Use char16_t and
|
||||
char32_t for 2- and 4-byte entry size, respectively.
|
||||
* stringpool.cc: Include <uchar.h>.
|
||||
(Stringpool_template): Explicitly instantiate for char16_t,
|
||||
char32_t instead of uint16_t, uint32_t.
|
||||
* merge.cc (Output_merge_string): Likewise.
|
||||
|
||||
2023-07-03 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* po/gold.pot: Regenerate.
|
||||
|
@ -665,10 +665,10 @@ template
|
||||
class Output_merge_string<char>;
|
||||
|
||||
template
|
||||
class Output_merge_string<uint16_t>;
|
||||
class Output_merge_string<char16_t>;
|
||||
|
||||
template
|
||||
class Output_merge_string<uint32_t>;
|
||||
class Output_merge_string<char32_t>;
|
||||
|
||||
#if defined(HAVE_TARGET_32_LITTLE) || defined(HAVE_TARGET_32_BIG)
|
||||
template
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#include <algorithm>
|
||||
#include <uchar.h>
|
||||
|
||||
#ifdef HAVE_SYS_MMAN_H
|
||||
#include <sys/mman.h>
|
||||
@ -2706,10 +2707,10 @@ Output_section::add_merge_input_section(Relobj* object, unsigned int shndx,
|
||||
pomb = new Output_merge_string<char>(addralign);
|
||||
break;
|
||||
case 2:
|
||||
pomb = new Output_merge_string<uint16_t>(addralign);
|
||||
pomb = new Output_merge_string<char16_t>(addralign);
|
||||
break;
|
||||
case 4:
|
||||
pomb = new Output_merge_string<uint32_t>(addralign);
|
||||
pomb = new Output_merge_string<char32_t>(addralign);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <cstring>
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
#include <uchar.h>
|
||||
|
||||
#include "output.h"
|
||||
#include "parameters.h"
|
||||
@ -527,9 +528,9 @@ template
|
||||
class Stringpool_template<char>;
|
||||
|
||||
template
|
||||
class Stringpool_template<uint16_t>;
|
||||
class Stringpool_template<char16_t>;
|
||||
|
||||
template
|
||||
class Stringpool_template<uint32_t>;
|
||||
class Stringpool_template<char32_t>;
|
||||
|
||||
} // End namespace gold.
|
||||
|
Loading…
Reference in New Issue
Block a user