OSDN Git Service

Formatting fixes.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.law / except5.C
1 // { dg-do assemble  }
2 // { dg-options "-fexceptions" }
3 // GROUPS passed exceptions
4 // except file
5 // Message-Id: <199311101607.AA11803@hsi86.hsi.com>
6 // From: Grigory Tsipenyuk <grigory@hsi.com>
7 // Subject: exception's bug?
8 // Date: Wed, 10 Nov 1993 11:07:12 -0500
9
10 #include <iostream>
11
12 class X {
13         int     *a;
14         int     sz;
15 public:
16         class range { }; // exception class
17         X(int s)        { a=new int[sz=s]; }
18         int& operator[](int i);
19 };
20
21 int& X::operator[](int i)
22 {
23         if (i < 0 || i >= sz) {
24                 throw range();
25         }
26         return a[i];
27 }
28
29 int
30 main()
31 {
32         X       c(10);
33         try {
34                 for (int i = 0; i < 12; i++)
35                         c[i] = 1;
36         } catch (X::range) {
37                 std::cerr << "invalid range\n";
38         }
39         return 0;
40 }