From: Fangrui Song Date: Fri, 13 Dec 2019 00:18:57 +0000 (-0800) Subject: [PATCH] [MC][PowerPC] Fix a crash when redefining a symbol after .set X-Git-Tag: archive/raspbian/1%9.0.1-16.1+rpi1^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=41c0c636d65f994e923dfb930532a17f66c6644f;p=llvm-toolchain-9.git [PATCH] [MC][PowerPC] Fix a crash when redefining a symbol after .set Fix PR44284. This is probably not valid assembly but we should not crash. Reviewed By: luporl, #powerpc, steven.zhang Differential Revision: https://reviews.llvm.org/D71443 (cherry picked from commit f99eedeb72644671cd584f48e4c136d47f6b0020) Gbp-Pq: Name llvm9-D71443-PPC-MC-redef-symbol.patch --- diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp index 90c3c8d20..71f926c26 100644 --- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp +++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp @@ -196,7 +196,8 @@ public: void finish() override { for (auto *Sym : UpdateOther) - copyLocalEntry(Sym, Sym->getVariableValue()); + if (Sym->isVariable()) + copyLocalEntry(Sym, Sym->getVariableValue()); } private: diff --git a/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s b/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s index f1d5c5d0a..a663af57a 100644 --- a/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s +++ b/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s @@ -32,3 +32,8 @@ func: nop nop .localentry func, 8 + +## PR44284 Don't crash if err is redefined after .set +.set err, _err +.globl err +err: