mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-23 20:34:58 +00:00
In some cases, the "fail BB dominator" may be null after the BB was split (and
becomes reachable when before it wasn't). Check to make sure that it's not null before trying to use it. llvm-svn: 128434
This commit is contained in:
parent
cec6959c23
commit
cb8447ad52
@ -221,7 +221,8 @@ bool StackProtector::InsertStackProtectors() {
|
||||
BasicBlock *NewBB = BB->splitBasicBlock(RI, "SP_return");
|
||||
if (DT && DT->isReachableFromEntry(BB)) {
|
||||
DT->addNewBlock(NewBB, BB);
|
||||
FailBBDom = DT->findNearestCommonDominator(FailBBDom, BB);
|
||||
if (FailBBDom)
|
||||
FailBBDom = DT->findNearestCommonDominator(FailBBDom, BB);
|
||||
}
|
||||
|
||||
// Remove default branch instruction to the new BB.
|
||||
|
@ -189,7 +189,7 @@ for.inc44: ; preds = %for.body
|
||||
}
|
||||
|
||||
; PR9028
|
||||
define void @f(i64 %A) nounwind {
|
||||
define void @func_60(i64 %A) nounwind {
|
||||
entry:
|
||||
%0 = zext i64 %A to i160
|
||||
%1 = shl i160 %0, 64
|
||||
@ -199,3 +199,19 @@ entry:
|
||||
store i576 %4, i576* undef, align 8
|
||||
ret void
|
||||
}
|
||||
|
||||
; <rdar://problem/9187792>
|
||||
define fastcc void @func_61() nounwind sspreq {
|
||||
entry:
|
||||
%t1 = tail call i64 @llvm.objectsize.i64(i8* undef, i1 false)
|
||||
%t2 = icmp eq i64 %t1, -1
|
||||
br i1 %t2, label %bb2, label %bb1
|
||||
|
||||
bb1:
|
||||
ret void
|
||||
|
||||
bb2:
|
||||
ret void
|
||||
}
|
||||
|
||||
declare i64 @llvm.objectsize.i64(i8*, i1) nounwind readnone
|
||||
|
Loading…
x
Reference in New Issue
Block a user