forked from OSchip/llvm-project
[IR] Print the label operands of a catchpad like an invoke
The rest of the EH pads are fine, since they have at most one label and take fewer operands for the personality. Old catchpad vs. new: %5 = catchpad [i8* bitcast (i32 ()* @"\01?filt$0@0@main@@" to i8*)] to label %__except.ret.10 unwind label %catchendblock.9 ----- %5 = catchpad [i8* bitcast (i32 ()* @"\01?filt$0@0@main@@" to i8*)] to label %__except.ret.10 unwind label %catchendblock.9 llvm-svn: 247433
This commit is contained in:
parent
5c8bd88a4c
commit
5dbee7baef
|
@ -2847,7 +2847,7 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
|
|||
Out << ", ";
|
||||
writeOperand(CPI->getArgOperand(Op), /*PrintType=*/true);
|
||||
}
|
||||
Out << "] to ";
|
||||
Out << "]\n to ";
|
||||
writeOperand(CPI->getNormalDest(), /*PrintType=*/true);
|
||||
Out << " unwind ";
|
||||
writeOperand(CPI->getUnwindDest(), /*PrintType=*/true);
|
||||
|
|
|
@ -773,15 +773,18 @@ entry:
|
|||
|
||||
catchpad1:
|
||||
catchpad [] to label %normal unwind label %exn.1
|
||||
; CHECK: catchpad [] to label %normal unwind label %exn.1
|
||||
; CHECK: catchpad []
|
||||
; CHECK-NEXT: to label %normal unwind label %exn.1
|
||||
|
||||
catchpad2:
|
||||
catchpad [i32* %arg1] to label %normal unwind label %exn.2
|
||||
; CHECK: catchpad [i32* %arg1] to label %normal unwind label %exn.2
|
||||
; CHECK: catchpad [i32* %arg1]
|
||||
; CHECK-NEXT: to label %normal unwind label %exn.2
|
||||
|
||||
catchpad3:
|
||||
catchpad [i32* %arg1, i32* %arg2] to label %normal unwind label %exn.3
|
||||
; CHECK: catchpad [i32* %arg1, i32* %arg2] to label %normal unwind label %exn.3
|
||||
; CHECK: catchpad [i32* %arg1, i32* %arg2]
|
||||
; CHECK-NEXT: to label %normal unwind label %exn.3
|
||||
|
||||
exn.1:
|
||||
catchendpad unwind label %terminate.1
|
||||
|
@ -835,7 +838,8 @@ cleanup:
|
|||
|
||||
catchpad:
|
||||
%catch = catchpad [] to label %body unwind label %catchend
|
||||
; CHECK: %catch = catchpad [] to label %body unwind label %catchend
|
||||
; CHECK: %catch = catchpad []
|
||||
; CHECK-NEXT: to label %body unwind label %catchend
|
||||
|
||||
body:
|
||||
invoke void @f.ccc() to label %continue unwind label %catchend
|
||||
|
|
|
@ -33,7 +33,8 @@ endcatch:
|
|||
; CHECK: invoke void @f()
|
||||
; CHECK: to label %[[EntryCopy:[^ ]+]] unwind label %catch
|
||||
; CHECK: catch:
|
||||
; CHECK: catchpad [] to label %[[CatchCopy:[^ ]+]] unwind
|
||||
; CHECK: catchpad []
|
||||
; CHECK-NEXT: to label %[[CatchCopy:[^ ]+]] unwind
|
||||
; CHECK: [[CatchCopy]]:
|
||||
; CHECK: [[LoadX2:%[^ ]+]] = load i32, i32* [[Slot]]
|
||||
; CHECK: call void @h(i32 [[LoadX2]]
|
||||
|
@ -96,7 +97,8 @@ exit:
|
|||
; CHECK: invoke void @f()
|
||||
; CHECK: to label %[[exit:[^ ]+]] unwind
|
||||
; CHECK: catch:
|
||||
; CHECK: catchpad [] to label %[[shared:[^ ]+]] unwind
|
||||
; CHECK: catchpad []
|
||||
; CHECK-NEXT: to label %[[shared:[^ ]+]] unwind
|
||||
; CHECK: cleanup:
|
||||
; CHECK: cleanuppad []
|
||||
; CHECK: call void @f()
|
||||
|
@ -411,7 +413,8 @@ unreachable:
|
|||
; CHECK-NEXT: %cleanup = cleanuppad
|
||||
; CHECK-NEXT: cleanupret %cleanup unwind label %outer
|
||||
; CHECK: outer:
|
||||
; CHECK-NEXT: %catch = catchpad [] to label %catch.body unwind label %endpad
|
||||
; CHECK-NEXT: %catch = catchpad []
|
||||
; CHECK-NEXT: to label %catch.body unwind label %endpad
|
||||
; CHECK: catch.body:
|
||||
; CHECK-NEXT: catchret %catch to label %exit
|
||||
; CHECK: endpad:
|
||||
|
|
|
@ -126,7 +126,8 @@ ehcleanup.1: ; preds = %catchendblock
|
|||
; CHECK: invoke void @g()
|
||||
; CHECK: to label %try.cont unwind label %catch.dispatch
|
||||
; CHECK: catch.dispatch:
|
||||
; CHECK: catchpad [i8* null, i8* null] to label %catch unwind label %catchendblock
|
||||
; CHECK: catchpad [i8* null, i8* null]
|
||||
; CHECK-NEXT: to label %catch unwind label %catchendblock
|
||||
; CHECK: catch:
|
||||
; CHECK: catchret
|
||||
; CHECK: catchendblock:
|
||||
|
|
Loading…
Reference in New Issue