diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst --- a/libcxx/docs/ReleaseNotes.rst +++ b/libcxx/docs/ReleaseNotes.rst @@ -143,6 +143,8 @@ - ````, ````, ````, ````, ```` and ```` no longer include ```` (it was previously included in all Standard versions). +- ````, ```` and ```` no longer transitively include ````. + - The headers ```` and ```` have been removed, since all the contents have been implemented in namespace ``std`` for at least two releases. diff --git a/libcxx/include/__format/format_error.h b/libcxx/include/__format/format_error.h --- a/libcxx/include/__format/format_error.h +++ b/libcxx/include/__format/format_error.h @@ -11,7 +11,7 @@ #define _LIBCPP___FORMAT_FORMAT_ERROR_H #include <__config> -#include +#include <__verbose_abort> #include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) @@ -40,8 +40,7 @@ #ifndef _LIBCPP_HAS_NO_EXCEPTIONS throw format_error(__s); #else - (void)__s; - _VSTD::abort(); + _LIBCPP_VERBOSE_ABORT("format_error was thrown in -fno-exceptions mode with message \"%s\"", __s); #endif } diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp --- a/libcxx/src/locale.cpp +++ b/libcxx/src/locale.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// #include <__utility/unreachable.h> +#include <__verbose_abort> #include #include #include @@ -115,8 +116,7 @@ #ifndef _LIBCPP_HAS_NO_EXCEPTIONS throw runtime_error(msg); #else - (void)msg; - _VSTD::abort(); + _LIBCPP_VERBOSE_ABORT("runtime_error was thrown in -fno-exceptions mode with message \"%s\"", msg.c_str()); #endif } @@ -6532,8 +6532,7 @@ #ifndef _LIBCPP_HAS_NO_EXCEPTIONS throw runtime_error(msg); #else - (void)msg; - _VSTD::abort(); + _LIBCPP_VERBOSE_ABORT("runtime_error was thrown in -fno-exceptions mode with message \"%s\"", msg); #endif } diff --git a/libcxx/src/string.cpp b/libcxx/src/string.cpp --- a/libcxx/src/string.cpp +++ b/libcxx/src/string.cpp @@ -12,7 +12,6 @@ #include #include #include -#include #include #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS @@ -61,22 +60,12 @@ namespace { -template -inline void throw_helper(const string& msg) { -#ifndef _LIBCPP_HAS_NO_EXCEPTIONS - throw T(msg); -#else - fprintf(stderr, "%s\n", msg.c_str()); - _VSTD::abort(); -#endif -} - inline void throw_from_string_out_of_range(const string& func) { - throw_helper(func + ": out of range"); + std::__throw_out_of_range((func + ": out of range").c_str()); } inline void throw_from_string_invalid_arg(const string& func) { - throw_helper(func + ": no conversion"); + std::__throw_invalid_argument((func + ": no conversion").c_str()); } // as_integer diff --git a/libcxx/src/system_error.cpp b/libcxx/src/system_error.cpp --- a/libcxx/src/system_error.cpp +++ b/libcxx/src/system_error.cpp @@ -12,6 +12,7 @@ #endif #include <__assert> +#include <__verbose_abort> #include #include #include @@ -289,9 +290,7 @@ #ifndef _LIBCPP_HAS_NO_EXCEPTIONS throw system_error(error_code(ev, system_category()), what_arg); #else - (void)ev; - (void)what_arg; - _VSTD::abort(); + _LIBCPP_VERBOSE_ABORT("system_error was thrown in -fno-exceptions mode with error %i and message \"%s\"", ev, what_arg); #endif } diff --git a/libcxx/test/libcxx/transitive_includes/cxx03.csv b/libcxx/test/libcxx/transitive_includes/cxx03.csv --- a/libcxx/test/libcxx/transitive_includes/cxx03.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx03.csv @@ -116,7 +116,6 @@ chrono concepts chrono cstddef chrono cstdint -chrono cstdlib chrono cstring chrono ctime chrono limits @@ -302,7 +301,6 @@ format cmath format cstddef format cstdint -format cstdlib format initializer_list format limits format locale @@ -857,7 +855,6 @@ thread compare thread cstddef thread cstdint -thread cstdlib thread cstring thread ctime thread functional diff --git a/libcxx/test/libcxx/transitive_includes/cxx11.csv b/libcxx/test/libcxx/transitive_includes/cxx11.csv --- a/libcxx/test/libcxx/transitive_includes/cxx11.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx11.csv @@ -116,7 +116,6 @@ chrono concepts chrono cstddef chrono cstdint -chrono cstdlib chrono cstring chrono ctime chrono limits @@ -302,7 +301,6 @@ format cmath format cstddef format cstdint -format cstdlib format initializer_list format limits format locale @@ -858,7 +856,6 @@ thread compare thread cstddef thread cstdint -thread cstdlib thread cstring thread ctime thread functional diff --git a/libcxx/test/libcxx/transitive_includes/cxx14.csv b/libcxx/test/libcxx/transitive_includes/cxx14.csv --- a/libcxx/test/libcxx/transitive_includes/cxx14.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx14.csv @@ -116,7 +116,6 @@ chrono concepts chrono cstddef chrono cstdint -chrono cstdlib chrono cstring chrono ctime chrono limits @@ -304,7 +303,6 @@ format cmath format cstddef format cstdint -format cstdlib format initializer_list format limits format locale @@ -860,7 +858,6 @@ thread compare thread cstddef thread cstdint -thread cstdlib thread cstring thread ctime thread functional diff --git a/libcxx/test/libcxx/transitive_includes/cxx17.csv b/libcxx/test/libcxx/transitive_includes/cxx17.csv --- a/libcxx/test/libcxx/transitive_includes/cxx17.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx17.csv @@ -116,7 +116,6 @@ chrono concepts chrono cstddef chrono cstdint -chrono cstdlib chrono cstring chrono ctime chrono limits @@ -304,7 +303,6 @@ format cmath format cstddef format cstdint -format cstdlib format initializer_list format limits format locale @@ -860,7 +858,6 @@ thread compare thread cstddef thread cstdint -thread cstdlib thread cstring thread ctime thread functional diff --git a/libcxx/test/libcxx/transitive_includes/cxx20.csv b/libcxx/test/libcxx/transitive_includes/cxx20.csv --- a/libcxx/test/libcxx/transitive_includes/cxx20.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx20.csv @@ -118,7 +118,6 @@ chrono concepts chrono cstddef chrono cstdint -chrono cstdlib chrono cstring chrono ctime chrono limits @@ -311,7 +310,6 @@ format cmath format cstddef format cstdint -format cstdlib format initializer_list format limits format locale @@ -865,7 +863,6 @@ thread compare thread cstddef thread cstdint -thread cstdlib thread cstring thread ctime thread functional diff --git a/libcxx/test/libcxx/transitive_includes/cxx23.csv b/libcxx/test/libcxx/transitive_includes/cxx23.csv --- a/libcxx/test/libcxx/transitive_includes/cxx23.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx23.csv @@ -71,7 +71,6 @@ chrono compare chrono cstddef chrono cstdint -chrono cstdlib chrono ctime chrono initializer_list chrono limits @@ -214,7 +213,6 @@ format cmath format cstddef format cstdint -format cstdlib format initializer_list format limits format locale @@ -615,7 +613,6 @@ thread compare thread cstddef thread cstdint -thread cstdlib thread ctime thread initializer_list thread iosfwd @@ -691,7 +688,6 @@ vector compare vector cstddef vector cstdint -vector cstdlib vector cstring vector cwchar vector initializer_list diff --git a/libcxx/test/libcxx/transitive_includes/cxx26.csv b/libcxx/test/libcxx/transitive_includes/cxx26.csv --- a/libcxx/test/libcxx/transitive_includes/cxx26.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx26.csv @@ -71,7 +71,6 @@ chrono compare chrono cstddef chrono cstdint -chrono cstdlib chrono ctime chrono initializer_list chrono limits @@ -214,7 +213,6 @@ format cmath format cstddef format cstdint -format cstdlib format initializer_list format limits format locale @@ -615,7 +613,6 @@ thread compare thread cstddef thread cstdint -thread cstdlib thread ctime thread initializer_list thread iosfwd @@ -691,7 +688,6 @@ vector compare vector cstddef vector cstdint -vector cstdlib vector cstring vector cwchar vector initializer_list