diff options
author | Dan Gohman <dan433584@gmail.com> | 2016-12-01 23:39:08 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2016-12-01 23:39:08 +0000 |
commit | 734c59d501315192e12d9b6450139f5b02c2f8cb (patch) | |
tree | cd664ffae652f7d60dedaf638a20709c9f0e8504 /llvm/lib/MC | |
parent | 399aea300f220ee3715cb22b32ac90bb57eca30d (diff) | |
download | bcm5719-llvm-734c59d501315192e12d9b6450139f5b02c2f8cb.tar.gz bcm5719-llvm-734c59d501315192e12d9b6450139f5b02c2f8cb.zip |
[MC] Refactor emitELFSize to make usage more consistent. NFC.
Move the cast<MCSymbolELF> inside emitELFSize, so that:
- it's done in one place instead of at each call
- it's more consistent with similar functions like EmitCOFFSafeSEH
- ambiguity between cast<> and dyn_cast<> is avoided (which also
eliminates an unnecessary dyn_cast call)
This also makes it easier to experiment with using ".size" directives on
non-ELF targets.
llvm-svn: 288437
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r-- | llvm/lib/MC/MCAsmStreamer.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/MC/MCELFStreamer.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/MC/MCStreamer.cpp | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp index e83a62c9a35..e36903e1fae 100644 --- a/llvm/lib/MC/MCAsmStreamer.cpp +++ b/llvm/lib/MC/MCAsmStreamer.cpp @@ -151,7 +151,7 @@ public: void EmitCOFFSafeSEH(MCSymbol const *Symbol) override; void EmitCOFFSectionIndex(MCSymbol const *Symbol) override; void EmitCOFFSecRel32(MCSymbol const *Symbol) override; - void emitELFSize(MCSymbolELF *Symbol, const MCExpr *Value) override; + void emitELFSize(MCSymbol *Symbol, const MCExpr *Value) override; void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment) override; @@ -620,7 +620,7 @@ void MCAsmStreamer::EmitCOFFSecRel32(MCSymbol const *Symbol) { EmitEOL(); } -void MCAsmStreamer::emitELFSize(MCSymbolELF *Symbol, const MCExpr *Value) { +void MCAsmStreamer::emitELFSize(MCSymbol *Symbol, const MCExpr *Value) { assert(MAI->hasDotTypeDotSizeDirective()); OS << "\t.size\t"; Symbol->print(OS, MAI); diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp index 7d858c306d2..0ef1b2a8bdc 100644 --- a/llvm/lib/MC/MCELFStreamer.cpp +++ b/llvm/lib/MC/MCELFStreamer.cpp @@ -329,8 +329,8 @@ void MCELFStreamer::EmitCommonSymbol(MCSymbol *S, uint64_t Size, ->setSize(MCConstantExpr::create(Size, getContext())); } -void MCELFStreamer::emitELFSize(MCSymbolELF *Symbol, const MCExpr *Value) { - Symbol->setSize(Value); +void MCELFStreamer::emitELFSize(MCSymbol *Symbol, const MCExpr *Value) { + cast<MCSymbolELF>(Symbol)->setSize(Value); } void MCELFStreamer::EmitLocalCommonSymbol(MCSymbol *S, uint64_t Size, diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp index ab60731b9dc..ebbf8116fa3 100644 --- a/llvm/lib/MC/MCStreamer.cpp +++ b/llvm/lib/MC/MCStreamer.cpp @@ -798,7 +798,7 @@ void MCStreamer::EndCOFFSymbolDef() {} void MCStreamer::EmitFileDirective(StringRef Filename) {} void MCStreamer::EmitCOFFSymbolStorageClass(int StorageClass) {} void MCStreamer::EmitCOFFSymbolType(int Type) {} -void MCStreamer::emitELFSize(MCSymbolELF *Symbol, const MCExpr *Value) {} +void MCStreamer::emitELFSize(MCSymbol *Symbol, const MCExpr *Value) {} void MCStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment) {} void MCStreamer::EmitTBSSSymbol(MCSection *Section, MCSymbol *Symbol, |