diff options
| author | Alex Bradbury <asb@lowrisc.org> | 2016-08-18 13:08:58 +0000 |
|---|---|---|
| committer | Alex Bradbury <asb@lowrisc.org> | 2016-08-18 13:08:58 +0000 |
| commit | 3447ca3f0848738b474bc7a5f851eaa1052d7171 (patch) | |
| tree | ebc58683a23991168385fd780a026da5f79945c3 /llvm | |
| parent | dbb76dbde3d014af48f26f82b9904a20f210ba15 (diff) | |
| download | bcm5719-llvm-3447ca3f0848738b474bc7a5f851eaa1052d7171.tar.gz bcm5719-llvm-3447ca3f0848738b474bc7a5f851eaa1052d7171.zip | |
(Trivial) TargetPassConfig: assert when TargetMachine has no MCAsmInfo
Summary:
This is a pretty trivial, but I thought it was worth just checking that nobody feels it's completely the wrong thing to be doing.
The motivation is that when starting a new backend, you often start with a minimal stub, pretty much just FooTargetMachine and FooTargetInfo. Once that's built, you might naturally try `llc -march=foo myinput.ll` and it seems more developer-friendly if this ends up asserting due to the lack of MCAsmInfo with an informative message rather than just segfaulting.
Reviewers: MatzeB, chandlerc
Subscribers: bogner, llvm-commits
Differential Revision: https://reviews.llvm.org/D23443
llvm-svn: 279061
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/TargetPassConfig.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp index 5b29273cfd0..94ee30264dd 100644 --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -474,7 +474,9 @@ void TargetPassConfig::addIRPasses() { /// Turn exception handling constructs into something the code generators can /// handle. void TargetPassConfig::addPassesToHandleExceptions() { - switch (TM->getMCAsmInfo()->getExceptionHandlingType()) { + const MCAsmInfo *MCAI = TM->getMCAsmInfo(); + assert(MCAI && "No MCAsmInfo"); + switch (MCAI->getExceptionHandlingType()) { case ExceptionHandling::SjLj: // SjLj piggy-backs on dwarf for this bit. The cleanups done apply to both // Dwarf EH prepare needs to be run after SjLj prepare. Otherwise, |

