diff options
author | Benjamin Kosnik <bkoz@gcc.gnu.org> | 1998-07-28 14:01:25 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 1998-07-28 14:01:25 +0000 |
commit | 32fcacb0134c8cd4db35b6d03eed33e1218e131d (patch) | |
tree | 6e3662269c4ef4b1ba02a26d4e9c8d5a8f8f7f2e /gcc | |
parent | 282a221c4e06e2db3863811780e340769814340d (diff) | |
download | gcc-32fcacb0134c8cd4db35b6d03eed33e1218e131d.zip gcc-32fcacb0134c8cd4db35b6d03eed33e1218e131d.tar.gz gcc-32fcacb0134c8cd4db35b6d03eed33e1218e131d.tar.bz2 |
�
try 3
From-SVN: r21439
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.benjamin/typeid01.C | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/typeid01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/typeid01.C new file mode 100644 index 0000000..c75c65b --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/typeid01.C @@ -0,0 +1,71 @@ +// 980617 bkoz +// typeid for local types +// typeid bool vs int and enum vs int + +#include <typeinfo> +#ifdef DEBUG_ASSERT +#include <assert.h> +#endif + +// 4: local class in non-main function + +void test1 (void) { + bool class_p = false; + class X2 { + private: + unsigned int counter; + public: + X2 (unsigned int i = 35): counter(i) {} + ~X2(){} + unsigned int ret_counter() {return counter;} + }; + X2 obj_1; + class_p = typeid(X2) == typeid(obj_1); +} + +int main () +{ + // 1: simple +#if 1 + bool enum_p = false; + enum E { A, B, C }; + enum_p = typeid(A) == typeid(E); +#ifdef DEBUG_ASSERT + assert (enum_p); +#endif +#endif + + // 2: complex +#if 0 + bool enum2_p = false; + bool int_p = false; + bool bool_p = false; + enum E2 { A2, B2}; + enum2_p = typeid(A2) == typeid(E2); + int_p = typeid(int) == typeid(E2); + bool_p = typeid(bool) == typeid(E2); +#ifdef DEBUG_ASSERT + assert (enum2_p); + assert (!int_p); + assert (!bool_p); +#endif +#endif + + // 3: local class + bool class_p = false; + class X { + private: + unsigned int counter; + public: + X (unsigned int i = 35): counter(i) {} + ~X(){} + unsigned int ret_counter() {return counter;} + }; + X obj_1; + class_p = typeid(X) == typeid(obj_1); + + // 4: local class in function + test1(); + + return 0; +} |