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/pr58798.cpp
Show First 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | |||||
// CHECK-NEXT: [[A_ADDR:%.*]] = alloca i32, align 4 | // CHECK-NEXT: [[A_ADDR:%.*]] = alloca i32, align 4 | ||||
// CHECK-NEXT: store i32 [[A]], ptr [[A_ADDR]], align 4 | // CHECK-NEXT: store i32 [[A]], ptr [[A_ADDR]], align 4 | ||||
// CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[A_ADDR]], align 4 | // CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[A_ADDR]], align 4 | ||||
// CHECK-NEXT: [[TOBOOL:%.*]] = icmp ne i32 [[TMP0]], 0 | // CHECK-NEXT: [[TOBOOL:%.*]] = icmp ne i32 [[TMP0]], 0 | ||||
// CHECK-NEXT: br i1 [[TOBOOL]], label [[IF_THEN:%.*]], label [[IF_END:%.*]] | // CHECK-NEXT: br i1 [[TOBOOL]], label [[IF_THEN:%.*]], label [[IF_END:%.*]] | ||||
// CHECK: if.then: | // CHECK: if.then: | ||||
// CHECK-NEXT: [[EXCEPTION:%.*]] = call ptr @__cxa_allocate_exception(i64 4) #[[ATTR4]] | // CHECK-NEXT: [[EXCEPTION:%.*]] = call ptr @__cxa_allocate_exception(i64 4) #[[ATTR4]] | ||||
// CHECK-NEXT: store i32 42, ptr [[EXCEPTION]], align 16 | // CHECK-NEXT: store i32 42, ptr [[EXCEPTION]], align 16 | ||||
// CHECK-NEXT: invoke void @__cxa_throw(ptr [[EXCEPTION]], ptr @_ZTIi, ptr null) #[[ATTR5]] | // CHECK-NEXT: call unwindabort void @__cxa_throw(ptr [[EXCEPTION]], ptr @_ZTIi, ptr null) #[[ATTR5]] | ||||
// CHECK-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[TERMINATE_LPAD:%.*]] | |||||
// CHECK: if.end: | // CHECK: if.end: | ||||
// CHECK-NEXT: ret i32 24 | // CHECK-NEXT: ret i32 24 | ||||
// CHECK: terminate.lpad: | |||||
// CHECK-NEXT: [[TMP1:%.*]] = landingpad { ptr, i32 } | |||||
// CHECK-NEXT: catch ptr null | |||||
// CHECK-NEXT: [[TMP2:%.*]] = extractvalue { ptr, i32 } [[TMP1]], 0 | |||||
// CHECK-NEXT: call void @__clang_call_terminate(ptr [[TMP2]]) #[[ATTR6:[0-9]+]] | |||||
// CHECK-NEXT: unreachable | |||||
// CHECK: unreachable: | |||||
// CHECK-NEXT: unreachable | |||||
// | // | ||||
// CHECK: Function Attrs: mustprogress noinline nounwind optnone | // CHECK: Function Attrs: mustprogress noinline nounwind optnone | ||||
// CHECK-LABEL: define {{[^@]+}}@_Z50early_caller_of_callee_with_cxx_attr_with_cxx_attri | // CHECK-LABEL: define {{[^@]+}}@_Z50early_caller_of_callee_with_cxx_attr_with_cxx_attri | ||||
// CHECK-SAME: (i32 noundef [[A:%.*]]) #[[ATTR1]] { | // CHECK-SAME: (i32 noundef [[A:%.*]]) #[[ATTR1]] { | ||||
// CHECK-NEXT: entry: | // CHECK-NEXT: entry: | ||||
// CHECK-NEXT: [[A_ADDR:%.*]] = alloca i32, align 4 | // CHECK-NEXT: [[A_ADDR:%.*]] = alloca i32, align 4 | ||||
// CHECK-NEXT: store i32 [[A]], ptr [[A_ADDR]], align 4 | // CHECK-NEXT: store i32 [[A]], ptr [[A_ADDR]], align 4 | ||||
▲ Show 20 Lines • Show All 100 Lines • Show Last 20 Lines |