summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Carter <jcarter@mips.com>2013-02-05 07:47:41 +0000
committerJack Carter <jcarter@mips.com>2013-02-05 07:47:41 +0000
commit10be6aef15ad9abb413e734e54d7856790a962e3 (patch)
tree76df5ebbabcc1e31efe55de4ee31be22f03d09f8
parent012017890929d11115c7a486024bb7bb3fb729e3 (diff)
downloadbcm5719-llvm-10be6aef15ad9abb413e734e54d7856790a962e3.tar.gz
bcm5719-llvm-10be6aef15ad9abb413e734e54d7856790a962e3.zip
This patch changes a static_cast to dyn_cast
for MipsELFStreamer objects. Contributer: Jack Carter llvm-svn: 174354
-rw-r--r--llvm/include/llvm/MC/MCStreamer.h1
-rw-r--r--llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h6
-rw-r--r--llvm/lib/Target/Mips/MipsAsmPrinter.cpp4
3 files changed, 8 insertions, 3 deletions
diff --git a/llvm/include/llvm/MC/MCStreamer.h b/llvm/include/llvm/MC/MCStreamer.h
index 36313258c75..8d7d542e6cb 100644
--- a/llvm/include/llvm/MC/MCStreamer.h
+++ b/llvm/include/llvm/MC/MCStreamer.h
@@ -57,6 +57,7 @@ namespace llvm {
SK_ARMELFStreamer,
SK_MachOStreamer,
SK_PureStreamer,
+ SK_MipsELFStreamer,
SK_WinCOFFStreamer
};
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h
index 0d067e063b3..360dbe178cc 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h
@@ -19,12 +19,16 @@ public:
MipsELFStreamer(MCContext &Context, MCAsmBackend &TAB,
raw_ostream &OS, MCCodeEmitter *Emitter,
bool RelaxAll, bool NoExecStack)
- : MCELFStreamer(Context, TAB, OS, Emitter) {
+ : MCELFStreamer(SK_MipsELFStreamer, Context, TAB, OS, Emitter) {
}
~MipsELFStreamer() {}
void emitELFHeaderFlagsCG(const MipsSubtarget &Subtarget);
// void emitELFHeaderFlagCG(unsigned Val);
+
+ static bool classof(const MCStreamer *S) {
+ return S->getKind() == SK_MipsELFStreamer;
+ }
};
MCELFStreamer* createMipsELFStreamer(MCContext &Context, MCAsmBackend &TAB,
diff --git a/llvm/lib/Target/Mips/MipsAsmPrinter.cpp b/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
index df6baaf474e..07a4faa144c 100644
--- a/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
+++ b/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
@@ -551,8 +551,8 @@ void MipsAsmPrinter::EmitEndOfAsmFile(Module &M) {
// Emit Mips ELF register info
Subtarget->getMReginfo().emitMipsReginfoSectionCG(
OutStreamer, getObjFileLowering(), *Subtarget);
- MipsELFStreamer & MES = static_cast<MipsELFStreamer &>(OutStreamer);
- MES.emitELFHeaderFlagsCG(*Subtarget);
+ if (MipsELFStreamer *MES = dyn_cast<MipsELFStreamer>(&OutStreamer))
+ MES->emitELFHeaderFlagsCG(*Subtarget);
}
MachineLocation
OpenPOWER on IntegriCloud