diff options
author | Roland McGrath <mcgrathr@google.com> | 2023-09-05 12:28:31 -0700 |
---|---|---|
committer | Roland McGrath <mcgrathr@google.com> | 2023-09-06 17:20:20 -0700 |
commit | 5e9091dab8858b25210a91d22fbbbfdee9c969ad (patch) | |
tree | 26ae016fb8cfbaab56557b052ead63511cde47e2 /gold | |
parent | 33a0b291058120c1294e90b53a5299c3ec62bad9 (diff) | |
download | binutils-5e9091dab8858b25210a91d22fbbbfdee9c969ad.zip binutils-5e9091dab8858b25210a91d22fbbbfdee9c969ad.tar.gz binutils-5e9091dab8858b25210a91d22fbbbfdee9c969ad.tar.bz2 |
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.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 14 | ||||
-rw-r--r-- | gold/merge.cc | 4 | ||||
-rw-r--r-- | gold/output.cc | 5 | ||||
-rw-r--r-- | gold/stringpool.cc | 5 |
4 files changed, 22 insertions, 6 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 93a1125..54fb1c1 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -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. diff --git a/gold/merge.cc b/gold/merge.cc index c12efc9..ce31a792 100644 --- a/gold/merge.cc +++ b/gold/merge.cc @@ -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 diff --git a/gold/output.cc b/gold/output.cc index a1978eb..6053e4d 100644 --- a/gold/output.cc +++ b/gold/output.cc @@ -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; diff --git a/gold/stringpool.cc b/gold/stringpool.cc index a2cd44d..b5ac1dd 100644 --- a/gold/stringpool.cc +++ b/gold/stringpool.cc @@ -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. |