From: Yaron Keren Date: Mon, 10 Aug 2015 18:14:56 +0000 (+0000) Subject: Revert r244470 and 244471 while looking into it. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=40c54fb97a0bc647dc58102b182a82d2eaa37415;p=oota-llvm.git Revert r244470 and 244471 while looking into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244472 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/dsymutil/DwarfLinker.cpp b/tools/dsymutil/DwarfLinker.cpp index 4231b14fbed..95f4ae4dc0d 100644 --- a/tools/dsymutil/DwarfLinker.cpp +++ b/tools/dsymutil/DwarfLinker.cpp @@ -2884,13 +2884,15 @@ void DwarfLinker::patchLineTableForUnit(CompileUnit &Unit, if (StopAddress != -1ULL && !Seq.empty()) { // Insert end sequence row with the computed end address, but // the same line as the previous one. + // Do not collapse the next two statements as the push_back operation + // may reallocate the vector and invalidate the iterator Seq.back(). auto NextLine = Seq.back(); - NextLine.Address = StopAddress; - NextLine.EndSequence = 1; - NextLine.PrologueEnd = 0; - NextLine.BasicBlock = 0; - NextLine.EpilogueBegin = 0; Seq.push_back(NextLine); + Seq.back().Address = StopAddress; + Seq.back().EndSequence = 1; + Seq.back().PrologueEnd = 0; + Seq.back().BasicBlock = 0; + Seq.back().EpilogueBegin = 0; insertLineSequence(Seq, NewRows); }