mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
04cb800c32
The problem is that Function::renameLocalSymbols is iterating through the symbol table planes, occasionally calling setName to rename a value (which used to do a symbol table remove/insert pair). The problem is that if there is only a single value in a particular type plane that the remove will nuke the symbol table plane, and the insert will create and insert a new one. This hoses Function::renameLocalSymbols because it has an iterator to the old plane, under the (very reasonable) assumption that simply renaming a value won't cause the type plane to disappear. This patch fixes the bug by making the rename operation a single atomic operation, which has a side effect of making the whole thing faster too. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20469 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
AsmWriter.cpp | ||
BasicBlock.cpp | ||
ConstantFold.cpp | ||
ConstantFold.h | ||
ConstantFolding.h | ||
ConstantRange.cpp | ||
Constants.cpp | ||
Dominators.cpp | ||
Function.cpp | ||
Globals.cpp | ||
Instruction.cpp | ||
Instructions.cpp | ||
LeakDetector.cpp | ||
Makefile | ||
Mangler.cpp | ||
Module.cpp | ||
ModuleProvider.cpp | ||
Pass.cpp | ||
PassManagerT.h | ||
SymbolTable.cpp | ||
SymbolTableListTraitsImpl.h | ||
Type.cpp | ||
Value.cpp | ||
ValueTypes.cpp | ||
Verifier.cpp |