diff options
Diffstat (limited to 'testsuites/libtests/dl05/dl-o5.cpp')
-rw-r--r-- | testsuites/libtests/dl05/dl-o5.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/testsuites/libtests/dl05/dl-o5.cpp b/testsuites/libtests/dl05/dl-o5.cpp new file mode 100644 index 0000000000..5918e8f2d5 --- /dev/null +++ b/testsuites/libtests/dl05/dl-o5.cpp @@ -0,0 +1,28 @@ +#include <cstdio> +#include <stdexcept> +#include "dl-load.h" /* make the symbol a C linkage */ +void exception_dl(bool throw_runtime) +{ + printf("exception_dl: begin\n"); + try + { + printf("exception_dl: throwing...\n"); + if (throw_runtime) + throw std::runtime_error("throw std::runtime_error object"); + else + throw dl_test_throw_me("throw dl_test_throw_me object"); + } + catch (dl_test_throw_me const& e) + { + printf("%s: caught: %s\n", __func__, e.what()); + } + catch (std::exception const& e) + { + printf("%s: caught: %s\n", __func__, e.what()); + } + catch (...) + { + printf("%s: caught: unknown\n", __func__); + } + printf("exception_dl: end\n"); +} |