aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.cp/local.cc
diff options
context:
space:
mode:
authorMichael Chastain <mec@google.com>2003-08-23 03:55:59 +0000
committerMichael Chastain <mec@google.com>2003-08-23 03:55:59 +0000
commit1105b7eff4c333814e2f260a4ff3df45057a78a4 (patch)
tree7cf20e2e8c5617c7de559da699df9c0b3dc813ae /gdb/testsuite/gdb.cp/local.cc
parentdd21ace235665bd33a51862fe2293c43224c0e59 (diff)
downloadgdb-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.cc66
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();
+ }
+}