diff --git a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 96f3b4e6432..2de0ffa5ec6 100644 --- a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -9229,6 +9229,7 @@ static const struct { /// parseDirectiveFPU /// ::= .fpu str bool ARMAsmParser::parseDirectiveFPU(SMLoc L) { + SMLoc FPUNameLoc = getTok().getLoc(); StringRef FPU = getParser().parseStringToEndOfStatement().trim(); unsigned ID = StringSwitch(FPU) @@ -9237,7 +9238,7 @@ bool ARMAsmParser::parseDirectiveFPU(SMLoc L) { .Default(ARM::INVALID_FPU); if (ID == ARM::INVALID_FPU) { - Error(L, "Unknown FPU name"); + Error(FPUNameLoc, "Unknown FPU name"); return false; } diff --git a/test/MC/ARM/directive-fpu-diagnostics.s b/test/MC/ARM/directive-fpu-diagnostics.s new file mode 100644 index 00000000000..67c61298221 --- /dev/null +++ b/test/MC/ARM/directive-fpu-diagnostics.s @@ -0,0 +1,10 @@ +@ RUN: not llvm-mc -triple armv7 -filetype asm -o /dev/null %s 2>&1 \ +@ RUN: | FileCheck %s -strict-whitespace + + .text + .thumb + + .fpu invalid +@ CHECK: error: Unknown FPU name +@ CHECK: .fpu invalid +@ CHECK: ^