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/destructors.cpp
Show First 20 Lines • Show All 320 Lines • ▼ Show 20 Lines | namespace test5 { | ||||
// CHECK5-NEXT: br i1 [[T0]], | // CHECK5-NEXT: br i1 [[T0]], | ||||
// CHECK5: call void @llvm.lifetime.end | // CHECK5: call void @llvm.lifetime.end | ||||
// CHECK5-NEXT: ret void | // CHECK5-NEXT: ret void | ||||
// lpad | // lpad | ||||
// CHECK5v03: [[EMPTY:%.*]] = icmp eq [[A]]* [[BEGIN]], [[ELT]] | // CHECK5v03: [[EMPTY:%.*]] = icmp eq [[A]]* [[BEGIN]], [[ELT]] | ||||
// CHECK5v03-NEXT: br i1 [[EMPTY]] | // CHECK5v03-NEXT: br i1 [[EMPTY]] | ||||
// CHECK5v03: [[AFTER:%.*]] = phi [[A]]* [ [[ELT]], {{%.*}} ], [ [[CUR:%.*]], {{%.*}} ] | // CHECK5v03: [[AFTER:%.*]] = phi [[A]]* [ [[ELT]], {{%.*}} ], [ [[CUR:%.*]], {{%.*}} ] | ||||
// CHECK5v03-NEXT: [[CUR:%.*]] = getelementptr inbounds [[A]], [[A]]* [[AFTER]], i64 -1 | // CHECK5v03-NEXT: [[CUR:%.*]] = getelementptr inbounds [[A]], [[A]]* [[AFTER]], i64 -1 | ||||
// CHECK5v03-NEXT: invoke void @_ZN5test51AD1Ev([[A]]* {{[^,]*}} [[CUR]]) | // CHECK5v03-NEXT: call unwindabort void @_ZN5test51AD1Ev([[A]]* {{[^,]*}} [[CUR]]) | ||||
// CHECK5v03: [[DONE:%.*]] = icmp eq [[A]]* [[CUR]], [[BEGIN]] | // CHECK5v03: [[DONE:%.*]] = icmp eq [[A]]* [[CUR]], [[BEGIN]] | ||||
// CHECK5v03-NEXT: br i1 [[DONE]], | // CHECK5v03-NEXT: br i1 [[DONE]], | ||||
// CHECK5v11-NOT: landingpad | // CHECK5v11-NOT: landingpad | ||||
// CHECK5v11: } | // CHECK5v11: } | ||||
void foo() { | void foo() { | ||||
A elems[5]; | A elems[5]; | ||||
} | } | ||||
} | } | ||||
Show All 17 Lines | namespace test6 { | ||||
// CHECK5: invoke void @_ZN5test61BILj0EEC2Ev | // CHECK5: invoke void @_ZN5test61BILj0EEC2Ev | ||||
// CHECK5: invoke void @_ZN5test61BILj1EEC2Ev | // CHECK5: invoke void @_ZN5test61BILj1EEC2Ev | ||||
// CHECK5: invoke void @_ZN5test66opaqueEv | // CHECK5: invoke void @_ZN5test66opaqueEv | ||||
// CHECK5: ret void | // CHECK5: ret void | ||||
// FIXME: way too much EH cleanup code follows | // FIXME: way too much EH cleanup code follows | ||||
C::~C() { opaque(); } | C::~C() { opaque(); } | ||||
// CHECK5-LABEL: define{{.*}} void @_ZN5test61CD2Ev(%"struct.test6::C"* {{[^,]*}} %this, i8** noundef %vtt) unnamed_addr | // CHECK5-LABEL: define{{.*}} void @_ZN5test61CD2Ev(%"struct.test6::C"* {{[^,]*}} %this, i8** noundef %vtt) unnamed_addr | ||||
// CHECK5: invoke void @_ZN5test66opaqueEv | // CHECK5v03: invoke void @_ZN5test66opaqueEv | ||||
// CHECK5v03: invoke void @_ZN5test61AD1Ev | // CHECK5v03: invoke void @_ZN5test61AD1Ev | ||||
// CHECK5v03: invoke void @_ZN5test61AD1Ev | // CHECK5v03: invoke void @_ZN5test61AD1Ev | ||||
// CHECK5v03: invoke void @_ZN5test61AD1Ev | // CHECK5v03: invoke void @_ZN5test61AD1Ev | ||||
// CHECK5v03: invoke void @_ZN5test61BILj1EED2Ev | // CHECK5v03: invoke void @_ZN5test61BILj1EED2Ev | ||||
// CHECK5v11: call unwindabort void @_ZN5test66opaqueEv | |||||
// CHECK5v11: call void @_ZN5test61AD1Ev | // CHECK5v11: call void @_ZN5test61AD1Ev | ||||
// CHECK5v11: call void @_ZN5test61AD1Ev | // CHECK5v11: call void @_ZN5test61AD1Ev | ||||
// CHECK5v11: call void @_ZN5test61AD1Ev | // CHECK5v11: call void @_ZN5test61AD1Ev | ||||
// CHECK5v11: call void @_ZN5test61BILj1EED2Ev | // CHECK5v11: call void @_ZN5test61BILj1EED2Ev | ||||
// CHECK5: call void @_ZN5test61BILj0EED2Ev | // CHECK5: call void @_ZN5test61BILj0EED2Ev | ||||
// CHECK5: ret void | // CHECK5: ret void | ||||
// CHECK5v03: invoke void @_ZN5test61AD1Ev | // CHECK5v03: call unwindabort void @_ZN5test61AD1Ev | ||||
// CHECK5v03: invoke void @_ZN5test61AD1Ev | // CHECK5v03: call unwindabort void @_ZN5test61AD1Ev | ||||
// CHECK5v03: invoke void @_ZN5test61AD1Ev | // CHECK5v03: call unwindabort void @_ZN5test61AD1Ev | ||||
// CHECK5v03: invoke void @_ZN5test61BILj1EED2Ev | // CHECK5v03: call unwindabort void @_ZN5test61BILj1EED2Ev | ||||
// CHECK5v03: invoke void @_ZN5test61BILj0EED2Ev | // CHECK5v03: call unwindabort void @_ZN5test61BILj0EED2Ev | ||||
// CHECK5-LABEL: define{{.*}} void @_ZN5test61CD1Ev(%"struct.test6::C"* {{[^,]*}} %this) unnamed_addr | // CHECK5-LABEL: define{{.*}} void @_ZN5test61CD1Ev(%"struct.test6::C"* {{[^,]*}} %this) unnamed_addr | ||||
// CHECK5v03: invoke void @_ZN5test61CD2Ev | // CHECK5v03: invoke void @_ZN5test61CD2Ev | ||||
// CHECK5v03: invoke void @_ZN5test61BILj3EED2Ev | // CHECK5v03: invoke void @_ZN5test61BILj3EED2Ev | ||||
// CHECK5v03: call void @_ZN5test61BILj2EED2Ev | // CHECK5v03: call void @_ZN5test61BILj2EED2Ev | ||||
// CHECK5v03: ret void | // CHECK5v03: ret void | ||||
// CHECK5v03: invoke void @_ZN5test61BILj3EED2Ev | // CHECK5v03: call unwindabort void @_ZN5test61BILj3EED2Ev | ||||
// CHECK5v03: invoke void @_ZN5test61BILj2EED2Ev | // CHECK5v03: call unwindabort void @_ZN5test61BILj2EED2Ev | ||||
// CHECK5v11: call void @_ZN5test61CD2Ev | // CHECK5v11: call void @_ZN5test61CD2Ev | ||||
// CHECK5v11: call void @_ZN5test61BILj3EED2Ev | // CHECK5v11: call void @_ZN5test61BILj3EED2Ev | ||||
// CHECK5v11: call void @_ZN5test61BILj2EED2Ev | // CHECK5v11: call void @_ZN5test61BILj2EED2Ev | ||||
// CHECK5v11: ret void | // CHECK5v11: ret void | ||||
} | } | ||||
// PR 9197 | // PR 9197 | ||||
▲ Show 20 Lines • Show All 172 Lines • Show Last 20 Lines |