diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/rtti/typeid8.C')
-rw-r--r-- | gcc/testsuite/g++.dg/rtti/typeid8.C | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/rtti/typeid8.C b/gcc/testsuite/g++.dg/rtti/typeid8.C new file mode 100644 index 00000000000..2b13be5ef52 --- /dev/null +++ b/gcc/testsuite/g++.dg/rtti/typeid8.C @@ -0,0 +1,26 @@ +// PR c++/36405 +// { dg-do compile } + +#include <typeinfo> + +struct A +{ + void foo () + { + typeid (foo).name (); // { dg-error "invalid use of member" } + typeid (A::foo).name (); // { dg-error "invalid use of member" } + } + void bar () + { + typeid (foo).name (); // { dg-error "invalid use of member" } + typeid (A::foo).name (); // { dg-error "invalid use of member" } + } + static void baz () + { + typeid (baz).name (); + typeid (A::baz).name (); + } +}; + +const char *p1 = typeid (A::foo).name (); // { dg-error "invalid use of non-static member" } +const char *p2 = typeid (A::baz).name (); |