Index: llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp =================================================================== --- llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp +++ llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp @@ -2815,6 +2815,8 @@ const char *Name; const FeatureBitset Features; } ExtensionMap[] = { + {"dummy_extension", + {}}, // This is a dummy extension used for testing error outputs. {"crc", {AArch64::FeatureCRC}}, {"sm4", {AArch64::FeatureSM4}}, {"sha3", {AArch64::FeatureSHA3}}, @@ -5142,7 +5144,7 @@ continue; if (Extension.Features.none()) - report_fatal_error("unsupported architectural extension: " + Name); + return Error(ArchLoc, "unsupported architectural extension: " + Name); FeatureBitset ToggleFeatures = EnableFeature ? (~Features & Extension.Features) Index: llvm/test/MC/AsmParser/AArch64/directive-feature.s =================================================================== --- /dev/null +++ llvm/test/MC/AsmParser/AArch64/directive-feature.s @@ -0,0 +1,5 @@ +# RUN: not llvm-mc -triple aarch64 %s 2>&1 > /dev/null| FileCheck %s --check-prefix=CHECK-ERROR + +# CHECK-ERROR: error: unsupported architectural extension: dummy_extension +TEST1: + .arch v8+dummy_extension