diff options
author | Richard Mitton <richard@codersnotes.com> | 2013-09-19 23:21:01 +0000 |
---|---|---|
committer | Richard Mitton <richard@codersnotes.com> | 2013-09-19 23:21:01 +0000 |
commit | 5cc319a42a914b24b164a94d9a563c728a7a4026 (patch) | |
tree | 2101b566f8fb8e3eea815cf1e29fc86c632a322a /lib/MC/MCAsmStreamer.cpp | |
parent | 70e0b047be83cbaca06c0cc72e508667bcd5e95f (diff) | |
download | external_llvm-5cc319a42a914b24b164a94d9a563c728a7a4026.zip external_llvm-5cc319a42a914b24b164a94d9a563c728a7a4026.tar.gz external_llvm-5cc319a42a914b24b164a94d9a563c728a7a4026.tar.bz2 |
Added support for generate DWARF .debug_aranges sections automatically.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191052 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCAsmStreamer.cpp')
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index 2456d8d..e57025e 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -533,6 +533,9 @@ void MCAsmStreamer::EmitELFSize(MCSymbol *Symbol, const MCExpr *Value) { void MCAsmStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment) { + const MCSection *Section = getContext().getObjectFileInfo()->getBSSSection(); + AssignSection(Symbol, Section); + OS << "\t.comm\t" << *Symbol << ',' << Size; if (ByteAlignment != 0) { if (MAI->getCOMMDirectiveAlignmentIsInBytes()) @@ -549,6 +552,9 @@ void MCAsmStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size, /// @param Size - The size of the common symbol. void MCAsmStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size, unsigned ByteAlign) { + const MCSection *Section = getContext().getObjectFileInfo()->getBSSSection(); + AssignSection(Symbol, Section); + OS << "\t.lcomm\t" << *Symbol << ',' << Size; if (ByteAlign > 1) { switch (MAI->getLCOMMDirectiveAlignmentType()) { @@ -568,6 +574,9 @@ void MCAsmStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size, void MCAsmStreamer::EmitZerofill(const MCSection *Section, MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment) { + if (Symbol) + AssignSection(Symbol, Section); + // Note: a .zerofill directive does not switch sections. OS << ".zerofill "; @@ -588,6 +597,8 @@ void MCAsmStreamer::EmitZerofill(const MCSection *Section, MCSymbol *Symbol, // e.g. _a. void MCAsmStreamer::EmitTBSSSymbol(const MCSection *Section, MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment) { + AssignSection(Symbol, Section); + assert(Symbol != NULL && "Symbol shouldn't be NULL!"); // Instead of using the Section we'll just use the shortcut. // This is a mach-o specific directive and section. |