aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.mike/eh2.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/eh2.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/eh2.C71
1 files changed, 0 insertions, 71 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh2.C b/gcc/testsuite/g++.old-deja/g++.mike/eh2.C
deleted file mode 100644
index d808a65d135..00000000000
--- a/gcc/testsuite/g++.old-deja/g++.mike/eh2.C
+++ /dev/null
@@ -1,71 +0,0 @@
-// Special g++ Options: -fexceptions
-// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-*
-
-#include <stdlib.h>
-#include <iostream.h>
-
-class Vector {
-private:
- int *p;
- int sz;
-
-public:
- // Exception class
- class Range {
- private:
- int value_i;
-
- public:
- Range( int i ) { value_i = i; };
- int value() { return value_i; };
- };
-
- Vector( int s );
- ~Vector();
- int size() { return sz; };
- int& operator []( int i );
-};
-
-Vector::Vector(int s) {
- sz = s;
- p = new int[sz];
-}
-
-Vector::~Vector() {
- delete [] p;
-}
-
-int&
-Vector::operator [](int i) {
- if (0<=i && i<sz) {
- return p[i];
- } else {
- throw Range( i );
- }
-}
-
-void crash(Vector& v ) {
- v[v.size()+10]; // Triggers range error!
-}
-
-void do_something(Vector& v) {
- crash( v );
-}
-
-void
-f(Vector& v) {
- try {
- do_something( v );
- } catch (Vector::Range& r) {
- cout << "Invalid vector range " << r.value()
- << " caught in f()" << endl;
- exit(0);
- }
-}
-
-main() {
- Vector v(10);
-
- f( v );
- return 1;
-}