# Macros for the GNU Bison Test suite.
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2015 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
])
+# AT_SKIP_IF_EXCEPTION_SUPPORT_IS_POOR
+# ------------------------------------
+# Check that we can expect exceptions to be handled properly.
+# GCC 4.3 and 4.4 fail https://trac.macports.org/ticket/40853.
+m4_define([AT_SKIP_IF_EXCEPTION_SUPPORT_IS_POOR],
+[AT_DATA_SOURCE([exception.cc],
+[[#include <iostream>
+#include <stdexcept>
+
+void foo()
+{
+ try
+ {
+ throw std::runtime_error("foo");
+ }
+ catch (...)
+ {
+ std::cerr << "Inner caught" << std::endl;
+ throw;
+ }
+}
+
+int main()
+{
+ try
+ {
+ foo();
+ }
+ catch (...)
+ {
+ std::cerr << "Outer caught" << std::endl;
+ return 0;
+ }
+ return 1;
+}
+]])
+AT_COMPILE_CXX([exception])
+# The "empty" quadrigraph is to protect from cfg.mk's
+# sc_at_parser_check.
+AT_CHECK([@&t@./exception || exit 77], [0], [], [ignore])
+])
+
+
## ---------------------------- ##
## Running a generated parser. ##
## ---------------------------- ##