diff options
author | Abseil Team <absl-team@google.com> | 2023-09-26 14:39:04 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-09-26 14:39:48 -0700 |
commit | cced061b3e68da386aaadca0d87e03538ce2bc72 (patch) | |
tree | e2084a66fd3ea9bf0d6c6c1b283bc41b725cf02a /absl/base | |
parent | ac364eb9d07ff4d8c7fb8d848b66398559220d04 (diff) |
Add an internal wrapper for `abi::__cxa_demangle()`.
PiperOrigin-RevId: 568652465
Change-Id: I9f72a11cb514eaf694dae589a19dc139891e7af2
Diffstat (limited to 'absl/base')
-rw-r--r-- | absl/base/config.h | 13 |
1 files changed, 13 insertions, 0 deletions
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. |