diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2024-04-26 15:33:29 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2024-05-08 19:37:29 -0700 |
| commit | 06ee65af9ed6aa5ee4d1d7f4fab9d7acecf66e76 (patch) | |
| tree | 1316711b92a43dd5c599e425b8693fa8e1e0c0b7 /lib/libcxx/include/__system_error/system_error.h | |
| parent | bc6ebc6f2597fda1f98842c6f545751fef2a5334 (diff) | |
| download | zig-06ee65af9ed6aa5ee4d1d7f4fab9d7acecf66e76.tar.gz zig-06ee65af9ed6aa5ee4d1d7f4fab9d7acecf66e76.zip | |
libcxx: update to LLVM 18
release/18.x branch, commit 78b99c73ee4b96fe9ce0e294d4632326afb2db42
This adds the flag `-D_LIBCPP_HARDENING_MODE` which is determined based
on the Zig optimization mode.
This commit also fixes libunwind, libcxx, and libcxxabi to properly
report sub compilation errors.
Diffstat (limited to 'lib/libcxx/include/__system_error/system_error.h')
| -rw-r--r-- | lib/libcxx/include/__system_error/system_error.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/libcxx/include/__system_error/system_error.h b/lib/libcxx/include/__system_error/system_error.h index bc829491a4..362e675056 100644 --- a/lib/libcxx/include/__system_error/system_error.h +++ b/lib/libcxx/include/__system_error/system_error.h @@ -13,6 +13,7 @@ #include <__config> #include <__system_error/error_category.h> #include <__system_error/error_code.h> +#include <__verbose_abort> #include <stdexcept> #include <string> @@ -36,12 +37,17 @@ public: ~system_error() _NOEXCEPT override; _LIBCPP_HIDE_FROM_ABI const error_code& code() const _NOEXCEPT { return __ec_; } - -private: - static string __init(const error_code&, string); }; _LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_system_error(int __ev, const char* __what_arg); +_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI inline void __throw_system_error(error_code __ec, const char* __what_arg) { +#ifndef _LIBCPP_HAS_NO_EXCEPTIONS + throw system_error(__ec, __what_arg); +#else + _LIBCPP_VERBOSE_ABORT( + "system_error was thrown in -fno-exceptions mode with error %i and message \"%s\"", __ec.value(), __what_arg); +#endif +} _LIBCPP_END_NAMESPACE_STD |
