diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-03-28 09:26:28 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-03-28 09:26:28 +0000 |
commit | 9fd68c082693e2db323eee226f8f041a1a596cc9 (patch) | |
tree | 60bd2c4c9dd96be75e26bf7a55c401eb632b6850 /gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C | |
parent | 9f9d16c921fcede880ddba43b970b29f0f888d8f (diff) |
Merge from mainlinebefore_gc_merge_990902egcs_gc_branch
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/egcs_gc_branch@26036 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C | 48 |
1 files changed, 1 insertions, 47 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C index fb08df3bd33..1616b69c11f 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C @@ -1,47 +1 @@ -// g++ 1.36.1 bug 900215_02 - -// g++ allows global objects (which happen to be pointers to members of some -// class X) to be dereferenced without prefix object specifications within -// member functions of class X. - -// In effect, g++ treats any dereference of a pointer-to-member which appears -// within the context of a member function (and which is not preceeded by -// either ->* or .*) as if it had been implicitly prefixed with this->*. - -// The 2.0 Reference Manual only provides that such implicit prefixing -// takes place for *members* of the containing class, and *not* for -// global objects that happen to have certain types (i.e. pointer-to-member -// of the containing class). - -// Also, cfront 2.0 provides implicit this-> prefixes *only* for *members* -// of the containing class. - -// Cfront 2.0 passes this test. - -// keywords: member pointers, this, dereference, members - -struct struct0 { - int data_member; - void function_member (); -}; - -int struct0::*dmp; -int (struct0::*fmp) (); -int i; - -struct struct1 { - int data_member; - - void function_member (); -}; - -void struct0::function_member () -{ - i = (this->*fmp) (); // perfectly legal - for both cfront and g++ - i = this->*dmp; // perfectly legal - for both cfront and g++ - - i = (*fmp) (); // ERROR - - i = *dmp; // ERROR - , XFAIL *-*-* -} - -int main () { return 0; } + i = *dmp; // ERROR - |