Add check for C++ exceptions to config script
authorAndres Notzli <andres.noetzli@gmail.com>
Wed, 19 Apr 2017 15:46:59 +0000 (08:46 -0700)
committerAndres Notzli <andres.noetzli@gmail.com>
Fri, 21 Apr 2017 08:24:09 +0000 (01:24 -0700)
Bug 687 was caused by the configuration not properly supporting C++
exceptions. To avoid such an incidence in the future, this commit adds a
simple check to `configure.ac` (when not cross compiling).

configure.ac

index d2c08661b1350a92447641586bd9bc26180a8cc9..7da86d8a860e679f31c9aed9f4156bfb00ea1c3f 100644 (file)
@@ -253,6 +253,27 @@ AC_PROG_INSTALL
 
 CVC4_GCC_VERSION
 
+if test $cross_compiling = "no"; then
+  AC_MSG_CHECKING([whether C++ exceptions work])
+  AC_LANG_PUSH([C++])
+  AC_RUN_IFELSE(
+    AC_LANG_PROGRAM([#include <exception>], [[
+      int result = 1;
+      try {
+        throw std::exception();
+      } catch (...) {
+        result = 0;
+      }
+      return result;
+    ]]),
+    [AC_MSG_RESULT([yes])],
+    [AC_MSG_ERROR([C++ exceptions do not work.])]
+  )
+  AC_LANG_POP([C++])
+else
+  AC_MSG_WARN([Cross compiling, cannot check whether exceptions work])
+fi
+
 cvc4_use_gmp=2
 cvc4_use_cln=2