aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Utils/SSAUpdater.cpp
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2010-03-31 20:37:15 +0000
committerDale Johannesen <dalej@apple.com>2010-03-31 20:37:15 +0000
commit536d31b5b391ee76eae33f4756f6442bf10b2d72 (patch)
treea3fbc68585aa83d994c910f4bc0e79d7da9dfa64 /lib/Transforms/Utils/SSAUpdater.cpp
parent4e86da71b325e71d86b39fe3a63109d1fbad5739 (diff)
Fix a nasty dangling-pointer heisenbug that could
generate wrong code pretty much anywhere AFAICT. A case that hits the bug reproducibly is impossible, but the situation was like this: Addr = ... Store -> Addr Addr2 = GEP , 0, 0 Store -> Addr2 Handling the first store, the code changed replaced Addr with a sunkaddr and deleted Addr, but not its table entry. Code in OptimizedBlock replaced Addr2 with a bitcast; if that happened to reuse the memory of Addr, the old table entry was erroneously found when handling the second store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100044 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/SSAUpdater.cpp')
0 files changed, 0 insertions, 0 deletions