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/pod-member-memcpys.cpp
Show First 20 Lines • Show All 257 Lines • ▼ Show 20 Lines | |||||
CALL_CC(PODLikeMember) | CALL_CC(PODLikeMember) | ||||
// PODLikeMember copy-constructor: | // PODLikeMember copy-constructor: | ||||
// CHECK-LABEL: define linkonce_odr void @_ZN13PODLikeMemberC2ERKS_(ptr {{[^,]*}} %this, ptr nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %0) | // CHECK-LABEL: define linkonce_odr void @_ZN13PODLikeMemberC2ERKS_(ptr {{[^,]*}} %this, ptr nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %0) | ||||
// CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 32, i1 {{.*}}) | // CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 32, i1 {{.*}}) | ||||
// CHECK: invoke void @_ZN6NonPODC1ERKS_ | // CHECK: invoke void @_ZN6NonPODC1ERKS_ | ||||
// CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 16, i1 {{.*}}) | // CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 16, i1 {{.*}}) | ||||
// CHECK: ret void | // CHECK: ret void | ||||
// CHECK: landingpad | // CHECK: landingpad | ||||
// CHECK: invoke void @_ZN7PODLikeD1Ev | // CHECK: call unwindabort void @_ZN7PODLikeD1Ev | ||||
CALL_CC(PODMember) | CALL_CC(PODMember) | ||||
// PODMember copy-constructor: | // PODMember copy-constructor: | ||||
// CHECK-LABEL: define linkonce_odr void @_ZN9PODMemberC2ERKS_(ptr {{[^,]*}} %this, ptr nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %0) | // CHECK-LABEL: define linkonce_odr void @_ZN9PODMemberC2ERKS_(ptr {{[^,]*}} %this, ptr nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %0) | ||||
// CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 32, i1 {{.*}}) | // CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 32, i1 {{.*}}) | ||||
// CHECK: call void @_ZN6NonPODC1ERKS_ | // CHECK: call void @_ZN6NonPODC1ERKS_ | ||||
// CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 16, i1 {{.*}}) | // CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 16, i1 {{.*}}) | ||||
// CHECK: ret void | // CHECK: ret void | ||||
CALL_CC(Basic) | CALL_CC(Basic) | ||||
// Basic copy-constructor: | // Basic copy-constructor: | ||||
// CHECK-LABEL: define linkonce_odr void @_ZN5BasicC2ERKS_(ptr {{[^,]*}} %this, ptr nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %0) | // CHECK-LABEL: define linkonce_odr void @_ZN5BasicC2ERKS_(ptr {{[^,]*}} %this, ptr nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %0) | ||||
// CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 16, i1 {{.*}}) | // CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 16, i1 {{.*}}) | ||||
// CHECK: call void @_ZN6NonPODC1ERKS_ | // CHECK: call void @_ZN6NonPODC1ERKS_ | ||||
// CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 16, i1 {{.*}}) | // CHECK: call void @llvm.memcpy.p0.p0.i64({{.*}} align 4 {{.*}} align 4 {{.*}}i64 16, i1 {{.*}}) | ||||
// CHECK: ret void | // CHECK: ret void |