1// Tests for local types 2 3void marker1 (void) 4{ 5} 6 7void marker2 (void) 8{ 9} 10 11int 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 34int 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} 67