mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
The normal edge of an invoke is not allowed to branch to a block with a
landingpad. Enforce it in the verifier, and fix the regression tests to match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161697 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -34,9 +34,12 @@ define void @f1() {
|
||||
entry:
|
||||
; OK
|
||||
invoke void @llvm.donothing()
|
||||
to label %cont unwind label %cont
|
||||
to label %conta unwind label %contb
|
||||
|
||||
cont:
|
||||
conta:
|
||||
ret void
|
||||
|
||||
contb:
|
||||
%0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
|
||||
filter [0 x i8*] zeroinitializer
|
||||
ret void
|
||||
@@ -63,3 +66,15 @@ entry:
|
||||
%call = call i32 @fn(i8 (i8, i8)* @llvm.expect.i8)
|
||||
ret i32 %call
|
||||
}
|
||||
|
||||
define void @f4() {
|
||||
entry:
|
||||
invoke void @llvm.donothing()
|
||||
to label %cont unwind label %cont
|
||||
|
||||
cont:
|
||||
; CHECK: Block containing LandingPadInst must be jumped to only by the unwind edge of an invoke.
|
||||
%0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
|
||||
filter [0 x i8*] zeroinitializer
|
||||
ret void
|
||||
}
|
||||
|
Reference in New Issue
Block a user