summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaron Keren <yaron.keren@gmail.com>2015-08-10 16:53:30 +0000
committerYaron Keren <yaron.keren@gmail.com>2015-08-10 16:53:30 +0000
commit0b4c9693d20cdb3f5a59d61bccdc289142d4c74e (patch)
treeec40a933180037f455c266cdc692a3223949fa8e
parent68b0325a9ee925f42fa2c12a01a015e6cc30a21c (diff)
downloadbcm5719-llvm-0b4c9693d20cdb3f5a59d61bccdc289142d4c74e.tar.gz
bcm5719-llvm-0b4c9693d20cdb3f5a59d61bccdc289142d4c74e.zip
Fully apply David Blaikie suggestion and add comment explaining why.
llvm-svn: 244461
-rw-r--r--llvm/tools/dsymutil/DwarfLinker.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/tools/dsymutil/DwarfLinker.cpp b/llvm/tools/dsymutil/DwarfLinker.cpp
index ae2f6d3b36f..95f4ae4dc0d 100644
--- a/llvm/tools/dsymutil/DwarfLinker.cpp
+++ b/llvm/tools/dsymutil/DwarfLinker.cpp
@@ -2884,8 +2884,10 @@ 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();
- Seq.emplace_back(NextLine);
+ Seq.push_back(NextLine);
Seq.back().Address = StopAddress;
Seq.back().EndSequence = 1;
Seq.back().PrologueEnd = 0;
OpenPOWER on IntegriCloud