mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-13 06:38:44 +00:00
Fix an issue where, under very specific circumstances, memdep could end up dereferencing the end
of one of its internal maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46541 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b10e0da065
commit
9a8ff8cd0f
@ -451,8 +451,6 @@ void MemoryDependenceAnalysis::removeInstruction(Instruction* rem) {
|
||||
// Figure out the new dep for things that currently depend on rem
|
||||
Instruction* newDep = NonLocal;
|
||||
|
||||
reverseDep[depGraphLocal[rem].first].erase(rem);
|
||||
|
||||
for (DenseMap<BasicBlock*, Value*>::iterator DI =
|
||||
depGraphNonLocal[rem].begin(), DE = depGraphNonLocal[rem].end();
|
||||
DI != DE; ++DI)
|
||||
@ -462,6 +460,8 @@ void MemoryDependenceAnalysis::removeInstruction(Instruction* rem) {
|
||||
depMapType::iterator depGraphEntry = depGraphLocal.find(rem);
|
||||
|
||||
if (depGraphEntry != depGraphLocal.end()) {
|
||||
reverseDep[depGraphLocal[rem].first].erase(rem);
|
||||
|
||||
if (depGraphEntry->second.first != NonLocal &&
|
||||
depGraphEntry->second.second) {
|
||||
// If we have dep info for rem, set them to it
|
||||
|
Loading…
Reference in New Issue
Block a user