summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2015-01-30 18:42:10 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2015-01-30 18:42:10 +0000
commit07b7c03805511a6200afc8140b47584061f07acc (patch)
tree5d8e68b76b7011f8227e9acbc0dda1ad9f8c26d2 /llvm
parent42b1fb925335363ae649999f8d10bd96d39f5924 (diff)
downloadbcm5719-llvm-07b7c03805511a6200afc8140b47584061f07acc.tar.gz
bcm5719-llvm-07b7c03805511a6200afc8140b47584061f07acc.zip
ARM: improve caret diagnostics for invalid FPU name
In the case of an invalid FPU name, place the caret at the name rather than FPU directive. llvm-svn: 227595
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp3
-rw-r--r--llvm/test/MC/ARM/directive-fpu-diagnostics.s10
2 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index 96f3b4e6432..2de0ffa5ec6 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/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<unsigned>(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/llvm/test/MC/ARM/directive-fpu-diagnostics.s b/llvm/test/MC/ARM/directive-fpu-diagnostics.s
new file mode 100644
index 00000000000..67c61298221
--- /dev/null
+++ b/llvm/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: ^
OpenPOWER on IntegriCloud