diff options
Diffstat (limited to 'gcc_arm/testsuite/g++.old-deja/g++.benjamin/scope01.C')
-rwxr-xr-x | gcc_arm/testsuite/g++.old-deja/g++.benjamin/scope01.C | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/gcc_arm/testsuite/g++.old-deja/g++.benjamin/scope01.C b/gcc_arm/testsuite/g++.old-deja/g++.benjamin/scope01.C deleted file mode 100755 index a834f4f..0000000 --- a/gcc_arm/testsuite/g++.old-deja/g++.benjamin/scope01.C +++ /dev/null @@ -1,71 +0,0 @@ -// Build don't link: -// 980604 bkoz -// 3.4.5 Class member access p 4 -// nested and non-nested calls, no dtors - -struct L { - int ii; - void foo(int a) {++a;} - struct Linner { - int ii_inner; - void foo_inner(int b) {++b;} - }; -}; -class A : public L {}; -class B : public L {}; -class C : public A, public B {}; - - -void foo() { - // straight call - C x; - x.A::ii = 5; - x.A::foo(x.A::ii); - - // 5.1 Primary expressions - // p 8 - // a nested name specifier that names a class, - // optionally followed by the keyword template and then followd by - // the name of a member of either that class or one of its base - // classes is a qualified-id. (3.4.3.1 describes their lookup.) - - // 5.2.5 Class memember access - - // p 3 if E1 has the type 'pointer to class X' then - // E1->E2 == (*(E1)).E32 - // E1 == object-expression - // E2 == id-expression - // thus everything gets converted to the "." notation - - // p 2 - // the id-expression shall name a member of the class - // (object-expression) or of one of its base classes. - - // p4 if E2 is a nested type (of the object-expression), tye - // expression E1.E2 is ill formed. - - // try 1 nested call - ERROR -#if 0 - C x2; - x2.A::L::Linner::ii_inner = 6; //ERROR violates p2, does not name member of C - x2.A::L::Linner::foo_inner(x2.A::L::Linner::ii_inner); -#endif - - //try2: scoped method call -edg +acc +g++ -#if 1 - C::A::Linner x2; - x2.A::Linner::ii_inner = 6; - x2.A::Linner::foo_inner(x2.A::Linner::ii_inner); -#endif - - //try 3: non-scoped method call -edg +acc +g++ -#if 0 - C::A::L::Linner x3; - x3.ii_inner = 6; - x3.foo_inner(x3.ii_inner); -#endif -} - - - - |