X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fax_cxx_gcc_abi_demangle.m4;h=072d5db882e10971f8376d78915171418fa6250c;hb=dc1e22ba362663bf052e7cfbbdf933bb462a7006;hp=02c718ec89463ed4fc1ddd1ab3902db98e091afe;hpb=02e76bdf89bf11934a8c47a9c2d67dc67952b73b;p=awesomized%2Flibmemcached diff --git a/m4/ax_cxx_gcc_abi_demangle.m4 b/m4/ax_cxx_gcc_abi_demangle.m4 index 02c718ec..072d5db8 100644 --- a/m4/ax_cxx_gcc_abi_demangle.m4 +++ b/m4/ax_cxx_gcc_abi_demangle.m4 @@ -24,30 +24,39 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 9 +#serial 10 AC_DEFUN([AX_CXX_GCC_ABI_DEMANGLE], - [AC_CACHE_CHECK([whether the compiler supports GCC C++ ABI name demangling], + [AC_PREREQ([2.63])dnl + AC_CACHE_CHECK([whether the compiler supports GCC C++ ABI name demangling], [ax_cv_cxx_gcc_abi_demangle], [AC_LANG_PUSH([C++]) - AC_RUN_IFELSE([AC_LANG_PROGRAM([#include + AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include #include #include -#include ], - [template - class A {}; - ],[A instance; +#include + template + class A {};]], + [[A instance; +#if defined(_WIN32) + return EXIT_FAILURE; +#endif int status = 0; char* 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], - [ax_cv_cxx_gcc_abi_demangle=no]) + if (name.compare("A") != 0) + { + return EXIT_FAILURE; + }]])], + [ax_cv_cxx_gcc_abi_demangle=yes], + [ax_cv_cxx_gcc_abi_demangle=no], + [ax_cv_cxx_gcc_abi_demangle=no]) AC_LANG_POP]) + AC_MSG_CHECKING([checking for cxx_gcc_abi_demangle]) + AC_MSG_RESULT(["$ax_cv_cxx_gcc_abi_demangle"]) AS_IF([test "x$ax_cv_cxx_gcc_abi_demangle" = xyes], [AC_DEFINE([HAVE_GCC_ABI_DEMANGLE],[1],[define if the compiler supports GCC C++ ABI name demangling])]) ])