diff options
author | Michael Chastain <mec@google.com> | 2003-08-23 03:55:59 +0000 |
---|---|---|
committer | Michael Chastain <mec@google.com> | 2003-08-23 03:55:59 +0000 |
commit | 1105b7eff4c333814e2f260a4ff3df45057a78a4 (patch) | |
tree | 7cf20e2e8c5617c7de559da699df9c0b3dc813ae /gdb/testsuite/gdb.cp/local.cc | |
parent | dd21ace235665bd33a51862fe2293c43224c0e59 (diff) | |
download | gdb-1105b7eff4c333814e2f260a4ff3df45057a78a4.zip gdb-1105b7eff4c333814e2f260a4ff3df45057a78a4.tar.gz gdb-1105b7eff4c333814e2f260a4ff3df45057a78a4.tar.bz2 |
2003-08-22 Michael Chastain <mec@shout.net>
* gdb.cp: New directory.
* gdb.cp/*: Copy from gdb.c++/*.
* gdb.c++/*: Remove.
* Makefile.in: Change gdb.c++ to gdb.cp.
* configure.in: Ditto.
* configure: Regnerate.
Diffstat (limited to 'gdb/testsuite/gdb.cp/local.cc')
-rw-r--r-- | gdb/testsuite/gdb.cp/local.cc | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.cp/local.cc b/gdb/testsuite/gdb.cp/local.cc new file mode 100644 index 0000000..85fd6e1 --- /dev/null +++ b/gdb/testsuite/gdb.cp/local.cc @@ -0,0 +1,66 @@ +// 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(); + } +} |