From cced061b3e68da386aaadca0d87e03538ce2bc72 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Tue, 26 Sep 2023 14:39:04 -0700 Subject: Add an internal wrapper for `abi::__cxa_demangle()`. PiperOrigin-RevId: 568652465 Change-Id: I9f72a11cb514eaf694dae589a19dc139891e7af2 --- absl/base/config.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'absl/base') diff --git a/absl/base/config.h b/absl/base/config.h index a8425ba7..52d42f0f 100644 --- a/absl/base/config.h +++ b/absl/base/config.h @@ -864,6 +864,19 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' || #define ABSL_INTERNAL_HAS_RTTI 1 #endif +// `ABSL_INTERNAL_HAS_CXA_DEMANGLE` determines whether `abi::__cxa_demangle` is +// available. +#ifdef ABSL_INTERNAL_HAS_CXA_DEMANGLE +#error ABSL_INTERNAL_HAS_CXA_DEMANGLE cannot be directly set +#elif defined(OS_ANDROID) && (defined(__i386__) || defined(__x86_64__)) +#define ABSL_INTERNAL_HAS_CXA_DEMANGLE 0 +#elif (__GNUC__ >= 4 || (__GNUC__ >= 3 && __GNUC_MINOR__ >= 4)) && \ + !defined(__mips__) +#define ABSL_INTERNAL_HAS_CXA_DEMANGLE 1 +#elif defined(__clang__) && !defined(_MSC_VER) +#define ABSL_INTERNAL_HAS_CXA_DEMANGLE 1 +#endif + // ABSL_INTERNAL_HAVE_SSE is used for compile-time detection of SSE support. // See https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html for an overview of // which architectures support the various x86 instruction sets. -- cgit v1.2.3