[PPC] Correct iterator bug in PPCTLSDynamicCall
authorHal Finkel <hfinkel@anl.gov>
Thu, 21 May 2015 23:45:49 +0000 (23:45 +0000)
committerHal Finkel <hfinkel@anl.gov>
Thu, 21 May 2015 23:45:49 +0000 (23:45 +0000)
commitafcd3e68a80fea682a2b16d33997e6c8a683e3d1
treeaa42f0a7bc0cb15f6f3e1cbe00f0b88f759a48fb
parent66811d9817cd683e5f382705e98e6262f62dcb97
[PPC] Correct iterator bug in PPCTLSDynamicCall

Unfortunately, I can't reduce a small test case for this (although compiling
mpfr-3.1.2 with -O2 -mcpu=a2 would fairly reliably trigger a crash), but the
problem is fairly clear (at least once you know you're looking for one). If the
TLS instruction being replaced was at the end of the block, we'd increment the
iterator past it (so it would then point to MBB.end()), and then we'd increment
it again as part of the for statement, thus overrunning the end of the list.
Don't do that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237974 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCTLSDynamicCall.cpp