| // Tests for local types | |
| void marker1 (void) | |
| { | |
| } | |
| void marker2 (void) | |
| { | |
| } | |
| int foobar (int x) | |
| { | |
| class Local { | |
| public: | |
| int loc1; | |
| char loc_foo (char c) | |
| { | |
| return c + 3; | |
| } | |
| }; | |
| Local l; | |
| static Local l1; | |
| char c; | |
| marker1 (); | |
| l.loc1 = 23; | |
| c = l.loc_foo('x'); | |
| return c + 2; | |
| } | |
| int main() | |
| { | |
| int c; | |
| c = foobar (31); | |
| { // inner block | |
| class InnerLocal { | |
| public: | |
| char ilc; | |
| int * ip; | |
| int il_foo (unsigned const char & uccr) | |
| { | |
| return uccr + 333; | |
| } | |
| class NestedInnerLocal { | |
| public: | |
| int nil; | |
| int nil_foo (int i) | |
| { | |
| return i * 27; | |
| } | |
| }; | |
| NestedInnerLocal nest1; | |
| }; | |
| InnerLocal il; | |
| il.ilc = 'b'; | |
| il.ip = &c; | |
| marker2(); | |
| } | |
| } |