summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.benjamin/scope01.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.benjamin/scope01.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.benjamin/scope01.C71
1 files changed, 0 insertions, 71 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/scope01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/scope01.C
deleted file mode 100644
index a834f4f4956..00000000000
--- a/gcc/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
-}
-
-
-
-