Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame^] | 1 | // RUN: %llvmgxx -S %s -o - | llvm-as -f -o /dev/null |
2 | |||||
3 | struct A { | ||||
4 | virtual void Method() = 0; | ||||
5 | }; | ||||
6 | |||||
7 | struct B : public A { | ||||
8 | virtual void Method() { } | ||||
9 | }; | ||||
10 | |||||
11 | typedef void (A::*fn_type_a)(void); | ||||
12 | typedef void (B::*fn_type_b)(void); | ||||
13 | |||||
14 | int main(int argc, char **argv) | ||||
15 | { | ||||
16 | fn_type_a f = reinterpret_cast<fn_type_a>(&B::Method); | ||||
17 | fn_type_b g = reinterpret_cast<fn_type_b>(f); | ||||
18 | B b; | ||||
19 | (b.*g)(); | ||||
20 | return 0; | ||||
21 | } |