mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Fix PR6673: updating the callback should not clear the map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99227 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -44,6 +44,10 @@ public:
|
||||
MMIAddrLabelMapCallbackPtr() : Map(0) {}
|
||||
MMIAddrLabelMapCallbackPtr(Value *V) : CallbackVH(V), Map(0) {}
|
||||
|
||||
void setPtr(BasicBlock *BB) {
|
||||
ValueHandleBase::operator=(BB);
|
||||
}
|
||||
|
||||
void setMap(MMIAddrLabelMap *map) { Map = map; }
|
||||
|
||||
virtual void deleted();
|
||||
@ -209,7 +213,7 @@ void MMIAddrLabelMap::UpdateForRAUWBlock(BasicBlock *Old, BasicBlock *New) {
|
||||
|
||||
// If New is not address taken, just move our symbol over to it.
|
||||
if (NewEntry.Symbols.isNull()) {
|
||||
BBCallbacks[OldEntry.Index] = New; // Update the callback.
|
||||
BBCallbacks[OldEntry.Index].setPtr(New); // Update the callback.
|
||||
NewEntry = OldEntry; // Set New's entry.
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user