diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-25 20:10:45 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-25 20:10:45 +0000 |
commit | 6dff814cdfc896d68a978e0c0910f0333000d2cf (patch) | |
tree | a8e9fad47f95b6562d42f52ff9befa73c18712ee /llvm/lib/MC/ELFObjectWriter.cpp | |
parent | b7e8ef005fb3d20d82a06a2393275da823081236 (diff) | |
download | bcm5719-llvm-6dff814cdfc896d68a978e0c0910f0333000d2cf.tar.gz bcm5719-llvm-6dff814cdfc896d68a978e0c0910f0333000d2cf.zip |
Diagnose undefined temporary symbols.
We already disallowed
.global .Lfoo
so this is reasonable.
This is a small cherry pick from r240130.
llvm-svn: 240681
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/ELFObjectWriter.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index db9c759f2b5..9252621bc93 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/lib/MC/ELFObjectWriter.cpp @@ -787,10 +787,15 @@ void ELFObjectWriter::computeSymbolTable( Renames.count(&Symbol))) continue; + if (Symbol.isTemporary() && Symbol.isUndefined()) + Ctx.reportFatalError(SMLoc(), "Undefined temporary"); + ELFSymbolData MSD; MSD.Symbol = cast<MCSymbolELF>(&Symbol); bool Local = Symbol.getBinding() == ELF::STB_LOCAL; + assert(Local || !Symbol.isTemporary()); + if (Symbol.isAbsolute()) { MSD.SectionIndex = ELF::SHN_ABS; } else if (Symbol.isCommon()) { |