Move the personality function from LandingPadInst to Function
[oota-llvm.git] / test / Transforms / InstCombine / LandingPadClauses.ll
index 0d42f7c737f31424558f0c9cf5750ef0f7147290..a4d77cbe8efb79cdfdaa7d9fc50bb15dbe9e9b21 100644 (file)
@@ -11,7 +11,7 @@ declare i32 @__C_specific_handler(...)
 
 declare void @bar()
 
-define void @foo_generic() {
+define void @foo_generic() personality i32 (i32, i64, i8*, i8*)* @generic_personality {
 ; CHECK-LABEL: @foo_generic(
   invoke void @bar()
     to label %cont.a unwind label %lpad.a
@@ -43,7 +43,7 @@ cont.i:
   ret void
 
 lpad.a:
-  %a = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @generic_personality
+  %a = landingpad { i8*, i32 }
           catch i32* @T1
           catch i32* @T2
           catch i32* @T1
@@ -55,7 +55,7 @@ lpad.a:
 ; CHECK-NEXT: unreachable
 
 lpad.b:
-  %b = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @generic_personality
+  %b = landingpad { i8*, i32 }
           filter [0 x i32*] zeroinitializer
           catch i32* @T1
   unreachable
@@ -64,7 +64,7 @@ lpad.b:
 ; CHECK-NEXT: unreachable
 
 lpad.c:
-  %c = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @generic_personality
+  %c = landingpad { i8*, i32 }
           catch i32* @T1
           filter [1 x i32*] [i32* @T1]
           catch i32* @T2
@@ -75,7 +75,7 @@ lpad.c:
 ; CHECK-NEXT: unreachable
 
 lpad.d:
-  %d = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @generic_personality
+  %d = landingpad { i8*, i32 }
           filter [3 x i32*] zeroinitializer
   unreachable
 ; CHECK: %d = landingpad
@@ -83,7 +83,7 @@ lpad.d:
 ; CHECK-NEXT: unreachable
 
 lpad.e:
-  %e = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @generic_personality
+  %e = landingpad { i8*, i32 }
           catch i32* @T1
           filter [3 x i32*] [i32* @T1, i32* @T2, i32* @T2]
   unreachable
@@ -93,7 +93,7 @@ lpad.e:
 ; CHECK-NEXT: unreachable
 
 lpad.f:
-  %f = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @generic_personality
+  %f = landingpad { i8*, i32 }
           filter [2 x i32*] [i32* @T2, i32* @T1]
           filter [1 x i32*] [i32* @T1]
   unreachable
@@ -102,7 +102,7 @@ lpad.f:
 ; CHECK-NEXT: unreachable
 
 lpad.g:
-  %g = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @generic_personality
+  %g = landingpad { i8*, i32 }
           filter [1 x i32*] [i32* @T1]
           catch i32* @T3
           filter [2 x i32*] [i32* @T2, i32* @T1]
@@ -113,7 +113,7 @@ lpad.g:
 ; CHECK-NEXT: unreachable
 
 lpad.h:
-  %h = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @generic_personality
+  %h = landingpad { i8*, i32 }
           filter [2 x i32*] [i32* @T1, i32* null]
           filter [1 x i32*] zeroinitializer
   unreachable
@@ -122,7 +122,7 @@ lpad.h:
 ; CHECK-NEXT: unreachable
 
 lpad.i:
-  %i = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @generic_personality
+  %i = landingpad { i8*, i32 }
           cleanup
           filter [0 x i32*] zeroinitializer
   unreachable
@@ -131,7 +131,7 @@ lpad.i:
 ; CHECK-NEXT: unreachable
 }
 
-define void @foo_cxx() {
+define void @foo_cxx() personality i32 (i32, i64, i8*, i8*)* @__gxx_personality_v0 {
 ; CHECK-LABEL: @foo_cxx(
   invoke void @bar()
     to label %cont.a unwind label %lpad.a
@@ -148,7 +148,7 @@ cont.d:
   ret void
 
 lpad.a:
-  %a = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @__gxx_personality_v0
+  %a = landingpad { i8*, i32 }
           catch i32* null
           catch i32* @T1
   unreachable
@@ -157,7 +157,7 @@ lpad.a:
 ; CHECK-NEXT: unreachable
 
 lpad.b:
-  %b = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @__gxx_personality_v0
+  %b = landingpad { i8*, i32 }
           filter [1 x i32*] zeroinitializer
   unreachable
 ; CHECK: %b = landingpad
@@ -165,7 +165,7 @@ lpad.b:
 ; CHECK-NEXT: unreachable
 
 lpad.c:
-  %c = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @__gxx_personality_v0
+  %c = landingpad { i8*, i32 }
           filter [2 x i32*] [i32* @T1, i32* null]
   unreachable
 ; CHECK: %c = landingpad
@@ -173,7 +173,7 @@ lpad.c:
 ; CHECK-NEXT: unreachable
 
 lpad.d:
-  %d = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @__gxx_personality_v0
+  %d = landingpad { i8*, i32 }
           cleanup
           catch i32* null
   unreachable
@@ -182,7 +182,7 @@ lpad.d:
 ; CHECK-NEXT: unreachable
 }
 
-define void @foo_objc() {
+define void @foo_objc() personality i32 (i32, i64, i8*, i8*)* @__objc_personality_v0 {
 ; CHECK-LABEL: @foo_objc(
   invoke void @bar()
     to label %cont.a unwind label %lpad.a
@@ -199,7 +199,7 @@ cont.d:
   ret void
 
 lpad.a:
-  %a = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @__objc_personality_v0
+  %a = landingpad { i8*, i32 }
           catch i32* null
           catch i32* @T1
   unreachable
@@ -208,7 +208,7 @@ lpad.a:
 ; CHECK-NEXT: unreachable
 
 lpad.b:
-  %b = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @__objc_personality_v0
+  %b = landingpad { i8*, i32 }
           filter [1 x i32*] zeroinitializer
   unreachable
 ; CHECK: %b = landingpad
@@ -216,7 +216,7 @@ lpad.b:
 ; CHECK-NEXT: unreachable
 
 lpad.c:
-  %c = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @__objc_personality_v0
+  %c = landingpad { i8*, i32 }
           filter [2 x i32*] [i32* @T1, i32* null]
   unreachable
 ; CHECK: %c = landingpad
@@ -224,7 +224,7 @@ lpad.c:
 ; CHECK-NEXT: unreachable
 
 lpad.d:
-  %d = landingpad { i8*, i32 } personality i32 (i32, i64, i8*, i8*)* @__objc_personality_v0
+  %d = landingpad { i8*, i32 }
           cleanup
           catch i32* null
   unreachable
@@ -233,7 +233,7 @@ lpad.d:
 ; CHECK-NEXT: unreachable
 }
 
-define void @foo_seh() {
+define void @foo_seh() personality i32 (...)* @__C_specific_handler {
 ; CHECK-LABEL: @foo_seh(
   invoke void @bar()
     to label %cont.a unwind label %lpad.a
@@ -250,7 +250,7 @@ cont.d:
   ret void
 
 lpad.a:
-  %a = landingpad { i8*, i32 } personality i32 (...)* @__C_specific_handler
+  %a = landingpad { i8*, i32 }
           catch i32* null
           catch i32* @T1
   unreachable
@@ -259,7 +259,7 @@ lpad.a:
 ; CHECK-NEXT: unreachable
 
 lpad.b:
-  %b = landingpad { i8*, i32 } personality i32 (...)* @__C_specific_handler
+  %b = landingpad { i8*, i32 }
           filter [1 x i32*] zeroinitializer
   unreachable
 ; CHECK: %b = landingpad
@@ -267,7 +267,7 @@ lpad.b:
 ; CHECK-NEXT: unreachable
 
 lpad.c:
-  %c = landingpad { i8*, i32 } personality i32 (...)* @__C_specific_handler
+  %c = landingpad { i8*, i32 }
           filter [2 x i32*] [i32* @T1, i32* null]
   unreachable
 ; CHECK: %c = landingpad
@@ -275,7 +275,7 @@ lpad.c:
 ; CHECK-NEXT: unreachable
 
 lpad.d:
-  %d = landingpad { i8*, i32 } personality i32 (...)* @__C_specific_handler
+  %d = landingpad { i8*, i32 }
           cleanup
           catch i32* null
   unreachable