mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-23 13:50:11 +00:00
9783f28cbb
This patch runs clang-format on all of libcxx/include and libcxx/src, in accordance with the RFC discussed at [1]. Follow-up patches will format the benchmarks, the test suite and remaining parts of the code. I'm splitting this one into its own patch so the diff is a bit easier to review. This patch was generated with: find libcxx/include libcxx/src -type f \ | grep -v 'module.modulemap.in' \ | grep -v 'CMakeLists.txt' \ | grep -v 'README.txt' \ | grep -v 'libcxx.imp' \ | grep -v '__config_site.in' \ | xargs clang-format -i A Git merge driver is available in libcxx/utils/clang-format-merge-driver.sh to help resolve merge and rebase issues across these formatting changes. [1]: https://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-all
288 lines
9.1 KiB
C++
288 lines
9.1 KiB
C++
// -*- C++ -*-
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef _LIBCPP_STDEXCEPT
|
|
#define _LIBCPP_STDEXCEPT
|
|
|
|
/*
|
|
stdexcept synopsis
|
|
|
|
namespace std
|
|
{
|
|
|
|
class logic_error;
|
|
class domain_error;
|
|
class invalid_argument;
|
|
class length_error;
|
|
class out_of_range;
|
|
class runtime_error;
|
|
class range_error;
|
|
class overflow_error;
|
|
class underflow_error;
|
|
|
|
for each class xxx_error:
|
|
|
|
class xxx_error : public exception // at least indirectly
|
|
{
|
|
public:
|
|
explicit xxx_error(const string& what_arg);
|
|
explicit xxx_error(const char* what_arg);
|
|
|
|
virtual const char* what() const noexcept // returns what_arg
|
|
};
|
|
|
|
} // std
|
|
|
|
*/
|
|
|
|
#include <__assert> // all public C++ headers provide the assertion handler
|
|
#include <__config>
|
|
#include <__exception/exception.h>
|
|
#include <__fwd/string.h>
|
|
#include <__verbose_abort>
|
|
|
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
# pragma GCC system_header
|
|
#endif
|
|
|
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
class _LIBCPP_HIDDEN __libcpp_refstring {
|
|
const char* __imp_;
|
|
|
|
bool __uses_refcount() const;
|
|
|
|
public:
|
|
explicit __libcpp_refstring(const char* __msg);
|
|
__libcpp_refstring(const __libcpp_refstring& __s) _NOEXCEPT;
|
|
__libcpp_refstring& operator=(const __libcpp_refstring& __s) _NOEXCEPT;
|
|
~__libcpp_refstring();
|
|
|
|
_LIBCPP_HIDE_FROM_ABI const char* c_str() const _NOEXCEPT { return __imp_; }
|
|
};
|
|
#endif // !_LIBCPP_ABI_VCRUNTIME
|
|
|
|
_LIBCPP_END_NAMESPACE_STD
|
|
|
|
namespace std // purposefully not using versioning namespace
|
|
{
|
|
|
|
class _LIBCPP_EXPORTED_FROM_ABI logic_error : public exception {
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
|
|
private:
|
|
std::__libcpp_refstring __imp_;
|
|
|
|
public:
|
|
explicit logic_error(const string&);
|
|
explicit logic_error(const char*);
|
|
|
|
logic_error(const logic_error&) _NOEXCEPT;
|
|
logic_error& operator=(const logic_error&) _NOEXCEPT;
|
|
|
|
~logic_error() _NOEXCEPT override;
|
|
|
|
const char* what() const _NOEXCEPT override;
|
|
#else
|
|
|
|
public:
|
|
explicit logic_error(const std::string&); // Symbol uses versioned std::string
|
|
_LIBCPP_HIDE_FROM_ABI explicit logic_error(const char* __s) : exception(__s) {}
|
|
#endif
|
|
};
|
|
|
|
class _LIBCPP_EXPORTED_FROM_ABI runtime_error : public exception {
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
|
|
private:
|
|
std::__libcpp_refstring __imp_;
|
|
|
|
public:
|
|
explicit runtime_error(const string&);
|
|
explicit runtime_error(const char*);
|
|
|
|
runtime_error(const runtime_error&) _NOEXCEPT;
|
|
runtime_error& operator=(const runtime_error&) _NOEXCEPT;
|
|
|
|
~runtime_error() _NOEXCEPT override;
|
|
|
|
const char* what() const _NOEXCEPT override;
|
|
#else
|
|
|
|
public:
|
|
explicit runtime_error(const std::string&); // Symbol uses versioned std::string
|
|
_LIBCPP_HIDE_FROM_ABI explicit runtime_error(const char* __s) : exception(__s) {}
|
|
#endif // _LIBCPP_ABI_VCRUNTIME
|
|
};
|
|
|
|
class _LIBCPP_EXPORTED_FROM_ABI domain_error : public logic_error {
|
|
public:
|
|
_LIBCPP_HIDE_FROM_ABI explicit domain_error(const string& __s) : logic_error(__s) {}
|
|
_LIBCPP_HIDE_FROM_ABI explicit domain_error(const char* __s) : logic_error(__s) {}
|
|
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
_LIBCPP_HIDE_FROM_ABI domain_error(const domain_error&) _NOEXCEPT = default;
|
|
_LIBCPP_HIDE_FROM_ABI domain_error& operator=(const domain_error&) _NOEXCEPT = default;
|
|
~domain_error() _NOEXCEPT override;
|
|
#endif
|
|
};
|
|
|
|
class _LIBCPP_EXPORTED_FROM_ABI invalid_argument : public logic_error {
|
|
public:
|
|
_LIBCPP_HIDE_FROM_ABI explicit invalid_argument(const string& __s) : logic_error(__s) {}
|
|
_LIBCPP_HIDE_FROM_ABI explicit invalid_argument(const char* __s) : logic_error(__s) {}
|
|
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
_LIBCPP_HIDE_FROM_ABI invalid_argument(const invalid_argument&) _NOEXCEPT = default;
|
|
_LIBCPP_HIDE_FROM_ABI invalid_argument& operator=(const invalid_argument&) _NOEXCEPT = default;
|
|
~invalid_argument() _NOEXCEPT override;
|
|
#endif
|
|
};
|
|
|
|
class _LIBCPP_EXPORTED_FROM_ABI length_error : public logic_error {
|
|
public:
|
|
_LIBCPP_HIDE_FROM_ABI explicit length_error(const string& __s) : logic_error(__s) {}
|
|
_LIBCPP_HIDE_FROM_ABI explicit length_error(const char* __s) : logic_error(__s) {}
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
_LIBCPP_HIDE_FROM_ABI length_error(const length_error&) _NOEXCEPT = default;
|
|
_LIBCPP_HIDE_FROM_ABI length_error& operator=(const length_error&) _NOEXCEPT = default;
|
|
~length_error() _NOEXCEPT override;
|
|
#endif
|
|
};
|
|
|
|
class _LIBCPP_EXPORTED_FROM_ABI out_of_range : public logic_error {
|
|
public:
|
|
_LIBCPP_HIDE_FROM_ABI explicit out_of_range(const string& __s) : logic_error(__s) {}
|
|
_LIBCPP_HIDE_FROM_ABI explicit out_of_range(const char* __s) : logic_error(__s) {}
|
|
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
_LIBCPP_HIDE_FROM_ABI out_of_range(const out_of_range&) _NOEXCEPT = default;
|
|
_LIBCPP_HIDE_FROM_ABI out_of_range& operator=(const out_of_range&) _NOEXCEPT = default;
|
|
~out_of_range() _NOEXCEPT override;
|
|
#endif
|
|
};
|
|
|
|
class _LIBCPP_EXPORTED_FROM_ABI range_error : public runtime_error {
|
|
public:
|
|
_LIBCPP_HIDE_FROM_ABI explicit range_error(const string& __s) : runtime_error(__s) {}
|
|
_LIBCPP_HIDE_FROM_ABI explicit range_error(const char* __s) : runtime_error(__s) {}
|
|
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
_LIBCPP_HIDE_FROM_ABI range_error(const range_error&) _NOEXCEPT = default;
|
|
_LIBCPP_HIDE_FROM_ABI range_error& operator=(const range_error&) _NOEXCEPT = default;
|
|
~range_error() _NOEXCEPT override;
|
|
#endif
|
|
};
|
|
|
|
class _LIBCPP_EXPORTED_FROM_ABI overflow_error : public runtime_error {
|
|
public:
|
|
_LIBCPP_HIDE_FROM_ABI explicit overflow_error(const string& __s) : runtime_error(__s) {}
|
|
_LIBCPP_HIDE_FROM_ABI explicit overflow_error(const char* __s) : runtime_error(__s) {}
|
|
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
_LIBCPP_HIDE_FROM_ABI overflow_error(const overflow_error&) _NOEXCEPT = default;
|
|
_LIBCPP_HIDE_FROM_ABI overflow_error& operator=(const overflow_error&) _NOEXCEPT = default;
|
|
~overflow_error() _NOEXCEPT override;
|
|
#endif
|
|
};
|
|
|
|
class _LIBCPP_EXPORTED_FROM_ABI underflow_error : public runtime_error {
|
|
public:
|
|
_LIBCPP_HIDE_FROM_ABI explicit underflow_error(const string& __s) : runtime_error(__s) {}
|
|
_LIBCPP_HIDE_FROM_ABI explicit underflow_error(const char* __s) : runtime_error(__s) {}
|
|
|
|
#ifndef _LIBCPP_ABI_VCRUNTIME
|
|
_LIBCPP_HIDE_FROM_ABI underflow_error(const underflow_error&) _NOEXCEPT = default;
|
|
_LIBCPP_HIDE_FROM_ABI underflow_error& operator=(const underflow_error&) _NOEXCEPT = default;
|
|
~underflow_error() _NOEXCEPT override;
|
|
#endif
|
|
};
|
|
|
|
} // namespace std
|
|
|
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
|
|
// in the dylib
|
|
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_runtime_error(const char*);
|
|
|
|
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_logic_error(const char* __msg) {
|
|
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
|
throw logic_error(__msg);
|
|
#else
|
|
_LIBCPP_VERBOSE_ABORT("logic_error was thrown in -fno-exceptions mode with message \"%s\"", __msg);
|
|
#endif
|
|
}
|
|
|
|
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_domain_error(const char* __msg) {
|
|
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
|
throw domain_error(__msg);
|
|
#else
|
|
_LIBCPP_VERBOSE_ABORT("domain_error was thrown in -fno-exceptions mode with message \"%s\"", __msg);
|
|
#endif
|
|
}
|
|
|
|
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_invalid_argument(const char* __msg) {
|
|
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
|
throw invalid_argument(__msg);
|
|
#else
|
|
_LIBCPP_VERBOSE_ABORT("invalid_argument was thrown in -fno-exceptions mode with message \"%s\"", __msg);
|
|
#endif
|
|
}
|
|
|
|
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_length_error(const char* __msg) {
|
|
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
|
throw length_error(__msg);
|
|
#else
|
|
_LIBCPP_VERBOSE_ABORT("length_error was thrown in -fno-exceptions mode with message \"%s\"", __msg);
|
|
#endif
|
|
}
|
|
|
|
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range(const char* __msg) {
|
|
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
|
throw out_of_range(__msg);
|
|
#else
|
|
_LIBCPP_VERBOSE_ABORT("out_of_range was thrown in -fno-exceptions mode with message \"%s\"", __msg);
|
|
#endif
|
|
}
|
|
|
|
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_range_error(const char* __msg) {
|
|
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
|
throw range_error(__msg);
|
|
#else
|
|
_LIBCPP_VERBOSE_ABORT("range_error was thrown in -fno-exceptions mode with message \"%s\"", __msg);
|
|
#endif
|
|
}
|
|
|
|
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_overflow_error(const char* __msg) {
|
|
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
|
throw overflow_error(__msg);
|
|
#else
|
|
_LIBCPP_VERBOSE_ABORT("overflow_error was thrown in -fno-exceptions mode with message \"%s\"", __msg);
|
|
#endif
|
|
}
|
|
|
|
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_underflow_error(const char* __msg) {
|
|
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
|
throw underflow_error(__msg);
|
|
#else
|
|
_LIBCPP_VERBOSE_ABORT("underflow_error was thrown in -fno-exceptions mode with message \"%s\"", __msg);
|
|
#endif
|
|
}
|
|
|
|
_LIBCPP_END_NAMESPACE_STD
|
|
|
|
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
|
|
# include <cstdlib>
|
|
# include <exception>
|
|
# include <iosfwd>
|
|
#endif
|
|
|
|
#endif // _LIBCPP_STDEXCEPT
|