aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.cp/m-data.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/m-data.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/m-data.cc')
-rw-r--r--gdb/testsuite/gdb.cp/m-data.cc64
1 files changed, 64 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.cp/m-data.cc b/gdb/testsuite/gdb.cp/m-data.cc
new file mode 100644
index 0000000..c97e719
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/m-data.cc
@@ -0,0 +1,64 @@
+// 2002-05-13
+
+enum region { oriental, egyptian, greek, etruscan, roman };
+
+// Test one.
+class gnu_obj_1
+{
+protected:
+ typedef region antiquities;
+ const bool test;
+ const int key1;
+ long key2;
+
+ antiquities value;
+
+public:
+ gnu_obj_1(antiquities a, long l): test(true), key1(5), key2(l), value(a) {}
+};
+
+// Test two.
+template<typename T>
+class gnu_obj_2: public virtual gnu_obj_1
+{
+protected:
+ antiquities value_derived;
+
+public:
+ gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7), value_derived(b) { }
+};
+
+// Test three.
+template<typename T>
+class gnu_obj_3
+{
+protected:
+ typedef region antiquities;
+ gnu_obj_2<int> data;
+
+public:
+ gnu_obj_3(antiquities b): data(etruscan) { }
+};
+
+int shadow = 0;
+
+class C
+{
+public:
+ C (int x) : shadow (x) {}
+ void marker () {}
+private:
+ int shadow;
+};
+
+int main()
+{
+ gnu_obj_1 test1(egyptian, 4589);
+ gnu_obj_2<long> test2(roman);
+ gnu_obj_3<long> test3(greek);
+
+ C theC (1); // breakpoint: first-constructs-done
+ theC.marker ();
+
+ return 0;
+}