Fix a bug that would cause subzero to fail when --threads=0. Creates a single TargetDataLowering. BUG= None R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1179313004.
diff --git a/src/IceTargetLoweringARM32.cpp b/src/IceTargetLoweringARM32.cpp index 2d3c5c1..9bb2386 100644 --- a/src/IceTargetLoweringARM32.cpp +++ b/src/IceTargetLoweringARM32.cpp
@@ -2207,20 +2207,20 @@ TargetDataARM32::TargetDataARM32(GlobalContext *Ctx) : TargetDataLowering(Ctx) {} -void TargetDataARM32::lowerGlobals( - std::unique_ptr<VariableDeclarationList> Vars) { +void TargetDataARM32::lowerGlobals(const VariableDeclarationList &Vars, + const IceString &SectionSuffix) { switch (Ctx->getFlags().getOutFileType()) { case FT_Elf: { ELFObjectWriter *Writer = Ctx->getObjectWriter(); - Writer->writeDataSection(*Vars, llvm::ELF::R_ARM_ABS32); + Writer->writeDataSection(Vars, llvm::ELF::R_ARM_ABS32, SectionSuffix); } break; case FT_Asm: case FT_Iasm: { const IceString &TranslateOnly = Ctx->getFlags().getTranslateOnly(); OstreamLocker L(Ctx); - for (const VariableDeclaration *Var : *Vars) { + for (const VariableDeclaration *Var : Vars) { if (GlobalContext::matchSymbolName(Var->getName(), TranslateOnly)) { - emitGlobal(*Var); + emitGlobal(*Var, SectionSuffix); } } } break;