[PATCH] D159177: [BOLT] Fix a bug related to iterators in ReorderData pass
Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 30 20:16:02 PDT 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rG9c99e9fd684f: [BOLT] Fix a bug related to iterators in ReorderData pass (authored by sinan, committed by 杨桃 <linsinan.lsn at alibaba-inc.com>).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D159177/new/
https://reviews.llvm.org/D159177
Files:
bolt/lib/Passes/ReorderData.cpp
Index: bolt/lib/Passes/ReorderData.cpp
===================================================================
--- bolt/lib/Passes/ReorderData.cpp
+++ bolt/lib/Passes/ReorderData.cpp
@@ -413,17 +413,17 @@
auto Range = BC.getBinaryDataForSection(Section);
bool FoundUnmoveable = false;
for (auto Itr = Range.begin(); Itr != Range.end(); ++Itr) {
+ BinaryData *Next =
+ std::next(Itr) != Range.end() ? std::next(Itr)->second : nullptr;
if (Itr->second->getName().startswith("PG.")) {
BinaryData *Prev =
Itr != Range.begin() ? std::prev(Itr)->second : nullptr;
- BinaryData *Next = Itr != Range.end() ? std::next(Itr)->second : nullptr;
bool PrevIsPrivate = Prev && isPrivate(Prev);
bool NextIsPrivate = Next && isPrivate(Next);
if (isPrivate(Itr->second) && (PrevIsPrivate || NextIsPrivate))
Itr->second->setIsMoveable(false);
} else {
// check for overlapping symbols.
- BinaryData *Next = Itr != Range.end() ? std::next(Itr)->second : nullptr;
if (Next && Itr->second->getEndAddress() != Next->getAddress() &&
Next->containsAddress(Itr->second->getEndAddress())) {
Itr->second->setIsMoveable(false);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D159177.554890.patch
Type: text/x-patch
Size: 1217 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230831/380ad3ad/attachment.bin>
More information about the llvm-commits
mailing list