| Index: src/IceELFObjectWriter.cpp
|
| diff --git a/src/IceELFObjectWriter.cpp b/src/IceELFObjectWriter.cpp
|
| index 44f4adb373c20238bc565d8e55251dae226cab1b..68daad045945e8cef74e5ad26f2138fbf83ae7b8 100644
|
| --- a/src/IceELFObjectWriter.cpp
|
| +++ b/src/IceELFObjectWriter.cpp
|
| @@ -387,11 +387,12 @@ void ELFObjectWriter::writeDataOfType(SectionType ST,
|
| Section->setSize(Section->getCurrentSize() + SymbolSize);
|
| } else {
|
| assert(ST != BSS);
|
| - for (VariableDeclaration::Initializer *Init : Var->getInitializers()) {
|
| + for (const std::unique_ptr<VariableDeclaration::Initializer> &Init :
|
| + Var->getInitializers()) {
|
| switch (Init->getKind()) {
|
| case VariableDeclaration::Initializer::DataInitializerKind: {
|
| const auto Data = llvm::cast<VariableDeclaration::DataInitializer>(
|
| - Init)->getContents();
|
| + Init.get())->getContents();
|
| Section->appendData(Str, llvm::StringRef(Data.data(), Data.size()));
|
| break;
|
| }
|
| @@ -400,7 +401,7 @@ void ELFObjectWriter::writeDataOfType(SectionType ST,
|
| break;
|
| case VariableDeclaration::Initializer::RelocInitializerKind: {
|
| const auto Reloc =
|
| - llvm::cast<VariableDeclaration::RelocInitializer>(Init);
|
| + llvm::cast<VariableDeclaration::RelocInitializer>(Init.get());
|
| AssemblerFixup NewFixup;
|
| NewFixup.set_position(Section->getCurrentSize());
|
| NewFixup.set_kind(RelocationKind);
|
|
|