[PATCH] D23443: (Trivial) TargetPassConfig: assert when TargetMachine has no MCAsmInfo
Justin Bogner via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 15 16:12:18 PDT 2016
Alex Bradbury via llvm-commits <llvm-commits at lists.llvm.org> writes:
> asb created this revision.
> asb added reviewers: chandlerc, MatzeB.
> asb added a subscriber: llvm-commits.
>
> 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.
Can't hurt. LGTM.
> https://reviews.llvm.org/D23443
>
> Files:
> lib/CodeGen/TargetPassConfig.cpp
>
> Index: lib/CodeGen/TargetPassConfig.cpp
> ===================================================================
> --- lib/CodeGen/TargetPassConfig.cpp
> +++ lib/CodeGen/TargetPassConfig.cpp
> @@ -474,7 +474,9 @@
> /// 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,
More information about the llvm-commits
mailing list