summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorAlex Bradbury <asb@lowrisc.org>2016-08-18 13:08:58 +0000
committerAlex Bradbury <asb@lowrisc.org>2016-08-18 13:08:58 +0000
commit3447ca3f0848738b474bc7a5f851eaa1052d7171 (patch)
treeebc58683a23991168385fd780a026da5f79945c3 /llvm
parentdbb76dbde3d014af48f26f82b9904a20f210ba15 (diff)
downloadbcm5719-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.cpp4
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,
OpenPOWER on IntegriCloud