From 90d2dea0f45cc56d9b1769c50962c0dd741b7e87 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sun, 29 Jan 2012 13:15:08 -0800 Subject: [PATCH] Update demangle to not have warnings. --- m4/ax_cxx_gcc_abi_demangle.m4 | 41 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/m4/ax_cxx_gcc_abi_demangle.m4 b/m4/ax_cxx_gcc_abi_demangle.m4 index 11e8728c..2da0057e 100644 --- a/m4/ax_cxx_gcc_abi_demangle.m4 +++ b/m4/ax_cxx_gcc_abi_demangle.m4 @@ -25,34 +25,35 @@ #serial 9 -AC_DEFUN([AX_CXX_GCC_ABI_DEMANGLE], -[AC_CACHE_CHECK(whether the compiler supports GCC C++ ABI name demangling, -ax_cv_cxx_gcc_abi_demangle, -[AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE([#include + AC_DEFUN([AX_CXX_GCC_ABI_DEMANGLE], + [AC_CACHE_CHECK([whether the compiler supports GCC C++ ABI name demangling], + [ax_cv_cxx_gcc_abi_demangle], + [AC_LANG_PUSH([C++]) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [ +#include #include #include #include -template -class A {}; -],[A instance; +template class A {}; + ],[ +A instance; int status = 0; char* c_name = 0; c_name = abi::__cxa_demangle(typeid(instance).name(), 0, 0, &status); - std::string name(c_name); ::free(c_name); - return name == "A"; -], - ax_cv_cxx_gcc_abi_demangle=yes, ax_cv_cxx_gcc_abi_demangle=no) - AC_LANG_RESTORE -]) -if test "$ax_cv_cxx_gcc_abi_demangle" = yes; then - AC_DEFINE(HAVE_GCC_ABI_DEMANGLE,1, - [define if the compiler supports GCC C++ ABI name demangling]) -fi -]) + ])], + [ax_cv_cxx_gcc_abi_demangle=yes], + [ax_cv_cxx_gcc_abi_demangle=no]) + AC_LANG_POP() + ]) + + if test "$ax_cv_cxx_gcc_abi_demangle" = yes; then + AC_DEFINE(HAVE_GCC_ABI_DEMANGLE, [1], [define if the compiler supports GCC C++ ABI name demangling]) + fi + ]) -- 2.30.2