From: Reid Kleckner <rnk@google.com>
Date: Fri, 11 Sep 2015 17:27:52 +0000 (+0000)
Subject: [IR] Print the label operands of a catchpad like an invoke
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8ae5f645e78b086ced0a6bc99b9bd07205cdb73e;p=oota-llvm.git

[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247433 91177308-0d34-0410-b5e6-96231b3b80d8
---

diff --git a/lib/IR/AsmWriter.cpp b/lib/IR/AsmWriter.cpp
index 2f00da8ea40..3aeabf8bf17 100644
--- a/lib/IR/AsmWriter.cpp
+++ b/lib/IR/AsmWriter.cpp
@@ -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);
diff --git a/test/Bitcode/compatibility.ll b/test/Bitcode/compatibility.ll
index 400d4a4001e..9c4c958c985 100644
--- a/test/Bitcode/compatibility.ll
+++ b/test/Bitcode/compatibility.ll
@@ -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
diff --git a/test/CodeGen/WinEH/wineh-cloning.ll b/test/CodeGen/WinEH/wineh-cloning.ll
index f7fe58f844f..4500f96e6f6 100644
--- a/test/CodeGen/WinEH/wineh-cloning.ll
+++ b/test/CodeGen/WinEH/wineh-cloning.ll
@@ -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:
diff --git a/test/Transforms/SimplifyCFG/empty-cleanuppad.ll b/test/Transforms/SimplifyCFG/empty-cleanuppad.ll
index 41d8678ef4f..def86e162c3 100644
--- a/test/Transforms/SimplifyCFG/empty-cleanuppad.ll
+++ b/test/Transforms/SimplifyCFG/empty-cleanuppad.ll
@@ -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: