[llvm] r285616 - [MC] Make llvm-mc fail cleanly on invalid output asm variant.

Nirav Dave via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 31 11:36:31 PDT 2016


Author: niravd
Date: Mon Oct 31 13:36:31 2016
New Revision: 285616

URL: http://llvm.org/viewvc/llvm-project?rev=285616&view=rev
Log:
[MC] Make llvm-mc fail cleanly on invalid output asm variant.

Fixes PR28488.

Reviewers: rnk, majnemer

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D25834

Added:
    llvm/trunk/test/MC/AsmParser/invalid-asm-variant.s
Modified:
    llvm/trunk/tools/llvm-mc/llvm-mc.cpp

Added: llvm/trunk/test/MC/AsmParser/invalid-asm-variant.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/invalid-asm-variant.s?rev=285616&view=auto
==============================================================================
--- llvm/trunk/test/MC/AsmParser/invalid-asm-variant.s (added)
+++ llvm/trunk/test/MC/AsmParser/invalid-asm-variant.s Mon Oct 31 13:36:31 2016
@@ -0,0 +1,3 @@
+//RUN:	not llvm-mc --disassemble -triple=x86_64 --output-asm-variant=2 %s -o - 2>&1 | FileCheck %s
+
+//CHECK: error: unable to create instruction printer for target triple 'x86_64' with assembly variant 2.

Modified: llvm/trunk/tools/llvm-mc/llvm-mc.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mc/llvm-mc.cpp?rev=285616&r1=285615&r2=285616&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mc/llvm-mc.cpp (original)
+++ llvm/trunk/tools/llvm-mc/llvm-mc.cpp Mon Oct 31 13:36:31 2016
@@ -563,6 +563,14 @@ int main(int argc, char **argv) {
     IP = TheTarget->createMCInstPrinter(Triple(TripleName), OutputAsmVariant,
                                         *MAI, *MCII, *MRI);
 
+    if (!IP) {
+      errs()
+          << "error: unable to create instruction printer for target triple '"
+          << TheTriple.normalize() << "' with assembly variant "
+          << OutputAsmVariant << ".\n";
+      return 1;
+    }
+
     // Set the display preference for hex vs. decimal immediates.
     IP->setPrintImmHex(PrintImmHex);
 




More information about the llvm-commits mailing list