mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-22 20:26:31 +00:00
Tighten the verifier check for catchblock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241891 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2431442e67
commit
ec83dbdc5e
@ -2861,9 +2861,10 @@ void Verifier::visitCatchBlockInst(CatchBlockInst &CBI) {
|
||||
|
||||
BasicBlock *UnwindDest = CBI.getUnwindDest();
|
||||
Instruction *I = UnwindDest->getFirstNonPHI();
|
||||
Assert(I->isEHBlock() && !isa<LandingPadInst>(I),
|
||||
"CatchBlockInst must unwind to an EH block which is not a landingpad.",
|
||||
&CBI);
|
||||
Assert(
|
||||
isa<CatchBlockInst>(I) || isa<CatchEndBlockInst>(I),
|
||||
"CatchBlockInst must unwind to a CatchBlockInst or a CatchEndBlockInst.",
|
||||
&CBI);
|
||||
|
||||
visitTerminatorInst(CBI);
|
||||
}
|
||||
|
@ -58,18 +58,18 @@ bb:
|
||||
|
||||
define i8 @catchblock() personality i32 (...)* @__gxx_personality_v0 {
|
||||
entry:
|
||||
%cbv = catchblock i8 [i7 4] to label %bb unwind label %bb2
|
||||
br label %bb2
|
||||
bb:
|
||||
ret i8 %cbv
|
||||
bb2:
|
||||
ret i8 42
|
||||
%cbv = catchblock i8 [i7 4] to label %bb unwind label %bb2
|
||||
}
|
||||
|
||||
define void @terminateblock0() personality i32 (...)* @__gxx_personality_v0 {
|
||||
entry:
|
||||
terminateblock [i7 4] unwind label %bb
|
||||
br label %bb
|
||||
bb:
|
||||
ret void
|
||||
terminateblock [i7 4] unwind label %bb
|
||||
}
|
||||
|
||||
define void @terminateblock1() personality i32 (...)* @__gxx_personality_v0 {
|
||||
@ -85,9 +85,9 @@ entry:
|
||||
|
||||
define void @catchendblock0() personality i32 (...)* @__gxx_personality_v0 {
|
||||
entry:
|
||||
catchendblock unwind label %bb
|
||||
br label %bb
|
||||
bb:
|
||||
ret void
|
||||
catchendblock unwind label %bb
|
||||
}
|
||||
|
||||
define void @catchendblock1() personality i32 (...)* @__gxx_personality_v0 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user