Parse Tag_compatibility correctly.

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
llvm-svn: 225167
This commit is contained in:
Charlie Turner 2015-01-05 13:26:37 +00:00
parent 2aaa47418b
commit 86412b26cf
4 changed files with 12 additions and 6 deletions

View File

@ -9130,8 +9130,13 @@ bool ARMAsmParser::parseDirectiveEabiAttr(SMLoc L) {
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) {

View File

@ -29,6 +29,11 @@
@ 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

View File

@ -3,8 +3,6 @@
.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 {

View File

@ -173,8 +173,6 @@
@ 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