MCAsmParser: better handling for named arguments
authorSaleem Abdulrasool <compnerd@compnerd.org>
Mon, 17 Feb 2014 00:40:17 +0000 (00:40 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Mon, 17 Feb 2014 00:40:17 +0000 (00:40 +0000)
commit6d7c0c203e0ac7f1935ab00bcc250d4b4fb71eaf
tree24d3ae2662b9beadefd4a9f642fd9abe04a8782c
parentbe266aa3251667c62fb2f96af939b53d5e82fe46
MCAsmParser: better handling for named arguments

Until this point only macro definition with named parameters were parsed but the
names were ignored.  This adds support for using that information for named
parameter instantiation.

In order to support the full semantics of the keyword arguments, the arguments
are no longer lazily initialised since the keyword arguments can be specified
out of order and partially if they are defaulted.  Prepopulate the arguments
with the default value for any defaulted parameters, and then parse the
specified arguments.

This simplies some of the handling of the arguments in the inner loop since
empty arguments simply increment the parameter index and move on.

Note that keyword and positional arguments cannot be mixed.

llvm-svn: 201499
llvm/lib/MC/MCParser/AsmParser.cpp
llvm/test/MC/AsmParser/macro-err1.s
llvm/test/MC/AsmParser/macros-argument-parsing-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AsmParser/macros-argument-parsing.s