URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.law/] [casts2.C] - Rev 154
Compare with Previous | Blame | View Log
// { dg-do assemble }
// GROUPS passed casts
class VObject;
typedef int boolean;
typedef boolean (VObject::*method)();
typedef boolean (VObject::*method0)();
typedef boolean (VObject::*method1)(long);
#define methodOf(o,m) (method)(&o::m)
class VObject {
public:
boolean perform(method );
boolean perform(method , long);
void affectMethod(method );
void dummy(){};
};
boolean VObject::perform(method m)
{
method0 q = (method0)m;
return(this->*q)();
}
boolean VObject::perform(method m, long param)
{
method1 q = (method1)m;
return(this->*q)(param);
}
void VObject::affectMethod(method m)
{
m = methodOf(VObject, dummy);
}