brintos

brintos / llvm-project-archived public Read only

0
0
Text · 481 B · a4411fc Raw
23 lines · cpp
1// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o -2// RUN: %clang_cc1 -triple %ms_abi_triple -fno-rtti -emit-llvm %s -o -3 4struct A {5  virtual void Method() = 0;6};7 8struct B : public A {9  virtual void Method() { }10};11 12typedef void (A::*fn_type_a)(void);13typedef void (B::*fn_type_b)(void);14 15int main(int argc, char **argv)16{17  fn_type_a f = reinterpret_cast<fn_type_a>(&B::Method);18  fn_type_b g = reinterpret_cast<fn_type_b>(f);19  B b;20  (b.*g)();21  return 0;22}23