brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 16b1807 Raw
61 lines · cpp
1// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s2 3struct Field {4  Field();5  ~Field();6};7 8struct Base {9  Base();10  ~Base();11};12 13struct A : Base {14  A();15  ~A();16 17  virtual void f();18  19  Field field;20};21 22// CHECK-LABEL: define{{.*}} void @_ZN1AC2Ev(ptr {{[^,]*}} %this) unnamed_addr23// CHECK: call void @_ZN4BaseC2Ev(24// CHECK: store ptr getelementptr inbounds inrange(-16, 8) ({ [3 x ptr] }, ptr @_ZTV1A, i32 0, i32 0, i32 2)25// CHECK: call void @_ZN5FieldC1Ev(26// CHECK: ret void27A::A() { }28 29// CHECK-LABEL: define{{.*}} void @_ZN1AD2Ev(ptr {{[^,]*}} %this) unnamed_addr30// CHECK: store ptr getelementptr inbounds inrange(-16, 8) ({ [3 x ptr] }, ptr @_ZTV1A, i32 0, i32 0, i32 2)31// CHECK: call void @_ZN5FieldD1Ev(32// CHECK: call void @_ZN4BaseD2Ev(33// CHECK: ret void34A::~A() { } 35 36struct B : Base {37  virtual void f();38  39  Field field;40};41 42void f() { B b; }43 44// CHECK-LABEL: define linkonce_odr void @_ZN1BC1Ev(ptr {{[^,]*}} %this) unnamed_addr45// CHECK: call void @_ZN1BC2Ev(46 47// CHECK-LABEL: define linkonce_odr void @_ZN1BD1Ev(ptr {{[^,]*}} %this) unnamed_addr48// CHECK: call void @_ZN1BD2Ev(49 50// CHECK-LABEL: define linkonce_odr void @_ZN1BC2Ev(ptr {{[^,]*}} %this) unnamed_addr51// CHECK: call void @_ZN4BaseC2Ev(52// CHECK: store ptr getelementptr inbounds inrange(-16, 8) ({ [3 x ptr] }, ptr @_ZTV1B, i32 0, i32 0, i32 2)53// CHECK: call void @_ZN5FieldC1Ev54// CHECK: ret void55 56// CHECK-LABEL: define linkonce_odr void @_ZN1BD2Ev(ptr {{[^,]*}} %this) unnamed_addr57// CHECK: store ptr getelementptr inbounds inrange(-16, 8) ({ [3 x ptr] }, ptr @_ZTV1B, i32 0, i32 0, i32 2)58// CHECK: call void @_ZN5FieldD1Ev(59// CHECK: call void @_ZN4BaseD2Ev(60// CHECK: ret void61