Fix test-suite fallout of default -Wreturn-type.
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.law / except3.C
blobdc416eb3682b80f26833af0cea468a6df5354130
1 // { dg-do assemble  }
2 // { dg-options "-fexceptions" }
3 // GROUPS passed exceptions
4 // except file
5 // Message-Id: <9211301118.AA09810@ss670mp.geco.slb.com>
6 // From: willoch@ss670mp.oslo.sgp.slb.com (thorbjorn willoch)
7 // Subject: -fansi-exceptions bug
8 // Date: Mon, 30 Nov 92 11:18:05 GMT
10 extern "C" int printf(const char *, ...);
12 class Vector
14     int* p;
15     int sz;
16   public:
17     Vector(int s) { p = new int[sz=s]; }
18     ~Vector() {delete [] p; }
19     int size() {return sz; }
20     class Range{};
23     int& operator[](int i);
26 int& Vector::operator[](int i)
28     if(0<=i && i<sz) return p[i];
29     throw Range();
32 void do_something(Vector& v)
34     int i = v[v.size()+10];
37 int
38 main()
40     Vector v(10);
42     try
43     {
44         do_something(v);
45     }
47     catch (Vector::Range)
48     {
49         printf("Range error exception\n");
50     }