This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Because the wide character types are neither signed integer types nor unsigned integer types they need to be transformed to an integral type of the correct size and the lowest rank (which is not necessarily the underlying type). Reuse the helpers for enumeration types to select the correct integer. The refactoring of __make_unsigned_selector and __make_signed_selector slightly reduces the number of template instantiations and so reduces memory usage. PR libstdc++/85951 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define uint_least16_t and uint_least32_t. (__make_unsigned<wchar_t>): Define unconditionally. (__make_unsigned_selector<_Tp, true, false>): Remove intermediate typedefs. (__make_unsigned_selector_base): New type to provide helper templates. (__make_unsigned_selector<_Tp, false, true>): Reimplement using __make_unsigned_selector_base helpers. (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define. (__make_signed_selector<_Tp, true, false>): Remove intermediate typedefs. (__make_signed<wchar_t>, __make_signed<char16_t>) (__make_signed<char32_t>)): Define unconditionally. * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check wchar_t, char16_t and char32_t are transformed correctly. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lineno. * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check wchar_t, char16_t and char32_t are transformed correctly. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust dg-error lineno. Tested powerpc64le-linux, committed to trunk. I'll backport a simpler version without the refactoring.
Attachment:
patch.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |