diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/net39.C')
-rwxr-xr-x | gcc/testsuite/g++.old-deja/g++.mike/net39.C | 30 |
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)(); +} |