had to give up on [[noreturn]]

This commit is contained in:
dbj 2019-11-13 11:19:06 +01:00 committed by GitHub
parent 84ff17dfa6
commit e080c467ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -72,23 +72,21 @@
#endif #endif
FMT_BEGIN_NAMESPACE FMT_BEGIN_NAMESPACE
// terror == terminating error //
[[noreturn]] inline void terror(const char msg_[BUFSIZ]) { [[noreturn]] inline void fail_fast(const char msg_[BUFSIZ]) {
::puts("\n\n\nFast exit on {fmt} error with message: "); ::puts("\n\n\nFast exit on {fmt} error with message: ");
::puts(msg_); ::puts(msg_);
::perror("\nPOSIX error message: "); ::perror("\nPOSIX error message: ");
std::exit(EXIT_FAILURE); std::exit(EXIT_FAILURE);
} }
namespace internal { namespace internal {
template <typename Exception> template <typename Exception>
#ifndef FMT_EXCEPTIONS inline void do_throw(const Exception& x) {
[[noreturn]]
#endif
inline void do_throw(const Exception& x) {
#if FMT_EXCEPTIONS #if FMT_EXCEPTIONS
throw x; volatile bool b = true ;
if (b) throw x;
#else #else
terror(x.what()); fail_fast(x.what());
#endif #endif
} }
} // namespace internal } // namespace internal