Darwin wants ctors/dtors to be ordered the other way round to linux.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139015 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands
2011-09-02 18:07:19 +00:00
parent 98f213cd60
commit 147272b8a7
5 changed files with 40 additions and 10 deletions
+10 -1
View File
@@ -1265,7 +1265,16 @@ void AsmPrinter::EmitXXStructorList(const Constant *List) {
}
// Emit the function pointers in reverse priority order.
std::sort(Structors.rbegin(), Structors.rend(), priority_order);
switch (MAI->getStructorOutputOrder()) {
case Structors::None:
break;
case Structors::PriorityOrder:
std::sort(Structors.begin(), Structors.end(), priority_order);
break;
case Structors::ReversePriorityOrder:
std::sort(Structors.rbegin(), Structors.rend(), priority_order);
break;
}
for (unsigned i = 0, e = Structors.size(); i != e; ++i)
EmitGlobalConstant(Structors[i].second);
}