[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)
commit82e1fc5fc726463064f6bc8bea3e96bb07485f5a
tree983dd654246d509bb22d1ef2012661ad09f91b20
parent339191fcfadaaef504f9bff4801cafc36be47863
[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.

llvm-svn: 237974
llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp