mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 02:03:03 +00:00
tests: skip C++ tests that are too demanding for some compilers
Some tests now fail when compiled with G++ 4.3 or 4.4 on MacPorts. * tests/local.at (AT_SKIP_IF_EXCEPTION_SUPPORT_IS_POOR): New. * tests/c++.at (Exception safety): Use it.
This commit is contained in:
@@ -655,6 +655,8 @@ AT_CLEANUP
|
|||||||
m4_pushdef([AT_TEST],
|
m4_pushdef([AT_TEST],
|
||||||
[AT_SETUP([[Exception safety $1]])
|
[AT_SETUP([[Exception safety $1]])
|
||||||
|
|
||||||
|
AT_SKIP_IF_EXCEPTION_SUPPORT_IS_POOR
|
||||||
|
|
||||||
AT_BISON_OPTION_PUSHDEFS([%skeleton "lalr1.cc" $1])
|
AT_BISON_OPTION_PUSHDEFS([%skeleton "lalr1.cc" $1])
|
||||||
|
|
||||||
AT_DATA_GRAMMAR([[input.yy]],
|
AT_DATA_GRAMMAR([[input.yy]],
|
||||||
|
|||||||
@@ -875,6 +875,49 @@ AT_PARSER_CHECK([./c-and-cxx])
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# 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. ##
|
## Running a generated parser. ##
|
||||||
## ---------------------------- ##
|
## ---------------------------- ##
|
||||||
|
|||||||
Reference in New Issue
Block a user