[DebugInfo] Move RangeListEntries instead of copying.
authorBenjamin Kramer <benny.kra@googlemail.com>
Thu, 8 Mar 2018 21:31:10 +0000 (21:31 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Thu, 8 Mar 2018 21:31:10 +0000 (21:31 +0000)
This is needed for correctness as RangeListEntry is not copy-assignable,
which std::vector might rely on.

llvm-svn: 327067

llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp

index d7169d7..775bc78 100644 (file)
@@ -98,7 +98,7 @@ Error DWARFDebugRnglists::extract(DWARFDataExtractor Data,
     switch (Encoding) {
     case dwarf::DW_RLE_end_of_list:
       CurrentRanges.push_back(RangeListEntry{ EntryOffset, Encoding, 0, 0 });
-      Ranges.insert(Ranges.end(), CurrentRanges);
+      Ranges.insert(Ranges.end(), std::move(CurrentRanges));
       CurrentRanges.clear();
       break;
     // TODO: Support other encodings.
@@ -147,7 +147,7 @@ Error DWARFDebugRnglists::extract(DWARFDataExtractor Data,
       break;
     }
     default:
-      Ranges.insert(Ranges.end(), CurrentRanges);
+      Ranges.insert(Ranges.end(), std::move(CurrentRanges));
       return createError("unknown rnglists encoding 0x%" PRIx32
                          " at offset 0x%" PRIx32,
                          uint32_t(Encoding), *OffsetPtr - 1);