diff --git a/bolt/lib/Rewrite/RewriteInstance.cpp b/bolt/lib/Rewrite/RewriteInstance.cpp --- a/bolt/lib/Rewrite/RewriteInstance.cpp +++ b/bolt/lib/Rewrite/RewriteInstance.cpp @@ -4097,7 +4097,6 @@ FF.setImageAddress(0); FF.setImageSize(0); FF.setFileOffset(0); - BC->deregisterSection(*ColdSection); } else { FF.setAddress(NextAvailableAddress); FF.setImageAddress(ColdSection->getAllocAddress()); @@ -4112,6 +4111,9 @@ FF.getImageAddress(), FF.getAddress(), FF.getImageSize())); RTDyld.reassignSectionAddress(ColdSection->getSectionID(), FF.getAddress()); + if (TooLarge) + BC->deregisterSection(*ColdSection); + NextAvailableAddress += FF.getImageSize(); }