From: Nirav Dave Date: Mon, 4 Mar 2019 19:12:56 +0000 (+0000) Subject: [MC] Teach ELFObjectWriter that parse-time variables do not appear in X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1e15b24cc4f3b3b3fba54879cf3625bdec4eae09;p=llvm [MC] Teach ELFObjectWriter that parse-time variables do not appear in symbol table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355325 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index aec2bdeded3..4e0a4f45431 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -577,6 +577,10 @@ bool ELFWriter::isInSymtab(const MCAsmLayout &Layout, const MCSymbolELF &Symbol, bool Used, bool Renamed) { if (Symbol.isVariable()) { const MCExpr *Expr = Symbol.getVariableValue(); + // Target Expressions that are always inlined do not appear in the symtab + if (const auto *T = dyn_cast(Expr)) + if (T->inlineAssignedExpr()) + return false; if (const MCSymbolRefExpr *Ref = dyn_cast(Expr)) { if (Ref->getKind() == MCSymbolRefExpr::VK_WEAKREF) return false; diff --git a/test/MC/X86/unused_reg_var_assign.s b/test/MC/X86/unused_reg_var_assign.s new file mode 100644 index 00000000000..53e5cd6a274 --- /dev/null +++ b/test/MC/X86/unused_reg_var_assign.s @@ -0,0 +1,3 @@ +# RUN: llvm-mc -triple x86_64-unknown-linux-gnu -filetype obj %s -o %t + +reg_i = %xmm0