Index: test/MC/AsmParser/invalid-asm-variant.s =================================================================== --- /dev/null +++ test/MC/AsmParser/invalid-asm-variant.s @@ -0,0 +1,3 @@ +//RUN: not llvm-mc --disassemble -triple=x86_64 --output-asm-variant=2 %s -o - 2>&1 | FileCheck %s + +//CHECK: error: invalid output assembly variant 2 for target triple x86_64 Index: tools/llvm-mc/llvm-mc.cpp =================================================================== --- tools/llvm-mc/llvm-mc.cpp +++ tools/llvm-mc/llvm-mc.cpp @@ -563,6 +563,12 @@ IP = TheTarget->createMCInstPrinter(Triple(TripleName), OutputAsmVariant, *MAI, *MCII, *MRI); + if (!IP) { + errs() << "error: invalid output assembly variant " << OutputAsmVariant + << " for target triple " << TheTriple.normalize() << "\n"; + return 1; + } + // Set the display preference for hex vs. decimal immediates. IP->setPrintImmHex(PrintImmHex);