X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fax_cxx_gcc_abi_demangle.m4;h=2da0057e78f44b49370b0d2de74444e5e396473f;hb=b9ab4871d4437735aa727797bda5eb7ae1d7f133;hp=11e8728cb721077f0b7c922e865f427305f330a4;hpb=f3883e19f984baa8981326d9e652d49433d49732;p=m6w6%2Flibmemcached 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 + ])