From 06c064824ef29425db785a31fed03821777fbf12 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 8 Mar 2018 00:17:13 +0000 Subject: [PATCH] Delete code that is probably dead since r249303. With r249303 the expression evaluation should expand variables that are not in sections (and so don't have an atom). llvm-svn: 326966 --- .../MCTargetDesc/AArch64MachObjectWriter.cpp | 45 +++---------------- 1 file changed, 5 insertions(+), 40 deletions(-) diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp index 55151c2b8d21..d52c58e47f91 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp @@ -312,33 +312,9 @@ void AArch64MachObjectWriter::recordRelocation( } const MCSymbol *Base = Asm.getAtom(*Symbol); - - // If the symbol is a variable and we weren't able to get a Base for it - // (i.e., it's not in the symbol table associated with a section) resolve - // the relocation based its expansion instead. - if (Symbol->isVariable() && !Base) { - // If the evaluation is an absolute value, just use that directly - // to keep things easy. - int64_t Res; - if (Symbol->getVariableValue()->evaluateAsAbsolute( - Res, Layout, Writer->getSectionAddressMap())) { - FixedValue = Res; - return; - } - - // FIXME: Will the Target we already have ever have any data in it - // we need to preserve and merge with the new Target? How about - // the FixedValue? - if (!Symbol->getVariableValue()->evaluateAsRelocatable(Target, &Layout, - &Fixup)) { - Asm.getContext().reportError(Fixup.getLoc(), - "unable to resolve variable '" + - Symbol->getName() + "'"); - return; - } - return recordRelocation(Writer, Asm, Layout, Fragment, Fixup, Target, - FixedValue); - } + // If the symbol is a variable it can either be in a section and + // we have a base or it is absolute and should have been expanded. + assert(!Symbol->isVariable() || Base); // Relocations inside debug sections always use local relocations when // possible. This seems to be done because the debugger doesn't fully @@ -377,19 +353,8 @@ void AArch64MachObjectWriter::recordRelocation( Value -= Writer->getFragmentAddress(Fragment, Layout) + Fixup.getOffset() + (1ULL << Log2Size); } else { - // Resolve constant variables. - if (Symbol->isVariable()) { - int64_t Res; - if (Symbol->getVariableValue()->evaluateAsAbsolute( - Res, Layout, Writer->getSectionAddressMap())) { - FixedValue = Res; - return; - } - } - Asm.getContext().reportError(Fixup.getLoc(), - "unsupported relocation of variable '" + - Symbol->getName() + "'"); - return; + llvm_unreachable( + "This constant variable should have been expanded during evaluation"); } }