diff options
-rw-r--r-- | include/clang/AST/Decl.h | 9 | ||||
-rw-r--r-- | include/clang/AST/DeclObjC.h | 11 |
2 files changed, 20 insertions, 0 deletions
diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h index efa79d5372..98fac7b0a8 100644 --- a/include/clang/AST/Decl.h +++ b/include/clang/AST/Decl.h @@ -439,6 +439,15 @@ public: ScopedDecl *getDeclChain() const { return DeclChain; } void setDeclChain(ScopedDecl *D) { DeclChain = D; } + // Iterator access to formal parameters. + unsigned param_size() const { return getNumParams(); } + typedef ParmVarDecl **param_iterator; + typedef ParmVarDecl * const *param_const_iterator; + param_iterator param_begin() { return ParamInfo; } + param_iterator param_end() { return ParamInfo+param_size(); } + param_const_iterator param_begin() const { return ParamInfo; } + param_const_iterator param_end() const { return ParamInfo+param_size(); } + unsigned getNumParams() const; const ParmVarDecl *getParamDecl(unsigned i) const { assert(i < getNumParams() && "Illegal param #"); diff --git a/include/clang/AST/DeclObjC.h b/include/clang/AST/DeclObjC.h index ac9862581b..cbe0912246 100644 --- a/include/clang/AST/DeclObjC.h +++ b/include/clang/AST/DeclObjC.h @@ -118,6 +118,17 @@ public: Selector getSelector() const { return SelName; } QualType getResultType() const { return MethodDeclType; } + // Iterator access to formal parameters. + unsigned param_size() const { + return NumMethodParams == -1 ? 0 : NumMethodParams; + } + typedef ParmVarDecl **param_iterator; + typedef ParmVarDecl * const *param_const_iterator; + param_iterator param_begin() { return ParamInfo; } + param_iterator param_end() { return ParamInfo+param_size(); } + param_const_iterator param_begin() const { return ParamInfo; } + param_const_iterator param_end() const { return ParamInfo+param_size(); } + int getNumParams() const { return NumMethodParams; } ParmVarDecl *getParamDecl(int i) const { assert(i < getNumParams() && "Illegal param #"); |