libstdc++: Remove redundant dependencies on _GLIBCXX_USE_C99_STDINT_TR1

We never need to use std::make_unsigned in std::char_traits<char16_t>
and std::char_traits<char32_t> because <cstdint> guarantees to provide
the types we need, since r9-2028-g8ba7f29e3dd064.

Similarly, experimental::source_location can just assume uint_least32_t
is defined by <cstdint>.

libstdc++-v3/ChangeLog:

	* include/bits/char_traits.h (char_traits<char16_t>): Do not
	depend on _GLIBCXX_USE_C99_STDINT_TR1.
	(char_traits<char32_t>): Likewise.
	* include/experimental/source_location: Likewise.
This commit is contained in:
Jonathan Wakely 2023-05-12 14:25:50 +01:00
parent 0b6aebf7bb
commit 1f973c295b
2 changed files with 2 additions and 12 deletions

View file

@ -762,10 +762,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef char16_t char_type;
#ifdef __UINT_LEAST16_TYPE__
typedef __UINT_LEAST16_TYPE__ int_type;
#elif defined _GLIBCXX_USE_C99_STDINT_TR1
typedef uint_least16_t int_type;
#else
typedef make_unsigned<char16_t>::type int_type;
typedef uint_least16_t int_type;
#endif
#if _GLIBCXX_HOSTED
typedef streamoff off_type;
@ -891,10 +889,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef char32_t char_type;
#ifdef __UINT_LEAST32_TYPE__
typedef __UINT_LEAST32_TYPE__ int_type;
#elif defined _GLIBCXX_USE_C99_STDINT_TR1
typedef uint_least32_t int_type;
#else
typedef make_unsigned<char32_t>::type int_type;
typedef uint_least32_t int_type;
#endif
#if _GLIBCXX_HOSTED
typedef streamoff off_type;

View file

@ -44,12 +44,6 @@ inline namespace fundamentals_v2 {
struct source_location
{
#ifndef _GLIBCXX_USE_C99_STDINT_TR1
private:
using uint_least32_t = unsigned;
public:
#endif
// 14.1.2, source_location creation
static constexpr source_location
current(const char* __file = __builtin_FILE(),