binutils/
[external/binutils.git] / gdb / testsuite / gdb.cp / local.cc
1 // Tests for local types
2
3 void marker1 (void)
4
5 }
6
7 void marker2 (void)
8 {
9 }
10   
11 int foobar (int x)
12 {
13   class Local {
14   public:
15     int loc1;
16     char loc_foo (char c)
17     {
18       return c + 3;
19     }
20   };
21
22   Local l;
23   static Local l1;
24   char  c;
25
26   marker1 ();
27
28   l.loc1 = 23;
29
30   c = l.loc_foo('x');
31   return c + 2;
32 }
33
34 int main()
35 {
36   int c;
37   
38   c = foobar (31);
39   
40  { // inner block
41    class InnerLocal {
42    public:
43      char ilc;
44      int * ip;
45      int il_foo (unsigned const char & uccr)
46      {
47        return uccr + 333;
48      }
49      class NestedInnerLocal {
50      public:
51        int nil;
52        int nil_foo (int i)
53        {
54          return i * 27;
55        }
56      };
57      NestedInnerLocal nest1;
58    };
59
60    InnerLocal il;
61
62    il.ilc = 'b';
63    il.ip = &c;
64    marker2();
65  }
66 }