diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-08-28 07:08:35 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-08-28 07:08:35 +0000 |
commit | 8f4d146c340c9423271ebd7bb3fd32b880000bc9 (patch) | |
tree | 30e828d8e7786804767d1d4b326d6525068b0edf /lib/MC/MCMachOStreamer.cpp | |
parent | d17479e8458d17575e2532d9e8a61057b057a33d (diff) |
llvm-mc: Support .comm emission.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80351 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCMachOStreamer.cpp')
-rw-r--r-- | lib/MC/MCMachOStreamer.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/MC/MCMachOStreamer.cpp b/lib/MC/MCMachOStreamer.cpp index b53a82e958..e9722251c6 100644 --- a/lib/MC/MCMachOStreamer.cpp +++ b/lib/MC/MCMachOStreamer.cpp @@ -224,7 +224,7 @@ void MCMachOStreamer::EmitSymbolAttribute(MCSymbol *Symbol, break; case MCStreamer::Global: - getSymbolData(*Symbol).setExternal(true); + SD.setExternal(true); break; case MCStreamer::LazyReference: @@ -273,7 +273,12 @@ void MCMachOStreamer::EmitLocalSymbol(MCSymbol *Symbol, const MCValue &Value) { void MCMachOStreamer::EmitCommonSymbol(MCSymbol *Symbol, unsigned Size, unsigned Pow2Alignment) { - llvm_unreachable("FIXME: Not yet implemented!"); + // FIXME: Darwin 'as' does appear to allow redef of a .comm by itself. + assert(Symbol->isUndefined() && "Cannot define a symbol twice!"); + + MCSymbolData &SD = getSymbolData(*Symbol); + SD.setExternal(true); + SD.setCommon(Size, 1 << Pow2Alignment); } void MCMachOStreamer::EmitZerofill(const MCSection *Section, MCSymbol *Symbol, |