[all-commits] [llvm/llvm-project] f4c125: [libc++] Add an option to disable wide character s...

Louis Dionne via All-commits all-commits at lists.llvm.org
Tue Oct 12 03:08:45 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f4c1258d5633fcf06385ff3fd1f4bf57ab971964
      https://github.com/llvm/llvm-project/commit/f4c1258d5633fcf06385ff3fd1f4bf57ab971964
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2021-10-12 (Tue, 12 Oct 2021)

  Changed paths:
    M libcxx/CMakeLists.txt
    A libcxx/cmake/caches/Generic-no-wide-characters.cmake
    M libcxx/docs/BuildingLibcxx.rst
    M libcxx/docs/ReleaseNotes.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/sort.h
    M libcxx/include/__bsd_locale_fallbacks.h
    M libcxx/include/__config
    M libcxx/include/__config_site.in
    M libcxx/include/__format/format_context.h
    M libcxx/include/__format/format_parse_context.h
    M libcxx/include/__format/formatter_bool.h
    M libcxx/include/__format/formatter_char.h
    M libcxx/include/__functional/hash.h
    M libcxx/include/__locale
    A libcxx/include/__mbstate_t.h
    M libcxx/include/__string
    M libcxx/include/__utility/cmp.h
    M libcxx/include/atomic
    M libcxx/include/codecvt
    M libcxx/include/cstddef
    M libcxx/include/experimental/regex
    M libcxx/include/experimental/string
    M libcxx/include/filesystem
    M libcxx/include/format
    M libcxx/include/iosfwd
    M libcxx/include/iostream
    M libcxx/include/istream
    M libcxx/include/locale
    M libcxx/include/module.modulemap
    M libcxx/include/ostream
    M libcxx/include/regex
    M libcxx/include/string
    M libcxx/include/string_view
    M libcxx/include/wchar.h
    M libcxx/include/wctype.h
    M libcxx/src/algorithm.cpp
    M libcxx/src/ios.instantiations.cpp
    M libcxx/src/iostream.cpp
    M libcxx/src/locale.cpp
    M libcxx/src/string.cpp
    M libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
    M libcxx/test/libcxx/depr/depr.c.headers/extern_c.pass.cpp
    A libcxx/test/libcxx/diagnostics/detail.headers/mbstate_t.h.module.verify.cpp
    M libcxx/test/libcxx/double_include.sh.cpp
    M libcxx/test/libcxx/include_as_c.sh.cpp
    M libcxx/test/libcxx/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp
    M libcxx/test/libcxx/input.output/filesystems/class.path/path.req/is_pathable.pass.cpp
    M libcxx/test/libcxx/input.output/iostream.format/input.streams/traits_mismatch.fail.cpp
    M libcxx/test/libcxx/input.output/iostream.format/output.streams/traits_mismatch.fail.cpp
    M libcxx/test/libcxx/input.output/string.streams/traits_mismatch.fail.cpp
    M libcxx/test/libcxx/iterators/contiguous_iterators.pass.cpp
    M libcxx/test/libcxx/iterators/failed.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.concepts/integer_like.compile.pass.cpp
    M libcxx/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/ctor_move.pass.cpp
    M libcxx/test/libcxx/min_max_macros.compile.pass.cpp
    M libcxx/test/libcxx/no_assert_include.compile.pass.cpp
    M libcxx/test/libcxx/strings/c.strings/version_cwchar.pass.cpp
    M libcxx/test/libcxx/strings/c.strings/version_cwctype.pass.cpp
    M libcxx/test/libcxx/type_traits/convert_to_integral.pass.cpp
    M libcxx/test/libcxx/utilities/format/format.arguments/format.arg/visit_format_arg.pass.cpp
    M libcxx/test/libcxx/utilities/format/format.arguments/format.args/get.pass.cpp
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/std_format_spec_bool.pass.cpp
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/std_format_spec_char.pass.cpp
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/std_format_spec_integer.pass.cpp
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/std_format_spec_string.pass.cpp
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/std_format_spec_string_non_unicode.pass.cpp
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/std_format_spec_string_unicode.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/integral.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/integral_typedefs.pass.cpp
    M libcxx/test/std/atomics/types.pass.cpp
    M libcxx/test/std/concepts/concepts.lang/concept.default.init/default_initializable.compile.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/stdint_h.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/wchar_h.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/wctype_h.pass.cpp
    M libcxx/test/std/experimental/iterator/ostream.joiner/ostream.joiner.cons/ostream_joiner.cons.pass.cpp
    M libcxx/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ostream_joiner.op.assign.pass.cpp
    M libcxx/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ostream_joiner.op.postincrement.pass.cpp
    M libcxx/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ostream_joiner.op.pretincrement.pass.cpp
    M libcxx/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ostream_joiner.op.star.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_regex_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_string_synop.pass.cpp
    M libcxx/test/std/input.output/file.streams/c.files/cinttypes.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/move_assign.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.cons/default.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.cons/move.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.members/open_path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.members/open_pointer.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/overflow.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/seekoff.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/underflow.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/move_assign.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/nonmember_swap.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/default.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/move.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/pointer.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/string.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.members/close.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.members/open_path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.members/open_pointer.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.members/open_string.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.members/rdbuf.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.assign/move_assign.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.assign/nonmember_swap.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/default.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/move.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/pointer.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/string.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/close.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/open_path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/open_pointer.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/open_string.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/rdbuf.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.assign/move_assign.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.assign/nonmember_swap.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/default.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/move.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/pointer.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/string.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/close.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/open_path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/open_pointer.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/open_string.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/rdbuf.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.charconv.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp
    M libcxx/test/std/input.output/iostream.format/ext.manip/get_money.pass.cpp
    M libcxx/test/std/input.output/iostream.format/ext.manip/get_time.pass.cpp
    M libcxx/test/std/input.output/iostream.format/ext.manip/put_money.pass.cpp
    M libcxx/test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/iostreamclass/iostream.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/iostreamclass/iostream.assign/move_assign.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/iostreamclass/iostream.cons/move.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/iostreamclass/iostream.cons/streambuf.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/bool.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/double.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/float.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/int.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/long.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/long_double.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/long_long.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/pointer.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/short.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/unsigned_int.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/unsigned_long.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/unsigned_long_long.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/unsigned_short.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream_extractors/chart.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream_extractors/streambuf.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.formatted/istream_extractors/wchar_t_pointer.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.manip/ws.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.rvalue/rvalue.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/get.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_chart.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_pointer_size.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_pointer_size_chart.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf_chart.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/getline_pointer_size.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/getline_pointer_size_chart.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/peek.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/putback.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/read.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/readsome.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/seekg.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/seekg_off.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/sync.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/tellg.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/unget.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream/istream.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream/istream.assign/move_assign.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream/istream.cons/move.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream/istream.cons/streambuf.pass.cpp
    M libcxx/test/std/input.output/iostream.format/input.streams/istream/istream_sentry/ctor.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.assign/move_assign.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.cons/move.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.cons/streambuf.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/CharT.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/CharT_pointer.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char_to_wide.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char_to_wide_pointer.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.manip/endl.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.manip/ends.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.manip/flush.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.rvalue/rvalue.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.unformatted/put.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.unformatted/write.pass.cpp
    M libcxx/test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp
    M libcxx/test/std/input.output/iostream.format/quoted.manip/quoted_char.verify.cpp
    M libcxx/test/std/input.output/iostream.format/std.manip/resetiosflags.pass.cpp
    M libcxx/test/std/input.output/iostream.format/std.manip/setbase.pass.cpp
    M libcxx/test/std/input.output/iostream.format/std.manip/setfill.pass.cpp
    M libcxx/test/std/input.output/iostream.format/std.manip/setiosflags.pass.cpp
    M libcxx/test/std/input.output/iostream.format/std.manip/setprecision.pass.cpp
    M libcxx/test/std/input.output/iostream.format/std.manip/setw.pass.cpp
    M libcxx/test/std/input.output/iostream.forward/iosfwd.pass.cpp
    M libcxx/test/std/input.output/iostream.objects/init.pass.cpp
    M libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcerr.sh.cpp
    M libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcin.sh.cpp
    M libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wclog.sh.cpp
    M libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcout.sh.cpp
    M libcxx/test/std/input.output/iostreams.base/ios/basic.ios.members/narrow.pass.cpp
    M libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.cons/copy.pass.cpp
    M libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.cons/default.pass.cpp
    M libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/assign.pass.cpp
    M libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.assign/swap.pass.cpp
    M libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.get.area/gbump.pass.cpp
    M libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.get.area/setg.pass.cpp
    M libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump.pass.cpp
    M libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/setp.pass.cpp
    M libcxx/test/std/input.output/stream.buffers/streambuf/types.pass.cpp
    M libcxx/test/std/input.output/string.streams/istringstream/istringstream.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/string.streams/istringstream/istringstream.assign/move.pass.cpp
    M libcxx/test/std/input.output/string.streams/istringstream/istringstream.assign/nonmember_swap.pass.cpp
    M libcxx/test/std/input.output/string.streams/istringstream/istringstream.cons/default.pass.cpp
    M libcxx/test/std/input.output/string.streams/istringstream/istringstream.cons/move.pass.cpp
    M libcxx/test/std/input.output/string.streams/istringstream/istringstream.cons/string.pass.cpp
    M libcxx/test/std/input.output/string.streams/istringstream/istringstream.members/str.pass.cpp
    M libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.assign/move.pass.cpp
    M libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.assign/nonmember_swap.pass.cpp
    M libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.cons/default.pass.cpp
    M libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.cons/move.pass.cpp
    M libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.cons/string.pass.cpp
    M libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.members/str.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.assign/move.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.assign/nonmember_swap.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.cons/default.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.cons/move.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.cons/string.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.members/str.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/overflow.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/pbackfail.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/seekoff.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/seekpos.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/setbuf.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/underflow.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringstream.cons/default.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringstream.cons/move.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringstream.cons/string.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringstream.cons/stringstream.assign/member_swap.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringstream.cons/stringstream.assign/move.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringstream.cons/stringstream.assign/nonmember_swap.pass.cpp
    M libcxx/test/std/input.output/string.streams/stringstream.members/str.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator.cons/default.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator.cons/istream.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator.cons/proxy.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator.cons/streambuf.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator_equal/equal.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator_op!=/not_equal.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator_op++/dereference.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator_op==/equal.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator_op_astrk/post_increment.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator_op_astrk/pre_increment.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator_proxy/proxy.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.ops/assign_t.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostream.iterator/types.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/ostreambuf.iter.cons/ostream.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/ostreambuf.iter.cons/streambuf.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/ostreambuf.iter.ops/assign_c.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/ostreambuf.iter.ops/deref.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/ostreambuf.iter.ops/failed.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/ostreambuf.iter.ops/increment.pass.cpp
    M libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/types.pass.cpp
    M libcxx/test/std/language.support/cstdint/cstdint.syn/cstdint.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.collate/locale.collate.byname/hash.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.collate/locale.collate.byname/transform.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.collate/locale.collate.byname/types.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.collate/locale.collate/ctor.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.collate/locale.collate/locale.collate.members/compare.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.collate/locale.collate/locale.collate.members/hash.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.collate/locale.collate/locale.collate.members/transform.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.collate/locale.collate/types.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt.byname/ctor_wchar_t.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/ctor_wchar_t.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_always_noconv.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_encoding.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_in.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_length.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_max_length.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_out.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_unshift.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/types_wchar_t.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/is_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/is_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/mask.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/scan_is.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/scan_not.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/types.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/widen_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/widen_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/ctor.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/is_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/is_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/narrow_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/narrow_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/scan_is.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/scan_not.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/tolower_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/tolower_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/toupper_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/toupper_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/widen_1.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/locale.ctype.members/widen_many.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype/types.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.messages/locale.messages/types.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_string_en_US.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/types.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_en_US.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_string_en_US.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/types.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/frac_digits.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/negative_sign.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/positive_sign.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/curr_symbol.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/decimal_point.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/frac_digits.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/grouping.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/neg_format.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/negative_sign.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/pos_format.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/positive_sign.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/thousands_sep.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/types.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_time_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/decimal_point.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct/ctor.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct/facet.numpunct.members/decimal_point.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct/facet.numpunct.members/falsename.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct/facet.numpunct.members/grouping.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct/facet.numpunct.members/thousands_sep.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct/facet.numpunct.members/truename.pass.cpp
    M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct/types.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_always_noconv.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_encoding.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_max_length.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_out.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_unshift.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_always_noconv.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_encoding.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_length.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_max_length.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_out.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_unshift.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_always_noconv.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_encoding.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_in.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_length.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_max_length.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_out.pass.cpp
    M libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_unshift.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/overflow.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/pbackfail.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/rdbuf.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/seekoff.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/state.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/test.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/underflow.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/converted.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt_state.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_copy.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_err_string.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/from_bytes.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/state.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/to_bytes.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/types.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/assign.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/copy.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/default.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/string.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.members/combine.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.operators/compare.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.statics/classic.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.statics/global.pass.cpp
    M libcxx/test/std/namespace/addressable_functions.sh.cpp
    M libcxx/test/std/ranges/range.utility/range.subrange/ctad.compile.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.match/awk.locale.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.match/awk.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.match/basic.locale.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.match/basic.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.match/ecma.locale.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.match/ecma.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.match/extended.locale.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.match/extended.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.search/awk.locale.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.search/awk.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.search/basic.locale.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.search/basic.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.search/ecma.locale.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.search/ecma.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.search/extended.locale.pass.cpp
    M libcxx/test/std/re/re.alg/re.alg.search/extended.pass.cpp
    M libcxx/test/std/re/re.iter/re.regiter/re.regiter.cnstr/default.pass.cpp
    M libcxx/test/std/re/re.iter/re.regiter/types.pass.cpp
    M libcxx/test/std/re/re.regex/re.regex.construct/deduct.pass.cpp
    M libcxx/test/std/re/re.regex/re.regex.construct/default.pass.cpp
    M libcxx/test/std/re/re.results/re.results.all/get_allocator.pass.cpp
    M libcxx/test/std/re/re.results/re.results.const/allocator.pass.cpp
    M libcxx/test/std/re/re.results/re.results.const/copy.pass.cpp
    M libcxx/test/std/re/re.results/re.results.const/copy_assign.pass.cpp
    M libcxx/test/std/re/re.results/re.results.const/default.pass.cpp
    M libcxx/test/std/re/re.results/re.results.const/move.pass.cpp
    M libcxx/test/std/re/re.results/re.results.const/move_assign.pass.cpp
    M libcxx/test/std/re/re.results/re.results.form/form1.pass.cpp
    M libcxx/test/std/re/re.results/re.results.form/form2.pass.cpp
    M libcxx/test/std/re/re.results/re.results.form/form3.pass.cpp
    M libcxx/test/std/re/re.results/re.results.form/form4.pass.cpp
    M libcxx/test/std/re/re.submatch/re.submatch.members/compare_string_type.pass.cpp
    M libcxx/test/std/re/re.submatch/re.submatch.members/compare_sub_match.pass.cpp
    M libcxx/test/std/re/re.submatch/re.submatch.members/compare_value_type_ptr.pass.cpp
    M libcxx/test/std/re/re.submatch/re.submatch.members/default.pass.cpp
    M libcxx/test/std/re/re.submatch/re.submatch.members/length.pass.cpp
    M libcxx/test/std/re/re.submatch/re.submatch.members/operator_string.pass.cpp
    M libcxx/test/std/re/re.submatch/re.submatch.members/str.pass.cpp
    M libcxx/test/std/re/re.submatch/re.submatch.op/compare.pass.cpp
    M libcxx/test/std/re/re.submatch/re.submatch.op/stream.pass.cpp
    M libcxx/test/std/re/re.submatch/types.pass.cpp
    M libcxx/test/std/re/re.syn/wcmatch.pass.cpp
    M libcxx/test/std/re/re.syn/wcregex_iterator.pass.cpp
    M libcxx/test/std/re/re.syn/wcregex_token_iterator.pass.cpp
    M libcxx/test/std/re/re.syn/wcsub_match.pass.cpp
    M libcxx/test/std/re/re.syn/wregex.pass.cpp
    M libcxx/test/std/re/re.syn/wsmatch.pass.cpp
    M libcxx/test/std/re/re.syn/wsregex_iterator.pass.cpp
    M libcxx/test/std/re/re.syn/wsregex_token_iterator.pass.cpp
    M libcxx/test/std/re/re.syn/wssub_match.pass.cpp
    M libcxx/test/std/re/re.traits/default.pass.cpp
    M libcxx/test/std/re/re.traits/getloc.pass.cpp
    M libcxx/test/std/re/re.traits/isctype.pass.cpp
    M libcxx/test/std/re/re.traits/length.pass.cpp
    M libcxx/test/std/re/re.traits/lookup_classname.pass.cpp
    M libcxx/test/std/re/re.traits/lookup_collatename.pass.cpp
    M libcxx/test/std/re/re.traits/transform.pass.cpp
    M libcxx/test/std/re/re.traits/transform_primary.pass.cpp
    M libcxx/test/std/re/re.traits/translate.pass.cpp
    M libcxx/test/std/re/re.traits/translate_nocase.pass.cpp
    M libcxx/test/std/re/re.traits/types.pass.cpp
    M libcxx/test/std/re/re.traits/value.pass.cpp
    M libcxx/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp
    M libcxx/test/std/strings/basic.string.hash/strings.pass.cpp
    M libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
    M libcxx/test/std/strings/basic.string/string.cons/dtor_noexcept.pass.cpp
    M libcxx/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp
    M libcxx/test/std/strings/basic.string/string.cons/initializer_list.pass.cpp
    M libcxx/test/std/strings/basic.string/string.cons/string_view_deduction.pass.cpp
    M libcxx/test/std/strings/basic.string/string.cons/string_view_size_size_deduction.pass.cpp
    M libcxx/test/std/strings/basic.string/string.iterators/iterators.pass.cpp
    M libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line.pass.cpp
    M libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim.pass.cpp
    M libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim_rv.pass.cpp
    M libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_rv.pass.cpp
    M libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_extract.pass.cpp
    M libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_insert.pass.cpp
    M libcxx/test/std/strings/c.strings/cwchar.pass.cpp
    M libcxx/test/std/strings/c.strings/cwctype.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign2.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign3.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/compare.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/copy.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/eof.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/eq.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/eq_int_type.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/find.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/length.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/lt.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/move.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/not_eof.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/to_char_type.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/to_int_type.pass.cpp
    M libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/types.pass.cpp
    M libcxx/test/std/strings/string.classes/typedefs.pass.cpp
    M libcxx/test/std/strings/string.conversions/stod.pass.cpp
    M libcxx/test/std/strings/string.conversions/stof.pass.cpp
    M libcxx/test/std/strings/string.conversions/stoi.pass.cpp
    M libcxx/test/std/strings/string.conversions/stol.pass.cpp
    M libcxx/test/std/strings/string.conversions/stold.pass.cpp
    M libcxx/test/std/strings/string.conversions/stoll.pass.cpp
    M libcxx/test/std/strings/string.conversions/stoul.pass.cpp
    M libcxx/test/std/strings/string.conversions/stoull.pass.cpp
    M libcxx/test/std/strings/string.conversions/to_wstring.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.cons/deduct.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp
    M libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp
    M libcxx/test/std/strings/string.view/trivially_copyable.compile.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg.store/class.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg.store/make_format_args.sh.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg.store/make_wformat_args.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.args/ctor.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.args/types.compile.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.context/advance_to.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.context/arg.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.context/ctor.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.context/locale.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.context/out.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.formatter.spec/formatter.bool.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.formatter.spec/formatter.c_string.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.formatter.spec/formatter.char.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.formatter.spec/formatter.const_char_array.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.formatter.spec/formatter.floating_point.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.formatter.spec/formatter.signed_integral.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.formatter.spec/formatter.string.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/format.formatter.spec/formatter.unsigned_integral.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.context/types.compile.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.parse.ctx/types.compile.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format_tests.h
    M libcxx/test/std/utilities/format/format.functions/format_to.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to_n.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to_n.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/formatted_size.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/formatted_size.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/locale-specific_form.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/vformat.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/vformat_to.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/vformat_to.pass.cpp
    M libcxx/test/std/utilities/function.objects/unord.hash/integral.pass.cpp
    M libcxx/test/std/utilities/template.bitset/bitset.members/to_string.pass.cpp
    M libcxx/test/std/utilities/template.bitset/includes.pass.cpp
    M libcxx/test/std/utilities/utility/utility.intcmp/intcmp.fail.cpp
    M libcxx/test/support/make_string.h
    M libcxx/test/support/poisoned_hash_helper.h
    M libcxx/test/support/test.support/make_string_header.pass.cpp
    M libcxx/test/support/test_macros.h
    M libcxx/utils/ci/buildkite-pipeline.yml
    M libcxx/utils/ci/run-buildbot
    M libcxx/utils/generate_header_tests.py
    M libcxx/utils/libcxx/test/features.py

  Log Message:
  -----------
  [libc++] Add an option to disable wide character support in libc++

Some embedded platforms do not wish to support the C library functionality
for handling wchar_t because they have no use for it. It makes sense for
libc++ to work properly on those platforms, so this commit adds a carve-out
of functionality for wchar_t.

Unfortunately, unlike some other carve-outs (e.g. random device), this
patch touches several parts of the library. However, despite the wide
impact of this patch, I still think it is important to support this
configuration since it makes it much simpler to port libc++ to some
embedded platforms.

Differential Revision: https://reviews.llvm.org/D111265




More information about the All-commits mailing list