diff options
author | Cameron Zwarich <zwarich@apple.com> | 2011-03-11 21:51:56 +0000 |
---|---|---|
committer | Cameron Zwarich <zwarich@apple.com> | 2011-03-11 21:51:56 +0000 |
commit | 4d7d728594a0eea417bb7e4c608a19d763e3a822 (patch) | |
tree | d5964a8a560f2a10a806b229eef7d7aa7396fd56 /llvm/lib/CodeGen/StackProtector.cpp | |
parent | 66443c034d13ce289a58da2eb5f040eb756fe57b (diff) | |
download | llvm-4d7d728594a0eea417bb7e4c608a19d763e3a822.zip llvm-4d7d728594a0eea417bb7e4c608a19d763e3a822.tar.gz llvm-4d7d728594a0eea417bb7e4c608a19d763e3a822.tar.bz2 |
Fix the GCC test suite issue exposed by r127477, which was caused by stack
protector insertion not working correctly with unreachable code. Since that
revision was rolled out, this test doesn't actual fail before this fix.
llvm-svn: 127497
Diffstat (limited to 'llvm/lib/CodeGen/StackProtector.cpp')
-rw-r--r-- | llvm/lib/CodeGen/StackProtector.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/StackProtector.cpp b/llvm/lib/CodeGen/StackProtector.cpp index fcaee42..02d8fd6 100644 --- a/llvm/lib/CodeGen/StackProtector.cpp +++ b/llvm/lib/CodeGen/StackProtector.cpp @@ -219,8 +219,8 @@ bool StackProtector::InsertStackProtectors() { // Split the basic block before the return instruction. BasicBlock *NewBB = BB->splitBasicBlock(RI, "SP_return"); - if (DT) { - DT->addNewBlock(NewBB, DT->isReachableFromEntry(BB) ? BB : 0); + if (DT && DT->isReachableFromEntry(BB)) { + DT->addNewBlock(NewBB, BB); FailBBDom = DT->findNearestCommonDominator(FailBBDom, BB); } @@ -242,7 +242,7 @@ bool StackProtector::InsertStackProtectors() { // statements in the function. if (!FailBB) return false; - if (DT) + if (DT && FailBBDom) DT->addNewBlock(FailBB, FailBBDom); return true; |