summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.c++/try_catch.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.c++/try_catch.cc')
-rw-r--r--gdb/testsuite/gdb.c++/try_catch.cc121
1 files changed, 0 insertions, 121 deletions
diff --git a/gdb/testsuite/gdb.c++/try_catch.cc b/gdb/testsuite/gdb.c++/try_catch.cc
deleted file mode 100644
index e13dd641b49..00000000000
--- a/gdb/testsuite/gdb.c++/try_catch.cc
+++ /dev/null
@@ -1,121 +0,0 @@
-// 2002-05-27
-
-#include <exception>
-#include <stdexcept>
-#include <string>
-
-enum region { oriental, egyptian, greek, etruscan, roman };
-
-// Test one.
-class gnu_obj_1
-{
-public:
- typedef region antiquities;
- const bool test;
- const int key1;
- long key2;
-
- antiquities value;
-
- gnu_obj_1(antiquities a, long l): test(true), key1(5), key2(l), value(a) {}
-};
-
-// Test two.
-template<typename T>
-class gnu_obj_2: public virtual gnu_obj_1
-{
-public:
- antiquities value_derived;
-
- gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7), value_derived(b) { }
-};
-
-// Test three.
-template<typename T>
-class gnu_obj_3
-{
-public:
- typedef region antiquities;
- gnu_obj_2<int> data;
-
- gnu_obj_3(antiquities b): data(etruscan) { }
-};
-
-int main()
-{
- bool test = true;
- const int i = 5;
- int j = i;
- gnu_obj_2<long> test2(roman);
- gnu_obj_3<long> test3(greek);
-
- // 1
- try
- {
- ++j;
- throw gnu_obj_1(egyptian, 4589); // marker 1-throw
- }
- catch (gnu_obj_1& obj)
- {
- ++j;
- if (obj.value != egyptian) // marker 1-catch
- test &= false;
- if (obj.key2 != 4589)
- test &= false;
- }
- catch (...)
- {
- j = 0;
- test &= false;
- }
-
- // 2
- try
- {
- ++j; // marker 2-start
- try
- {
- ++j; // marker 2-next
- try
- {
- ++j;
- throw gnu_obj_1(egyptian, 4589); // marker 2-throw
- }
- catch (gnu_obj_1& obj)
- {
- ++j;
- if (obj.value != egyptian) // marker 2-catch
- test &= false;
- if (obj.key2 != 4589)
- test &= false;
- }
- }
- catch (gnu_obj_1& obj)
- {
- ++j;
- if (obj.value != egyptian)
- test &= false;
- if (obj.key2 != 4589)
- test &= false;
- }
- }
- catch (...)
- {
- j = 0;
- test &= false;
- }
-
- // 3 use standard library
- using namespace std;
- try
- {
- if (j < 100)
- throw invalid_argument("gdb.1"); // marker 3-throw
- }
- catch (exception& obj)
- {
- if (obj.what() != "gdb.1") // marker 3-catch
- test &= false;
- }
- return 0;
-}