mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
Only log the visit of a return instruction if we in fact found a return
instruction. This avoids dereferencing null in the debug logging if the instruction was not in fact a return instruction. This potential bug was found by PVS-Studio. This actually fixes the last of the "dereferenced a pointer before checking it for null" reports in the recent PVS-Studio run. However, there are quite a few reports of this nature that I did not do anything to fix because they are pretty glaring false positives. They usually took the form of quite clear correlated checks or a check made in a separate function. I've even added asserts anywhere this correlation wasn't pretty obvious and fundamental to the code. llvm-svn: 285988
This commit is contained in:
parent
28d1297323
commit
e1d6e7170a
@ -2086,12 +2086,11 @@ void ObjCARCOpt::OptimizeReturns(Function &F) {
|
||||
SmallPtrSet<const BasicBlock *, 4> Visited;
|
||||
for (BasicBlock &BB: F) {
|
||||
ReturnInst *Ret = dyn_cast<ReturnInst>(&BB.back());
|
||||
|
||||
DEBUG(dbgs() << "Visiting: " << *Ret << "\n");
|
||||
|
||||
if (!Ret)
|
||||
continue;
|
||||
|
||||
DEBUG(dbgs() << "Visiting: " << *Ret << "\n");
|
||||
|
||||
const Value *Arg = GetRCIdentityRoot(Ret->getOperand(0));
|
||||
|
||||
// Look for an ``autorelease'' instruction that is a predecessor of Ret and
|
||||
|
Loading…
Reference in New Issue
Block a user