mirror of git://gcc.gnu.org/git/gcc.git
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. From-SVN: r261023 |
||
|---|---|---|
| INSTALL | ||
| config | ||
| contrib | ||
| fixincludes | ||
| gcc | ||
| gnattools | ||
| gotools | ||
| include | ||
| intl | ||
| libada | ||
| libatomic | ||
| libbacktrace | ||
| libcc1 | ||
| libcpp | ||
| libdecnumber | ||
| libffi | ||
| libgcc | ||
| libgfortran | ||
| libgo | ||
| libgomp | ||
| libhsail-rt | ||
| libiberty | ||
| libitm | ||
| libmpx | ||
| libobjc | ||
| liboffloadmic | ||
| libquadmath | ||
| libsanitizer | ||
| libssp | ||
| libstdc++-v3 | ||
| libvtv | ||
| lto-plugin | ||
| maintainer-scripts | ||
| zlib | ||
| .dir-locals.el | ||
| .gitattributes | ||
| .gitignore | ||
| ABOUT-NLS | ||
| COPYING | ||
| COPYING.LIB | ||
| COPYING.RUNTIME | ||
| COPYING3 | ||
| COPYING3.LIB | ||
| ChangeLog | ||
| ChangeLog.jit | ||
| ChangeLog.tree-ssa | ||
| MAINTAINERS | ||
| Makefile.def | ||
| Makefile.in | ||
| Makefile.tpl | ||
| README | ||
| compile | ||
| config-ml.in | ||
| config.guess | ||
| config.rpath | ||
| config.sub | ||
| configure | ||
| configure.ac | ||
| depcomp | ||
| install-sh | ||
| libtool-ldflags | ||
| libtool.m4 | ||
| ltgcc.m4 | ||
| ltmain.sh | ||
| ltoptions.m4 | ||
| ltsugar.m4 | ||
| ltversion.m4 | ||
| lt~obsolete.m4 | ||
| missing | ||
| mkdep | ||
| mkinstalldirs | ||
| move-if-change | ||
| symlink-tree | ||
| ylwrap | ||
README
This directory contains the GNU Compiler Collection (GCC). The GNU Compiler Collection is free software. See the files whose names start with COPYING for copying permission. The manuals, and some of the runtime libraries, are under different terms; see the individual source files for details. The directory INSTALL contains copies of the installation information as HTML and plain text. The source of this information is gcc/doc/install.texi. The installation information includes details of what is included in the GCC sources and what files GCC installs. See the file gcc/doc/gcc.texi (together with other files that it includes) for usage and porting information. An online readable version of the manual is in the files gcc/doc/gcc.info*. See http://gcc.gnu.org/bugs/ for how to report bugs usefully. Copyright years on GCC source files may be listed using range notation, e.g., 1987-2012, indicating that every year in the range, inclusive, is a copyrightable year that could otherwise be listed individually.