Implement support for variadic methods (work in progress).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44171 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Parse/ParseObjc.cpp b/Parse/ParseObjc.cpp
index 345906e..be33f86 100644
--- a/Parse/ParseObjc.cpp
+++ b/Parse/ParseObjc.cpp
@@ -619,13 +619,17 @@
// We have a selector or a colon, continue parsing.
}
+ bool isVariadic = false;
+
// Parse the (optional) parameter list.
while (Tok.is(tok::comma)) {
ConsumeToken();
if (Tok.is(tok::ellipsis)) {
+ isVariadic = true;
ConsumeToken();
break;
}
+ // FIXME: implement this...
// Parse the c-style argument declaration-specifier.
DeclSpec DS;
ParseDeclarationSpecifiers(DS);
@@ -645,8 +649,8 @@
return Actions.ActOnMethodDeclaration(mLoc, Tok.getLocation(),
mType, IDecl, DSRet, ReturnType, Sel,
&ArgTypeQuals[0], &KeyTypes[0],
- &ArgNames[0],
- MethodAttrs, MethodImplKind);
+ &ArgNames[0], MethodAttrs,
+ MethodImplKind, isVariadic);
}
/// CmpProtocolVals - Comparison predicate for sorting protocols.