Tag_compatibility takes two arguments, but before this patch it would
erroneously accept just one, it now produces an error in that case.
Change-Id: I530f918587620d0d5dfebf639944d6083871ef7d
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225167
91177308-0d34-0410-b5e6-
96231b3b80d8
if (Tag == ARMBuildAttrs::compatibility) {
if (Parser.getTok().isNot(AsmToken::Comma))
IsStringValue = false;
- else
- Parser.Lex();
+ if (Parser.getTok().isNot(AsmToken::Comma)) {
+ Error(Parser.getTok().getLoc(), "comma expected");
+ Parser.eatToEndOfStatement();
+ return false;
+ } else {
+ Parser.Lex();
+ }
}
if (IsStringValue) {
@ CHECK: .eabi_attribute 0
@ CHECK: ^
+ .eabi_attribute Tag_compatibility, 1
+@ CHECK: error: comma expected
+@ CHECK: .eabi_attribute Tag_compatibility, 1
+@ CHECK: ^
+
.eabi_attribute Tag_MPextension_use_old, 0
@ CHECK: error: attribute name not recognised: Tag_MPextension_use_old
@ CHECK: .eabi_attribute Tag_MPextension_use_old, 0
.syntax unified
.thumb
-@ FIXME: The next directive is not correct, Tag_compatibility isn't getting parsed correctly.
- .eabi_attribute Tag_compatibility, 1
.eabi_attribute Tag_compatibility, 1, "aeabi"
@ CHECK-ATTR: FileAttributes {
@ CHECK-OBJ-NEXT: Value: 1
@ CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals
@ CHECK-OBJ-NEXT: Description: Speed
- .eabi_attribute Tag_compatibility, 1
-@ CHECK: .eabi_attribute 32, 1
.eabi_attribute Tag_compatibility, 1, "aeabi"
@ CHECK: .eabi_attribute 32, 1, "aeabi"
@ CHECK-OBJ: Tag: 32