summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.mike/net39.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/net39.C')
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.mike/net39.C30
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net39.C b/gcc/testsuite/g++.old-deja/g++.mike/net39.C
new file mode 100755
index 0000000..00ad1c6
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.mike/net39.C
@@ -0,0 +1,30 @@
+void *vp;
+
+class silly {
+public:
+ virtual int b() { return 1; }
+};
+class solly : silly {
+public:
+ virtual int b() { return 2; }
+};
+class thing {
+public:
+ virtual int a() { return 3; }
+};
+class thong : public solly, public thing {
+public:
+ virtual int a() {
+ if (this != vp) return 4;
+ else return 0;
+ }
+};
+
+typedef int(thing::*ping)();
+ping qq = &thing::a;
+
+int main() {
+ thong b;
+ vp = &b;
+ return (b.*qq)();
+}