aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Parse/Action.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-11 18:57:04 +0000
committerChris Lattner <sabre@nondot.org>2009-04-11 18:57:04 +0000
commite294d3fbaffcbc0cf5f16067ab31d2b2763d25e9 (patch)
treef2c07c503173ba2db46c9bbb18fe94d09c02cb28 /include/clang/Parse/Action.h
parentda0895d003dff3e9c57ca899fc2a3a2b397edb2e (diff)
change the interface to ActOnMethodDeclaration to pass down argument
information in a little struct instead of individually. While we're at it, add per-argument loc info and attribute info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68871 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Parse/Action.h')
-rw-r--r--include/clang/Parse/Action.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/include/clang/Parse/Action.h b/include/clang/Parse/Action.h
index f8be3ff79a..70c21f0a34 100644
--- a/include/clang/Parse/Action.h
+++ b/include/clang/Parse/Action.h
@@ -1405,6 +1405,18 @@ public:
IdentifierInfo *propertyIvar) { // name of the ivar
return DeclPtrTy();
}
+
+ struct ObjCArgInfo {
+ IdentifierInfo *Name;
+ SourceLocation NameLoc;
+ // The Type is null if no type was specified, and the DeclSpec is invalid
+ // in this case.
+ TypeTy *Type;
+ ObjCDeclSpec DeclSpec;
+
+ /// ArgAttrs - Attribute list for this argument.
+ AttributeList *ArgAttrs;
+ };
// ActOnMethodDeclaration - called for all method declarations.
virtual DeclPtrTy ActOnMethodDeclaration(
@@ -1415,11 +1427,9 @@ public:
ObjCDeclSpec &ReturnQT, // for return type's in inout etc.
TypeTy *ReturnType, // the method return type.
Selector Sel, // a unique name for the method.
- ObjCDeclSpec *ArgQT, // for arguments' in inout etc.
- TypeTy **ArgTypes, // non-zero when Sel.getNumArgs() > 0
- IdentifierInfo **ArgNames, // non-zero when Sel.getNumArgs() > 0
+ ObjCArgInfo *ArgInfo, // ArgInfo: Has 'Sel.getNumArgs()' entries.
llvm::SmallVectorImpl<Declarator> &Cdecls, // c-style args
- AttributeList *AttrList, // optional
+ AttributeList *MethodAttrList, // optional
// tok::objc_not_keyword, tok::objc_optional, tok::objc_required
tok::ObjCKeywordKind impKind,
bool isVariadic = false) {