Index: src/IceELFObjectWriter.cpp |
diff --git a/src/IceELFObjectWriter.cpp b/src/IceELFObjectWriter.cpp |
index d66b55392eea7dc0721e7b8143d874c87f93316f..1c803f7fca5b182f962b6de3eaf57e3ff8862892 100644 |
--- a/src/IceELFObjectWriter.cpp |
+++ b/src/IceELFObjectWriter.cpp |
@@ -296,7 +296,7 @@ classifyGlobalSection(const VariableDeclaration *Var) { |
// Partition the Vars list by SectionType into VarsBySection. If TranslateOnly |
// is non-empty, then only the TranslateOnly variable is kept for emission. |
void partitionGlobalsBySection(const VariableDeclarationList &Vars, |
- VariableDeclarationList VarsBySection[], |
+ VariableDeclarationPartition VarsBySection[], |
const IceString &TranslateOnly) { |
for (VariableDeclaration *Var : Vars) { |
if (GlobalContext::matchSymbolName(Var->getName(), TranslateOnly)) { |
@@ -315,7 +315,7 @@ void ELFObjectWriter::writeDataSection(const VariableDeclarationList &Vars, |
bool IsPIC) { |
TimerMarker Timer(TimerStack::TT_writeELF, &Ctx); |
assert(!SectionNumbersAssigned); |
- VariableDeclarationList VarsBySection[ELFObjectWriter::NumSectionTypes]; |
+ VariableDeclarationPartition VarsBySection[ELFObjectWriter::NumSectionTypes]; |
for (auto &SectionList : VarsBySection) |
SectionList.reserve(Vars.size()); |
partitionGlobalsBySection(Vars, VarsBySection, |
@@ -337,7 +337,7 @@ IceString MangleSectionName(const char Base[], const IceString &Suffix) { |
// TODO(jvoung): Handle fdata-sections. |
void ELFObjectWriter::writeDataOfType(SectionType ST, |
- const VariableDeclarationList &Vars, |
+ const VariableDeclarationPartition &Vars, |
FixupKind RelocationKind, |
const IceString &SectionSuffix, |
bool IsPIC) { |
@@ -415,12 +415,11 @@ void ELFObjectWriter::writeDataOfType(SectionType ST, |
Section->setSize(Section->getCurrentSize() + SymbolSize); |
} else { |
assert(ST != BSS); |
- for (const std::unique_ptr<VariableDeclaration::Initializer> &Init : |
- Var->getInitializers()) { |
+ for (const auto *Init : Var->getInitializers()) { |
switch (Init->getKind()) { |
case VariableDeclaration::Initializer::DataInitializerKind: { |
const auto &Data = |
- llvm::cast<VariableDeclaration::DataInitializer>(Init.get()) |
+ llvm::cast<VariableDeclaration::DataInitializer>(Init) |
->getContents(); |
Section->appendData(Str, llvm::StringRef(Data.data(), Data.size())); |
break; |
@@ -430,7 +429,7 @@ void ELFObjectWriter::writeDataOfType(SectionType ST, |
break; |
case VariableDeclaration::Initializer::RelocInitializerKind: { |
const auto *Reloc = |
- llvm::cast<VariableDeclaration::RelocInitializer>(Init.get()); |
+ llvm::cast<VariableDeclaration::RelocInitializer>(Init); |
AssemblerFixup NewFixup; |
NewFixup.set_position(Section->getCurrentSize()); |
NewFixup.set_kind(Reloc->hasFixup() ? Reloc->getFixup() |