OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.mike/] [p3060d.C] - Blame information for rev 338

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 305 jeremybenn
// { dg-do run  }
2
// This is a test case to make sure the explicit cast on a pointer to
3
// a member function works ok.
4
// prms-id: 3060
5
 
6
extern "C" int printf(const char *, ...);
7
 
8
class Object;
9
 
10
typedef void (Object::*VoidObjMemberFunc)(Object *tracker, void *ap);
11
 
12
class Object {
13
public:
14
  int         foo;
15
};
16
 
17
class Clipper: public Object {
18
public:
19
  int         bar;
20
  void        Feedback(Object*, void*);
21
};
22
void Clipper::Feedback(Object *tracker, void *ap) {
23
  printf("Doing feedback\n");
24
}
25
 
26
void vfunc(VoidObjMemberFunc of, Object *op, void *v1) {
27
  (op->*of)(op, v1);
28
}
29
 
30
int main() {
31
  Object      o;
32
 
33
  vfunc((VoidObjMemberFunc)&Clipper::Feedback, &o, 0);
34
  return 0;
35
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.