[lld] a87f776 - [ELF] Avoid make in elf::writeARMCmseImportLib
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 23 17:28:33 PST 2024
Author: Fangrui Song
Date: 2024-11-23T17:28:28-08:00
New Revision: a87f776c1c873ea86a95c368f1a9331adc65d1ee
URL: https://github.com/llvm/llvm-project/commit/a87f776c1c873ea86a95c368f1a9331adc65d1ee
DIFF: https://github.com/llvm/llvm-project/commit/a87f776c1c873ea86a95c368f1a9331adc65d1ee.diff
LOG: [ELF] Avoid make in elf::writeARMCmseImportLib
Added:
Modified:
lld/ELF/Arch/ARM.cpp
Removed:
################################################################################
diff --git a/lld/ELF/Arch/ARM.cpp b/lld/ELF/Arch/ARM.cpp
index 4a293af9b9a118..f32c43067c3daf 100644
--- a/lld/ELF/Arch/ARM.cpp
+++ b/lld/ELF/Arch/ARM.cpp
@@ -1445,21 +1445,22 @@ void ArmCmseSGSection::finalizeContents() {
// See ArmĀ® v8-M Security Extensions: Requirements on Development Tools
// https://developer.arm.com/documentation/ecm0359818/latest
template <typename ELFT> void elf::writeARMCmseImportLib(Ctx &ctx) {
- StringTableSection *shstrtab =
- make<StringTableSection>(ctx, ".shstrtab", /*dynamic=*/false);
- StringTableSection *strtab =
- make<StringTableSection>(ctx, ".strtab", /*dynamic=*/false);
- SymbolTableBaseSection *impSymTab =
- make<SymbolTableSection<ELFT>>(ctx, *strtab);
+ auto shstrtab =
+ std::make_unique<StringTableSection>(ctx, ".shstrtab", /*dynamic=*/false);
+ auto strtab =
+ std::make_unique<StringTableSection>(ctx, ".strtab", /*dynamic=*/false);
+ auto impSymTab = std::make_unique<SymbolTableSection<ELFT>>(ctx, *strtab);
SmallVector<std::pair<std::unique_ptr<OutputSection>, SyntheticSection *>, 0>
osIsPairs;
osIsPairs.emplace_back(
- std::make_unique<OutputSection>(ctx, strtab->name, 0, 0), strtab);
+ std::make_unique<OutputSection>(ctx, strtab->name, 0, 0), strtab.get());
osIsPairs.emplace_back(
- std::make_unique<OutputSection>(ctx, impSymTab->name, 0, 0), impSymTab);
+ std::make_unique<OutputSection>(ctx, impSymTab->name, 0, 0),
+ impSymTab.get());
osIsPairs.emplace_back(
- std::make_unique<OutputSection>(ctx, shstrtab->name, 0, 0), shstrtab);
+ std::make_unique<OutputSection>(ctx, shstrtab->name, 0, 0),
+ shstrtab.get());
llvm::sort(ctx.symtab->cmseSymMap, [&](const auto &a, const auto &b) {
return a.second.sym->getVA(ctx) < b.second.sym->getVA(ctx);
More information about the llvm-commits
mailing list