forked from OSchip/llvm-project
MC asm parser macro argument count was wrong when empty.
evaluated to '1' when the argument list was empty (should be '0'). rdar://11057257 llvm-svn: 152967
This commit is contained in:
parent
0f73197364
commit
2c8e0ac85c
|
@ -1528,6 +1528,11 @@ bool AsmParser::HandleMacroEntry(StringRef Name, SMLoc NameLoc,
|
|||
}
|
||||
Lex();
|
||||
}
|
||||
// If there weren't any arguments, erase the token vector so everything
|
||||
// else knows that. Leaving around the vestigal empty token list confuses
|
||||
// things.
|
||||
if (MacroArguments.size() == 1 && MacroArguments.back().empty())
|
||||
MacroArguments.clear();
|
||||
|
||||
// Macro instantiation is lexical, unfortunately. We construct a new buffer
|
||||
// to hold the macro body with substitutions.
|
||||
|
|
|
@ -8,3 +8,13 @@
|
|||
GET is_sse, %eax
|
||||
|
||||
// CHECK: movl is_sse@GOTOFF(%ebx), %eax
|
||||
|
||||
.macro bar
|
||||
.long $n
|
||||
.endm
|
||||
|
||||
bar 1, 2, 3
|
||||
bar
|
||||
|
||||
// CHECK: .long 3
|
||||
// CHECK: .long 0
|
||||
|
|
Loading…
Reference in New Issue