summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCParser/AsmParser.cpp
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-02-16 04:56:31 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-02-16 04:56:31 +0000
commit27304cb1892b9a745451f4a09f06ff195a7ae4db (patch)
tree4b2fcde693cb975f402ef5e86f4edab02c484508 /llvm/lib/MC/MCParser/AsmParser.cpp
parentff8e5f2587145bdd2f4194ab0472889933ee4fb0 (diff)
downloadbcm5719-llvm-27304cb1892b9a745451f4a09f06ff195a7ae4db.tar.gz
bcm5719-llvm-27304cb1892b9a745451f4a09f06ff195a7ae4db.zip
MCAsmParser: relax declaration parsing
The Linux kernel defines empty macros for compatibility with ARM UAL syntax. The comma after the name is optional, and if present can be safely lexed. This improves compatibility with the GNU assembler. llvm-svn: 201474
Diffstat (limited to 'llvm/lib/MC/MCParser/AsmParser.cpp')
-rw-r--r--llvm/lib/MC/MCParser/AsmParser.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index 5f92795b49d..03b004ecfac 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -3152,12 +3152,15 @@ bool AsmParser::parseDirectiveMacrosOnOff(StringRef Directive) {
}
/// parseDirectiveMacro
-/// ::= .macro name [parameters]
+/// ::= .macro name[,] [parameters]
bool AsmParser::parseDirectiveMacro(SMLoc DirectiveLoc) {
StringRef Name;
if (parseIdentifier(Name))
return TokError("expected identifier in '.macro' directive");
+ if (getLexer().is(AsmToken::Comma))
+ Lex();
+
MCAsmMacroParameters Parameters;
while (getLexer().isNot(AsmToken::EndOfStatement)) {
MCAsmMacroParameter Parameter;
OpenPOWER on IntegriCloud