Skip to content

Commit

Permalink
Simplify exception detection
Browse files Browse the repository at this point in the history
  • Loading branch information
vitaut committed Jan 12, 2024
1 parent bf98e3e commit 42f1122
Showing 1 changed file with 16 additions and 17 deletions.
33 changes: 16 additions & 17 deletions include/fmt/base.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,22 @@
# define FMT_LIBCPP_VERSION 0
#endif

// Check if exceptions are disabled.
#ifdef FMT_EXCEPTIONS
// Use the provided definition.
#elif FMT_GCC_VERSION && !defined(__EXCEPTIONS)
# define FMT_EXCEPTIONS 0
#else
# define FMT_EXCEPTIONS (!FMT_MSC_VERSION && _HAS_EXCEPTIONS)
#endif
#if FMT_EXCEPTIONS
# define FMT_TRY try
# define FMT_CATCH(x) catch (x)
#else
# define FMT_TRY if (true)
# define FMT_CATCH(x) if (false)
#endif

#ifdef _MSVC_LANG
# define FMT_CPLUSPLUS _MSVC_LANG
#else
Expand Down Expand Up @@ -119,23 +135,6 @@
# define FMT_CONSTEXPR20
#endif

// Check if exceptions are disabled.
#ifndef FMT_EXCEPTIONS
# if (defined(__GNUC__) && !defined(__EXCEPTIONS)) || \
(FMT_MSC_VERSION && !_HAS_EXCEPTIONS)
# define FMT_EXCEPTIONS 0
# else
# define FMT_EXCEPTIONS 1
# endif
#endif
#if FMT_EXCEPTIONS
# define FMT_TRY try
# define FMT_CATCH(x) catch (x)
#else
# define FMT_TRY if (true)
# define FMT_CATCH(x) if (false)
#endif

// Disable [[noreturn]] on MSVC/NVCC because of bogus unreachable code warnings.
#if FMT_EXCEPTIONS && FMT_HAS_CPP_ATTRIBUTE(noreturn) && !FMT_MSC_VERSION && \
!defined(__NVCC__)
Expand Down

0 comments on commit 42f1122

Please sign in to comment.