* typeck.c (build_binary_op): Fix pmf comparison logic.
From-SVN: r38637
This commit is contained in:
parent
96d6c6107a
commit
f941340f5a
26
gcc/testsuite/g++.old-deja/g++.other/pmf6.C
Normal file
26
gcc/testsuite/g++.old-deja/g++.other/pmf6.C
Normal file
@ -0,0 +1,26 @@
|
||||
// Test that we only call f once and that pointers to different subobjects
|
||||
// compare as different.
|
||||
|
||||
struct A { void f() { } };
|
||||
struct B: public A { };
|
||||
struct C: public A { };
|
||||
struct D : public B, public C { };
|
||||
|
||||
typedef void (B::*bp)();
|
||||
typedef void (C::*cp)();
|
||||
typedef void (D::*dp)();
|
||||
|
||||
dp d1;
|
||||
|
||||
int call;
|
||||
|
||||
dp f () { ++call; return d1; }
|
||||
|
||||
int main()
|
||||
{
|
||||
bp b = &A::f;
|
||||
cp c = &A::f;
|
||||
d1 = b;
|
||||
dp d2 = c;
|
||||
return (f() == d2 || call != 1);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user