Updating m4
[m6w6/libmemcached] / m4 / ax_cxx_gcc_abi_demangle.m4
index 11e8728cb721077f0b7c922e865f427305f330a4..02c718ec89463ed4fc1ddd1ab3902db98e091afe 100644 (file)
@@ -16,6 +16,7 @@
 #
 # LICENSE
 #
+#   Copyright (c) 2012 Brian Aker <brian@tangent.org>
 #   Copyright (c) 2008 Neil Ferguson <nferguso@eso.org>
 #
 #   Copying and distribution of this file, with or without modification, are
 #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 <typeinfo>
+    [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 <typeinfo>
 #include <cxxabi.h>
 #include <cstdlib>
-#include <string>
+#include <string>],
+          [template<typename TYPE>
+          class A {};
+          ],[A<int> instance;
+          int status = 0;
+          char* c_name = abi::__cxa_demangle(typeid(instance).name(), 0, 0, &status);
 
-template<typename TYPE>
-class A {};
-],[A<int> instance;
-int status = 0;
-char* c_name = 0;
+          std::string name(c_name);
+          ::free(c_name);
 
-c_name = abi::__cxa_demangle(typeid(instance).name(), 0, 0, &status);
-
-std::string name(c_name);
-::free(c_name);
-
-return name == "A<int>";
-],
- 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
-])
+          return name == "A<int>";
+          ])],[ax_cv_cxx_gcc_abi_demangle=yes],
+          [ax_cv_cxx_gcc_abi_demangle=no],
+          [ax_cv_cxx_gcc_abi_demangle=no])
+      AC_LANG_POP])
+  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])])
+  ])