Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
clang/test/CodeGenCXX/delete-two-arg.cpp
Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | void test(A *p) { | ||||
// CHECK-NEXT: store [[A]]* {{%.*}}, [[A]]** [[P]], align 4 | // CHECK-NEXT: store [[A]]* {{%.*}}, [[A]]** [[P]], align 4 | ||||
// CHECK-NEXT: [[T0:%.*]] = load [[A]]*, [[A]]** [[P]], align 4 | // CHECK-NEXT: [[T0:%.*]] = load [[A]]*, [[A]]** [[P]], align 4 | ||||
// CHECK-NEXT: [[T1:%.*]] = icmp eq [[A]]* [[T0]], null | // CHECK-NEXT: [[T1:%.*]] = icmp eq [[A]]* [[T0]], null | ||||
// CHECK-NEXT: br i1 [[T1]], | // CHECK-NEXT: br i1 [[T1]], | ||||
// CHECK: [[T2:%.*]] = bitcast [[A]]* [[T0]] to i8* | // CHECK: [[T2:%.*]] = bitcast [[A]]* [[T0]] to i8* | ||||
// CHECK-NEXT: [[T3:%.*]] = getelementptr inbounds i8, i8* [[T2]], i32 -4 | // CHECK-NEXT: [[T3:%.*]] = getelementptr inbounds i8, i8* [[T2]], i32 -4 | ||||
// CHECK-NEXT: [[T4:%.*]] = bitcast i8* [[T3]] to i32* | // CHECK-NEXT: [[T4:%.*]] = bitcast i8* [[T3]] to i32* | ||||
// CHECK-NEXT: [[T5:%.*]] = load i32, i32* [[T4]] | // CHECK-NEXT: [[T5:%.*]] = load i32, i32* [[T4]] | ||||
// CHECK-NEXT: call void @_ZdaPv(i8* noundef [[T3]]) | // CHECK-NEXT: [[T6:%.*]] = mul i32 4, [[T5]] | ||||
// CHECK-NEXT: [[T7:%.*]] = add i32 [[T6]], 4 | |||||
// CHECK-NEXT: call void @_ZdaPvj(i8* noundef [[T3]], i32 noundef [[T7]]) | |||||
// CHECK-NEXT: br label | // CHECK-NEXT: br label | ||||
::delete[] p; | ::delete[] p; | ||||
} | } | ||||
} | } | ||||
// rdar://problem/8913519 | // rdar://problem/8913519 | ||||
namespace test3 { | namespace test3 { | ||||
struct A { | struct A { | ||||
Show All 13 Lines |