Home | History | Annotate | Download | only in CodeGenCXX

Lines Matching defs:dtors

5 // RUN: FileCheck --check-prefix DTORS %s < %t
9 // RUN: %clang_cc1 -emit-llvm %s -o - -mconstructor-aliases -triple=x86_64-pc-win32 -fno-rtti | FileCheck --check-prefix DTORS-X64 %s
49 // DTORS: define linkonce_odr x86_thiscallcc i8* @"\01??_GC@basic@@UAEPAXI@Z"(%"struct.basic::C"* %this, i32 %should_call_delete) {{.*}} comdat {{.*}} {
50 // DTORS: store i32 %should_call_delete, i32* %[[SHOULD_DELETE_VAR:[0-9a-z._]+]], align 4
51 // DTORS: store i8* %{{.*}}, i8** %[[RETVAL:[0-9a-z._]+]]
52 // DTORS: %[[SHOULD_DELETE_VALUE:[0-9a-z._]+]] = load i32, i32* %[[SHOULD_DELETE_VAR]]
53 // DTORS: call x86_thiscallcc void @"\01??1C@basic@@UAE@XZ"(%"struct.basic::C"* %[[THIS:[0-9a-z]+]])
54 // DTORS-NEXT: %[[CONDITION:[0-9]+]] = icmp eq i32 %[[SHOULD_DELETE_VALUE]], 0
55 // DTORS-NEXT: br i1 %[[CONDITION]], label %[[CONTINUE_LABEL:[0-9a-z._]+]], label %[[CALL_DELETE_LABEL:[0-9a-z._]+]]
57 // DTORS: [[CALL_DELETE_LABEL]]
58 // DTORS-NEXT: %[[THIS_AS_VOID:[0-9a-z]+]] = bitcast %"struct.basic::C"* %[[THIS]] to i8*
59 // DTORS-NEXT: call void @"\01??3@YAXPAX@Z"(i8* %[[THIS_AS_VOID]])
60 // DTORS-NEXT: br label %[[CONTINUE_LABEL]]
62 // DTORS: [[CONTINUE_LABEL]]
63 // DTORS-NEXT: %[[RET:.*]] = load i8*, i8** %[[RETVAL]]
64 // DTORS-NEXT: ret i8* %[[RET]]
67 // DTORS-X64: @"\01??_GC@basic@@UEAAPEAXI@Z"
339 namespace dtors {
347 // CHECK: define void @"\01?call_nv_complete@dtors@@YAXPAUA@1@@Z"
348 // CHECK: call x86_thiscallcc void @"\01??1A@dtors@@QAE@XZ"
352 // CHECK: declare x86_thiscallcc void @"\01??1A@dtors@@QAE@XZ"
362 // CHECK: define void @"\01?call_vbase_complete@dtors@@YAXPAUD@1@@Z"
363 // CHECK: call x86_thiscallcc void @"\01??_DD@dtors@@QAE@XZ"(%"struct.dtors::D"* %{{[^,]+}})
367 // The complete dtor should call the base dtors for D and the vbase A (once).
368 // CHECK: define linkonce_odr x86_thiscallcc void @"\01??_DD@dtors@@QAE@XZ"({{.*}}) {{.*}} comdat
370 // CHECK: call x86_thiscallcc void @"\01??1D@dtors@@QAE@XZ"
372 // CHECK: call x86_thiscallcc void @"\01??1A@dtors@@QAE@XZ"
378 // CHECK: define void @"\01?destroy_d_complete@dtors@@YAXXZ"
379 // CHECK: call x86_thiscallcc void @"\01??_DD@dtors@@QAE@XZ"(%"struct.dtors::D"* %{{[^,]+}})
384 // deleting dtor (_G). The only way to call deleting dtors currently is through
388 // CHECK: define void @"\01?call_nv_deleting_dtor@dtors
389 // CHECK: call x86_thiscallcc void @"\01??_DD@dtors@@QAE@XZ"(%"struct.dtors::D"* %{{[^,]+}})