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/m-static.cc | |
parent | dd21ace235665bd33a51862fe2293c43224c0e59 (diff) | |
download | fsf-binutils-gdb-1105b7eff4c333814e2f260a4ff3df45057a78a4.zip fsf-binutils-gdb-1105b7eff4c333814e2f260a4ff3df45057a78a4.tar.gz fsf-binutils-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-static.cc')
-rw-r--r-- | gdb/testsuite/gdb.cp/m-static.cc | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.cp/m-static.cc b/gdb/testsuite/gdb.cp/m-static.cc new file mode 100644 index 0000000..6d08cb0 --- /dev/null +++ b/gdb/testsuite/gdb.cp/m-static.cc @@ -0,0 +1,72 @@ +// 2002-05-13 + +enum region { oriental, egyptian, greek, etruscan, roman }; + +// Test one. +class gnu_obj_1 +{ +protected: + typedef region antiquities; + static const bool test = true; + static const int key1 = 5; + static long key2; + + static antiquities value; + +public: + gnu_obj_1(antiquities a, long l) {} +}; + +const bool gnu_obj_1::test; +const int gnu_obj_1::key1; +long gnu_obj_1::key2 = 77; +gnu_obj_1::antiquities gnu_obj_1::value = oriental; + + +// Test two. +template<typename T> +class gnu_obj_2: public virtual gnu_obj_1 +{ +public: + static antiquities value_derived; + +public: + gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7) { } +}; + +template<typename T> +typename gnu_obj_2<T>::antiquities gnu_obj_2<T>::value_derived = etruscan; + +// Test three. +template<typename T> +class gnu_obj_3 +{ +public: + typedef region antiquities; + static gnu_obj_2<int> data; + +public: + gnu_obj_3(antiquities b) { } +}; + +template<typename T> +gnu_obj_2<int> gnu_obj_3<T>::data(etruscan); + +// 2002-08-16 +// Test four. +#include "m-static.h" + +// instantiate templates explicitly so their static members will exist +template class gnu_obj_2<int>; +template class gnu_obj_2<long>; +template class gnu_obj_3<long>; + +int main() +{ + gnu_obj_1 test1(egyptian, 4589); + gnu_obj_2<long> test2(roman); + gnu_obj_3<long> test3(greek); + gnu_obj_4 test4; + + return 0; // breakpoint: constructs-done +} |