r273647 - Use more ArrayRefs
Yaron Keren via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 29 06:34:04 PDT 2016
Hi David,
CapturedDecl::params() was removed here.
Does it make sense to provide instead ArrayRef<ImplicitParamDecl *>
CapturedDecl::parameters() ?
Yaron
2016-06-24 7:05 GMT+03:00 David Majnemer via cfe-commits <
cfe-commits at lists.llvm.org>:
> Author: majnemer
> Date: Thu Jun 23 23:05:48 2016
> New Revision: 273647
>
> URL: http://llvm.org/viewvc/llvm-project?rev=273647&view=rev
> Log:
> Use more ArrayRefs
>
> No functional change is intended, just a small refactoring.
>
> Modified:
> cfe/trunk/include/clang/AST/Decl.h
> cfe/trunk/include/clang/AST/DeclObjC.h
> cfe/trunk/include/clang/Sema/Sema.h
> cfe/trunk/lib/AST/ASTContext.cpp
> cfe/trunk/lib/AST/ASTDumper.cpp
> cfe/trunk/lib/AST/ASTImporter.cpp
> cfe/trunk/lib/AST/Comment.cpp
> cfe/trunk/lib/AST/Decl.cpp
> cfe/trunk/lib/AST/DeclPrinter.cpp
> cfe/trunk/lib/AST/StmtPrinter.cpp
> cfe/trunk/lib/Analysis/Consumed.cpp
> cfe/trunk/lib/CodeGen/CGCall.cpp
> cfe/trunk/lib/CodeGen/CGClass.cpp
> cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
> cfe/trunk/lib/CodeGen/CGObjCMac.cpp
> cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp
> cfe/trunk/lib/CodeGen/CGVTables.cpp
> cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
> cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
> cfe/trunk/lib/Frontend/ASTConsumers.cpp
> cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp
> cfe/trunk/lib/Frontend/Rewrite/RewriteObjC.cpp
> cfe/trunk/lib/Index/IndexDecl.cpp
> cfe/trunk/lib/Index/USRGeneration.cpp
> cfe/trunk/lib/Sema/SemaChecking.cpp
> cfe/trunk/lib/Sema/SemaCodeComplete.cpp
> cfe/trunk/lib/Sema/SemaDecl.cpp
> cfe/trunk/lib/Sema/SemaDeclCXX.cpp
> cfe/trunk/lib/Sema/SemaDeclObjC.cpp
> cfe/trunk/lib/Sema/SemaExpr.cpp
> cfe/trunk/lib/Sema/SemaLambda.cpp
> cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp
> cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
> cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp
> cfe/trunk/lib/Sema/TreeTransform.h
> cfe/trunk/lib/Serialization/ASTWriterDecl.cpp
> cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
> cfe/trunk/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
> cfe/trunk/tools/libclang/CIndex.cpp
>
> Modified: cfe/trunk/include/clang/AST/Decl.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Decl.h?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/AST/Decl.h (original)
> +++ cfe/trunk/include/clang/AST/Decl.h Thu Jun 23 23:05:48 2016
> @@ -1952,29 +1952,24 @@ public:
>
> unsigned getBuiltinID() const;
>
> - // Iterator access to formal parameters.
> - unsigned param_size() const { return getNumParams(); }
> - typedef ParmVarDecl **param_iterator;
> - typedef ParmVarDecl * const *param_const_iterator;
> - typedef llvm::iterator_range<param_iterator> param_range;
> - typedef llvm::iterator_range<param_const_iterator> param_const_range;
> -
> - param_iterator param_begin() { return param_iterator(ParamInfo); }
> - param_iterator param_end() {
> - return param_iterator(ParamInfo + param_size());
> - }
> - param_range params() { return param_range(param_begin(), param_end()); }
> -
> - param_const_iterator param_begin() const {
> - return param_const_iterator(ParamInfo);
> - }
> - param_const_iterator param_end() const {
> - return param_const_iterator(ParamInfo + param_size());
> + // ArrayRef interface to parameters.
> + ArrayRef<ParmVarDecl *> parameters() const {
> + return {ParamInfo, getNumParams()};
> }
> - param_const_range params() const {
> - return param_const_range(param_begin(), param_end());
> + MutableArrayRef<ParmVarDecl *> parameters() {
> + return {ParamInfo, getNumParams()};
> }
>
> + // Iterator access to formal parameters.
> + typedef MutableArrayRef<ParmVarDecl *>::iterator param_iterator;
> + typedef ArrayRef<ParmVarDecl *>::const_iterator param_const_iterator;
> + bool param_empty() const { return parameters().empty(); }
> + param_iterator param_begin() { return parameters().begin(); }
> + param_iterator param_end() { return parameters().end(); }
> + param_const_iterator param_begin() const { return parameters().begin();
> }
> + param_const_iterator param_end() const { return parameters().end(); }
> + size_t param_size() const { return parameters().size(); }
> +
> /// getNumParams - Return the number of parameters this function must
> have
> /// based on its FunctionType. This is the length of the ParamInfo
> array
> /// after it has been created.
> @@ -1992,12 +1987,6 @@ public:
> setParams(getASTContext(), NewParamInfo);
> }
>
> - // ArrayRef iterface to parameters.
> - // FIXME: Should one day replace iterator interface.
> - ArrayRef<ParmVarDecl*> parameters() const {
> - return llvm::makeArrayRef(ParamInfo, getNumParams());
> - }
> -
> ArrayRef<NamedDecl *> getDeclsInPrototypeScope() const {
> return DeclsInPrototypeScope;
> }
> @@ -2504,34 +2493,33 @@ class IndirectFieldDecl : public ValueDe
>
> IndirectFieldDecl(ASTContext &C, DeclContext *DC, SourceLocation L,
> DeclarationName N, QualType T,
> - NamedDecl **CH, unsigned CHS);
> + MutableArrayRef<NamedDecl *> CH);
>
> public:
> static IndirectFieldDecl *Create(ASTContext &C, DeclContext *DC,
> SourceLocation L, IdentifierInfo *Id,
> - QualType T, NamedDecl **CH, unsigned
> CHS);
> + QualType T,
> llvm::MutableArrayRef<NamedDecl *> CH);
>
> static IndirectFieldDecl *CreateDeserialized(ASTContext &C, unsigned
> ID);
> -
> - typedef NamedDecl * const *chain_iterator;
> - typedef llvm::iterator_range<chain_iterator> chain_range;
>
> - chain_range chain() const { return chain_range(chain_begin(),
> chain_end()); }
> - chain_iterator chain_begin() const { return chain_iterator(Chaining); }
> - chain_iterator chain_end() const {
> - return chain_iterator(Chaining + ChainingSize);
> + typedef ArrayRef<NamedDecl *>::const_iterator chain_iterator;
> +
> + ArrayRef<NamedDecl *> chain() const {
> + return llvm::makeArrayRef(Chaining, ChainingSize);
> }
> + chain_iterator chain_begin() const { return chain().begin(); }
> + chain_iterator chain_end() const { return chain().end(); }
>
> unsigned getChainingSize() const { return ChainingSize; }
>
> FieldDecl *getAnonField() const {
> - assert(ChainingSize >= 2);
> - return cast<FieldDecl>(Chaining[ChainingSize - 1]);
> + assert(chain().size() >= 2);
> + return cast<FieldDecl>(chain().back());
> }
>
> VarDecl *getVarDecl() const {
> - assert(ChainingSize >= 2);
> - return dyn_cast<VarDecl>(*chain_begin());
> + assert(chain().size() >= 2);
> + return dyn_cast<VarDecl>(chain().front());
> }
>
> IndirectFieldDecl *getCanonicalDecl() override { return getFirstDecl();
> }
> @@ -3518,35 +3506,23 @@ public:
> void setSignatureAsWritten(TypeSourceInfo *Sig) { SignatureAsWritten =
> Sig; }
> TypeSourceInfo *getSignatureAsWritten() const { return
> SignatureAsWritten; }
>
> - // Iterator access to formal parameters.
> - unsigned param_size() const { return getNumParams(); }
> - typedef ParmVarDecl **param_iterator;
> - typedef ParmVarDecl * const *param_const_iterator;
> - typedef llvm::iterator_range<param_iterator> param_range;
> - typedef llvm::iterator_range<param_const_iterator> param_const_range;
> -
> // ArrayRef access to formal parameters.
> - // FIXME: Should eventual replace iterator access.
> - ArrayRef<ParmVarDecl*> parameters() const {
> - return llvm::makeArrayRef(ParamInfo, param_size());
> + ArrayRef<ParmVarDecl *> parameters() const {
> + return {ParamInfo, getNumParams()};
> }
> -
> - bool param_empty() const { return NumParams == 0; }
> - param_range params() { return param_range(param_begin(), param_end()); }
> - param_iterator param_begin() { return param_iterator(ParamInfo); }
> - param_iterator param_end() {
> - return param_iterator(ParamInfo + param_size());
> + MutableArrayRef<ParmVarDecl *> parameters() {
> + return {ParamInfo, getNumParams()};
> }
>
> - param_const_range params() const {
> - return param_const_range(param_begin(), param_end());
> - }
> - param_const_iterator param_begin() const {
> - return param_const_iterator(ParamInfo);
> - }
> - param_const_iterator param_end() const {
> - return param_const_iterator(ParamInfo + param_size());
> - }
> + // Iterator access to formal parameters.
> + typedef MutableArrayRef<ParmVarDecl *>::iterator param_iterator;
> + typedef ArrayRef<ParmVarDecl *>::const_iterator param_const_iterator;
> + bool param_empty() const { return parameters().empty(); }
> + param_iterator param_begin() { return parameters().begin(); }
> + param_iterator param_end() { return parameters().end(); }
> + param_const_iterator param_begin() const { return parameters().begin();
> }
> + param_const_iterator param_end() const { return parameters().end(); }
> + size_t param_size() const { return parameters().size(); }
>
> unsigned getNumParams() const { return NumParams; }
> const ParmVarDecl *getParamDecl(unsigned i) const {
> @@ -3567,22 +3543,12 @@ public:
> /// Does not include an entry for 'this'.
> unsigned getNumCaptures() const { return NumCaptures; }
>
> - typedef const Capture *capture_iterator;
> - typedef const Capture *capture_const_iterator;
> - typedef llvm::iterator_range<capture_iterator> capture_range;
> - typedef llvm::iterator_range<capture_const_iterator>
> capture_const_range;
> -
> - capture_range captures() {
> - return capture_range(capture_begin(), capture_end());
> - }
> - capture_const_range captures() const {
> - return capture_const_range(capture_begin(), capture_end());
> - }
> -
> - capture_iterator capture_begin() { return Captures; }
> - capture_iterator capture_end() { return Captures + NumCaptures; }
> - capture_const_iterator capture_begin() const { return Captures; }
> - capture_const_iterator capture_end() const { return Captures +
> NumCaptures; }
> + typedef ArrayRef<Capture>::const_iterator capture_const_iterator;
> +
> + ArrayRef<Capture> captures() const { return {Captures, NumCaptures}; }
> +
> + capture_const_iterator capture_begin() const { return
> captures().begin(); }
> + capture_const_iterator capture_end() const { return captures().end(); }
>
> bool capturesCXXThis() const { return CapturesCXXThis; }
> bool blockMissingReturnType() const { return BlockMissingReturnType; }
> @@ -3693,9 +3659,6 @@ public:
> /// \brief Retrieve an iterator one past the last parameter decl.
> param_iterator param_end() const { return getParams() + NumParams; }
>
> - /// \brief Retrieve an iterator range for the parameter declarations.
> - param_range params() const { return param_range(param_begin(),
> param_end()); }
> -
> // Implement isa/cast/dyncast/etc.
> static bool classof(const Decl *D) { return classofKind(D->getKind()); }
> static bool classofKind(Kind K) { return K == Captured; }
>
> Modified: cfe/trunk/include/clang/AST/DeclObjC.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclObjC.h?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/AST/DeclObjC.h (original)
> +++ cfe/trunk/include/clang/AST/DeclObjC.h Thu Jun 23 23:05:48 2016
> @@ -351,11 +351,6 @@ public:
> typedef llvm::iterator_range<param_iterator> param_range;
> typedef llvm::iterator_range<param_const_iterator> param_const_range;
>
> - param_range params() { return param_range(param_begin(), param_end()); }
> - param_const_range params() const {
> - return param_const_range(param_begin(), param_end());
> - }
> -
> param_const_iterator param_begin() const {
> return param_const_iterator(getParams());
> }
>
> Modified: cfe/trunk/include/clang/Sema/Sema.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Sema/Sema.h (original)
> +++ cfe/trunk/include/clang/Sema/Sema.h Thu Jun 23 23:05:48 2016
> @@ -1827,16 +1827,14 @@ public:
>
> /// \brief Diagnose any unused parameters in the given sequence of
> /// ParmVarDecl pointers.
> - void DiagnoseUnusedParameters(ParmVarDecl * const *Begin,
> - ParmVarDecl * const *End);
> + void DiagnoseUnusedParameters(ArrayRef<ParmVarDecl *> Parameters);
>
> /// \brief Diagnose whether the size of parameters or return value of a
> /// function or obj-c method definition is pass-by-value and larger
> than a
> /// specified threshold.
> - void DiagnoseSizeOfParametersAndReturnValue(ParmVarDecl * const *Begin,
> - ParmVarDecl * const *End,
> - QualType ReturnTy,
> - NamedDecl *D);
> + void
> + DiagnoseSizeOfParametersAndReturnValue(ArrayRef<ParmVarDecl *>
> Parameters,
> + QualType ReturnTy, NamedDecl *D);
>
> void DiagnoseInvalidJumps(Stmt *Body);
> Decl *ActOnFileScopeAsmDecl(Expr *expr,
> @@ -2665,8 +2663,7 @@ public:
> CallExpr *CE, FunctionDecl *FD);
>
> /// Helpers for dealing with blocks and functions.
> - bool CheckParmsForFunctionDef(ParmVarDecl *const *Param,
> - ParmVarDecl *const *ParamEnd,
> + bool CheckParmsForFunctionDef(ArrayRef<ParmVarDecl *> Parameters,
> bool CheckParameterNames);
> void CheckCXXDefaultArguments(FunctionDecl *FD);
> void CheckExtraCXXDefaultArguments(Declarator &D);
> @@ -7140,8 +7137,7 @@ public:
> int indexAdjustment,
> Optional<unsigned> NumExpansions,
> bool ExpectParameterPack);
> - bool SubstParmTypes(SourceLocation Loc,
> - ParmVarDecl **Params, unsigned NumParams,
> + bool SubstParmTypes(SourceLocation Loc, ArrayRef<ParmVarDecl *> Params,
> const FunctionProtoType::ExtParameterInfo
> *ExtParamInfos,
> const MultiLevelTemplateArgumentList &TemplateArgs,
> SmallVectorImpl<QualType> &ParamTypes,
>
> Modified: cfe/trunk/lib/AST/ASTContext.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTContext.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/AST/ASTContext.cpp (original)
> +++ cfe/trunk/lib/AST/ASTContext.cpp Thu Jun 23 23:05:48 2016
> @@ -5164,7 +5164,7 @@ std::string ASTContext::getObjCEncodingF
> SourceLocation Loc;
> CharUnits PtrSize = getTypeSizeInChars(VoidPtrTy);
> CharUnits ParmOffset = PtrSize;
> - for (auto PI : Decl->params()) {
> + for (auto PI : Decl->parameters()) {
> QualType PType = PI->getType();
> CharUnits sz = getObjCEncodingTypeSize(PType);
> if (sz.isZero())
> @@ -5179,7 +5179,7 @@ std::string ASTContext::getObjCEncodingF
>
> // Argument types.
> ParmOffset = PtrSize;
> - for (auto PVDecl : Decl->params()) {
> + for (auto PVDecl : Decl->parameters()) {
> QualType PType = PVDecl->getOriginalType();
> if (const ArrayType *AT =
> dyn_cast<ArrayType>(PType->getCanonicalTypeInternal())) {
> @@ -5207,7 +5207,7 @@ bool ASTContext::getObjCEncodingForFunct
> getObjCEncodingForType(Decl->getReturnType(), S);
> CharUnits ParmOffset;
> // Compute size of all parameters.
> - for (auto PI : Decl->params()) {
> + for (auto PI : Decl->parameters()) {
> QualType PType = PI->getType();
> CharUnits sz = getObjCEncodingTypeSize(PType);
> if (sz.isZero())
> @@ -5221,7 +5221,7 @@ bool ASTContext::getObjCEncodingForFunct
> ParmOffset = CharUnits::Zero();
>
> // Argument types.
> - for (auto PVDecl : Decl->params()) {
> + for (auto PVDecl : Decl->parameters()) {
> QualType PType = PVDecl->getOriginalType();
> if (const ArrayType *AT =
> dyn_cast<ArrayType>(PType->getCanonicalTypeInternal())) {
>
> Modified: cfe/trunk/lib/AST/ASTDumper.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTDumper.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/AST/ASTDumper.cpp (original)
> +++ cfe/trunk/lib/AST/ASTDumper.cpp Thu Jun 23 23:05:48 2016
> @@ -1681,7 +1681,7 @@ void ASTDumper::VisitObjCPropertyImplDec
> }
>
> void ASTDumper::VisitBlockDecl(const BlockDecl *D) {
> - for (auto I : D->params())
> + for (auto I : D->parameters())
> dumpDecl(I);
>
> if (D->isVariadic())
>
> Modified: cfe/trunk/lib/AST/ASTImporter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/AST/ASTImporter.cpp (original)
> +++ cfe/trunk/lib/AST/ASTImporter.cpp Thu Jun 23 23:05:48 2016
> @@ -3010,7 +3010,7 @@ Decl *ASTNodeImporter::VisitFunctionDecl
>
> // Import the function parameters.
> SmallVector<ParmVarDecl *, 8> Parameters;
> - for (auto P : D->params()) {
> + for (auto P : D->parameters()) {
> ParmVarDecl *ToP = cast_or_null<ParmVarDecl>(Importer.Import(P));
> if (!ToP)
> return nullptr;
> @@ -3276,7 +3276,7 @@ Decl *ASTNodeImporter::VisitIndirectFiel
>
> IndirectFieldDecl *ToIndirectField = IndirectFieldDecl::Create(
> Importer.getToContext(), DC, Loc, Name.getAsIdentifierInfo(), T,
> - NamedChain, D->getChainingSize());
> + {NamedChain, D->getChainingSize()});
>
> for (const auto *Attr : D->attrs())
> ToIndirectField->addAttr(Attr->clone(Importer.getToContext()));
> @@ -3619,7 +3619,7 @@ Decl *ASTNodeImporter::VisitObjCMethodDe
>
> // Import the parameters
> SmallVector<ParmVarDecl *, 5> ToParams;
> - for (auto *FromP : D->params()) {
> + for (auto *FromP : D->parameters()) {
> ParmVarDecl *ToP = cast_or_null<ParmVarDecl>(Importer.Import(FromP));
> if (!ToP)
> return nullptr;
>
> Modified: cfe/trunk/lib/AST/Comment.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Comment.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/AST/Comment.cpp (original)
> +++ cfe/trunk/lib/AST/Comment.cpp Thu Jun 23 23:05:48 2016
> @@ -157,7 +157,7 @@ void DeclInfo::fill() {
> case Decl::CXXConversion: {
> const FunctionDecl *FD = cast<FunctionDecl>(CommentDecl);
> Kind = FunctionKind;
> - ParamVars = llvm::makeArrayRef(FD->param_begin(), FD->getNumParams());
> + ParamVars = FD->parameters();
> ReturnType = FD->getReturnType();
> unsigned NumLists = FD->getNumTemplateParameterLists();
> if (NumLists != 0) {
> @@ -177,7 +177,7 @@ void DeclInfo::fill() {
> case Decl::ObjCMethod: {
> const ObjCMethodDecl *MD = cast<ObjCMethodDecl>(CommentDecl);
> Kind = FunctionKind;
> - ParamVars = llvm::makeArrayRef(MD->param_begin(), MD->param_size());
> + ParamVars = MD->parameters();
> ReturnType = MD->getReturnType();
> IsObjCMethod = true;
> IsInstanceMethod = MD->isInstanceMethod();
> @@ -189,7 +189,7 @@ void DeclInfo::fill() {
> Kind = FunctionKind;
> TemplateKind = Template;
> const FunctionDecl *FD = FTD->getTemplatedDecl();
> - ParamVars = llvm::makeArrayRef(FD->param_begin(), FD->getNumParams());
> + ParamVars = FD->parameters();
> ReturnType = FD->getReturnType();
> TemplateParameters = FTD->getTemplateParameters();
> break;
>
> Modified: cfe/trunk/lib/AST/Decl.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Decl.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/AST/Decl.cpp (original)
> +++ cfe/trunk/lib/AST/Decl.cpp Thu Jun 23 23:05:48 2016
> @@ -2793,7 +2793,7 @@ unsigned FunctionDecl::getMinRequiredArg
> return getNumParams();
>
> unsigned NumRequiredArgs = 0;
> - for (auto *Param : params())
> + for (auto *Param : parameters())
> if (!Param->isParameterPack() && !Param->hasDefaultArg())
> ++NumRequiredArgs;
> return NumRequiredArgs;
> @@ -4099,8 +4099,10 @@ void IndirectFieldDecl::anchor() { }
>
> IndirectFieldDecl::IndirectFieldDecl(ASTContext &C, DeclContext *DC,
> SourceLocation L, DeclarationName N,
> - QualType T, NamedDecl **CH, unsigned
> CHS)
> - : ValueDecl(IndirectField, DC, L, N, T), Chaining(CH),
> ChainingSize(CHS) {
> + QualType T,
> + MutableArrayRef<NamedDecl *> CH)
> + : ValueDecl(IndirectField, DC, L, N, T), Chaining(CH.data()),
> + ChainingSize(CH.size()) {
> // In C++, indirect field declarations conflict with tag declarations
> in the
> // same scope, so add them to IDNS_Tag so that tag redeclaration finds
> them.
> if (C.getLangOpts().CPlusPlus)
> @@ -4109,16 +4111,15 @@ IndirectFieldDecl::IndirectFieldDecl(AST
>
> IndirectFieldDecl *
> IndirectFieldDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation
> L,
> - IdentifierInfo *Id, QualType T, NamedDecl **CH,
> - unsigned CHS) {
> - return new (C, DC) IndirectFieldDecl(C, DC, L, Id, T, CH, CHS);
> + IdentifierInfo *Id, QualType T,
> + llvm::MutableArrayRef<NamedDecl *> CH) {
> + return new (C, DC) IndirectFieldDecl(C, DC, L, Id, T, CH);
> }
>
> IndirectFieldDecl *IndirectFieldDecl::CreateDeserialized(ASTContext &C,
> unsigned ID) {
> return new (C, ID) IndirectFieldDecl(C, nullptr, SourceLocation(),
> - DeclarationName(), QualType(),
> nullptr,
> - 0);
> + DeclarationName(), QualType(),
> None);
> }
>
> SourceRange EnumConstantDecl::getSourceRange() const {
>
> Modified: cfe/trunk/lib/AST/DeclPrinter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclPrinter.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/AST/DeclPrinter.cpp (original)
> +++ cfe/trunk/lib/AST/DeclPrinter.cpp Thu Jun 23 23:05:48 2016
> @@ -1055,7 +1055,7 @@ void DeclPrinter::VisitObjCMethodDecl(Ob
>
> std::string name = OMD->getSelector().getAsString();
> std::string::size_type pos, lastPos = 0;
> - for (const auto *PI : OMD->params()) {
> + for (const auto *PI : OMD->parameters()) {
> // FIXME: selector is missing here!
> pos = name.find_first_of(':', lastPos);
> Out << " " << name.substr(lastPos, pos - lastPos) << ':';
>
> Modified: cfe/trunk/lib/AST/StmtPrinter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/StmtPrinter.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/AST/StmtPrinter.cpp (original)
> +++ cfe/trunk/lib/AST/StmtPrinter.cpp Thu Jun 23 23:05:48 2016
> @@ -2054,7 +2054,7 @@ void StmtPrinter::VisitLambdaExpr(Lambda
> OS << " (";
> CXXMethodDecl *Method = Node->getCallOperator();
> NeedComma = false;
> - for (auto P : Method->params()) {
> + for (auto P : Method->parameters()) {
> if (NeedComma) {
> OS << ", ";
> } else {
>
> Modified: cfe/trunk/lib/Analysis/Consumed.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/Consumed.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Analysis/Consumed.cpp (original)
> +++ cfe/trunk/lib/Analysis/Consumed.cpp Thu Jun 23 23:05:48 2016
> @@ -1362,7 +1362,7 @@ void ConsumedAnalyzer::run(AnalysisDeclC
> ConsumedStmtVisitor Visitor(AC, *this, CurrStates.get());
>
> // Add all trackable parameters to the state map.
> - for (const auto *PI : D->params())
> + for (const auto *PI : D->parameters())
> Visitor.VisitParmVarDecl(PI);
>
> // Visit all of the function's basic blocks.
>
> Modified: cfe/trunk/lib/CodeGen/CGCall.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGCall.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGCall.cpp Thu Jun 23 23:05:48 2016
> @@ -402,7 +402,7 @@ CodeGenTypes::arrangeObjCMessageSendSign
> argTys.push_back(Context.getCanonicalParamType(receiverType));
>
> argTys.push_back(Context.getCanonicalParamType(Context.getObjCSelType()));
> // FIXME: Kill copy?
> - for (const auto *I : MD->params()) {
> + for (const auto *I : MD->parameters()) {
> argTys.push_back(Context.getCanonicalParamType(I->getType()));
> }
>
>
> Modified: cfe/trunk/lib/CodeGen/CGClass.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGClass.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGClass.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGClass.cpp Thu Jun 23 23:05:48 2016
> @@ -2785,7 +2785,7 @@ void CodeGenFunction::EmitLambdaBlockInv
> CallArgs.add(RValue::get(ThisPtr.getPointer()), ThisType);
>
> // Add the rest of the parameters.
> - for (auto param : BD->params())
> + for (auto param : BD->parameters())
> EmitDelegateCallArg(CallArgs, param, param->getLocStart());
>
> assert(!Lambda->isGenericLambda() &&
> @@ -2815,7 +2815,7 @@ void CodeGenFunction::EmitLambdaDelegati
> CallArgs.add(RValue::get(ThisPtr), ThisType);
>
> // Add the rest of the parameters.
> - for (auto Param : MD->params())
> + for (auto Param : MD->parameters())
> EmitDelegateCallArg(CallArgs, Param, Param->getLocStart());
>
> const CXXMethodDecl *CallOp = Lambda->getLambdaCallOperator();
>
> Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu Jun 23 23:05:48 2016
> @@ -2766,7 +2766,7 @@ llvm::DISubroutineType *CGDebugInfo::get
> Elts.push_back(DBuilder.createArtificialType(
> getOrCreateType(CGM.getContext().getObjCSelType(), F)));
> // Get rest of the arguments.
> - for (const auto *PI : OMethod->params())
> + for (const auto *PI : OMethod->parameters())
> Elts.push_back(getOrCreateType(PI->getType(), F));
> // Variadic methods need a special marker at the end of the type list.
> if (OMethod->isVariadic())
>
> Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Thu Jun 23 23:05:48 2016
> @@ -1943,7 +1943,7 @@ CGObjCCommonMac::EmitMessageSend(CodeGen
> // Emit a null-check if there's a consumed argument other than the
> receiver.
> bool RequiresNullCheck = false;
> if (ReceiverCanBeNull && CGM.getLangOpts().ObjCAutoRefCount && Method) {
> - for (const auto *ParamDecl : Method->params()) {
> + for (const auto *ParamDecl : Method->parameters()) {
> if (ParamDecl->hasAttr<NSConsumedAttr>()) {
> if (!nullReturn.NullBB)
> nullReturn.init(CGF, Arg0);
> @@ -6828,7 +6828,7 @@ CGObjCNonFragileABIMac::EmitVTableMessag
>
> bool requiresnullCheck = false;
> if (CGM.getLangOpts().ObjCAutoRefCount && method)
> - for (const auto *ParamDecl : method->params()) {
> + for (const auto *ParamDecl : method->parameters()) {
> if (ParamDecl->hasAttr<NSConsumedAttr>()) {
> if (!nullReturn.NullBB)
> nullReturn.init(CGF, arg0);
>
> Modified: cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp Thu Jun 23 23:05:48 2016
> @@ -6405,7 +6405,7 @@ void CGOpenMPRuntime::emitDeclareSimdFun
> if (isa<CXXMethodDecl>(FD))
> ParamPositions.insert({FD, 0});
> unsigned ParamPos = ParamPositions.size();
> - for (auto *P : FD->params()) {
> + for (auto *P : FD->parameters()) {
> ParamPositions.insert({P->getCanonicalDecl(), ParamPos});
> ++ParamPos;
> }
>
> Modified: cfe/trunk/lib/CodeGen/CGVTables.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGVTables.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGVTables.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGVTables.cpp Thu Jun 23 23:05:48 2016
> @@ -284,7 +284,7 @@ void CodeGenFunction::EmitCallAndReturnF
> CGM.getCXXABI().adjustCallArgsForDestructorThunk(*this, CurGD,
> CallArgs);
>
> // Add the rest of the arguments.
> - for (const ParmVarDecl *PD : MD->params())
> + for (const ParmVarDecl *PD : MD->parameters())
> EmitDelegateCallArg(CallArgs, PD, PD->getLocStart());
>
> const FunctionProtoType *FPT =
> MD->getType()->getAs<FunctionProtoType>();
>
> Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CodeGenFunction.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenFunction.cpp Thu Jun 23 23:05:48 2016
> @@ -949,7 +949,7 @@ void CodeGenFunction::GenerateCode(Globa
> CGM.getCXXABI().buildThisParam(*this, Args);
> }
>
> - for (auto *Param : FD->params()) {
> + for (auto *Param : FD->parameters()) {
> Args.push_back(Param);
> if (!Param->hasAttr<PassObjectSizeAttr>())
> continue;
>
> Modified: cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp (original)
> +++ cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp Thu Jun 23
> 23:05:48 2016
> @@ -105,7 +105,7 @@ class PCHContainerGenerator : public AST
> return true;
>
> SmallVector<QualType, 16> ArgTypes;
> - for (auto i : D->params())
> + for (auto i : D->parameters())
> ArgTypes.push_back(i->getType());
> QualType RetTy = D->getReturnType();
> QualType FnTy = Ctx.getFunctionType(RetTy, ArgTypes,
> @@ -124,7 +124,7 @@ class PCHContainerGenerator : public AST
> ArgTypes.push_back(D->getSelfType(Ctx, D->getClassInterface(),
> selfIsPseudoStrong,
> selfIsConsumed));
> ArgTypes.push_back(Ctx.getObjCSelType());
> - for (auto i : D->params())
> + for (auto i : D->parameters())
> ArgTypes.push_back(i->getType());
> QualType RetTy = D->getReturnType();
> QualType FnTy = Ctx.getFunctionType(RetTy, ArgTypes,
>
> Modified: cfe/trunk/lib/Frontend/ASTConsumers.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTConsumers.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Frontend/ASTConsumers.cpp (original)
> +++ cfe/trunk/lib/Frontend/ASTConsumers.cpp Thu Jun 23 23:05:48 2016
> @@ -268,7 +268,7 @@ void DeclContextPrinter::PrintDeclContex
> // Print the parameters.
> Out << "(";
> bool PrintComma = false;
> - for (auto I : FD->params()) {
> + for (auto I : FD->parameters()) {
> if (PrintComma)
> Out << ", ";
> else
>
> Modified: cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp (original)
> +++ cfe/trunk/lib/Frontend/Rewrite/RewriteModernObjC.cpp Thu Jun 23
> 23:05:48 2016
> @@ -1286,7 +1286,7 @@ void RewriteModernObjC::RewriteObjCMetho
> ResultStr += " _cmd";
>
> // Method arguments.
> - for (const auto *PDecl : OMD->params()) {
> + for (const auto *PDecl : OMD->parameters()) {
> ResultStr += ", ";
> if (PDecl->getType()->isObjCQualifiedIdType()) {
> ResultStr += "id ";
> @@ -2785,7 +2785,7 @@ Stmt *RewriteModernObjC::RewriteObjCArra
> SmallVector<QualType, 4> ArgTypes;
> ArgTypes.push_back(Context->getObjCClassType());
> ArgTypes.push_back(Context->getObjCSelType());
> - for (const auto *PI : ArrayMethod->params())
> + for (const auto *PI : ArrayMethod->parameters())
> ArgTypes.push_back(PI->getType());
>
> QualType returnType = Exp->getType();
> @@ -2932,7 +2932,7 @@ Stmt *RewriteModernObjC::RewriteObjCDict
> SmallVector<QualType, 8> ArgTypes;
> ArgTypes.push_back(Context->getObjCClassType());
> ArgTypes.push_back(Context->getObjCSelType());
> - for (const auto *PI : DictMethod->params()) {
> + for (const auto *PI : DictMethod->parameters()) {
> QualType T = PI->getType();
> if (const PointerType* PT = T->getAs<PointerType>()) {
> QualType PointeeTy = PT->getPointeeType();
> @@ -3497,7 +3497,7 @@ Stmt *RewriteModernObjC::SynthMessageExp
> ArgTypes.push_back(Context->getObjCSelType());
> if (ObjCMethodDecl *OMD = Exp->getMethodDecl()) {
> // Push any user argument types.
> - for (const auto *PI : OMD->params()) {
> + for (const auto *PI : OMD->parameters()) {
> QualType t = PI->getType()->isObjCQualifiedIdType()
> ? Context->getObjCIdType()
> : PI->getType();
>
> Modified: cfe/trunk/lib/Frontend/Rewrite/RewriteObjC.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/Rewrite/RewriteObjC.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Frontend/Rewrite/RewriteObjC.cpp (original)
> +++ cfe/trunk/lib/Frontend/Rewrite/RewriteObjC.cpp Thu Jun 23 23:05:48 2016
> @@ -1118,7 +1118,7 @@ void RewriteObjC::RewriteObjCMethodDecl(
> ResultStr += " _cmd";
>
> // Method arguments.
> - for (const auto *PDecl : OMD->params()) {
> + for (const auto *PDecl : OMD->parameters()) {
> ResultStr += ", ";
> if (PDecl->getType()->isObjCQualifiedIdType()) {
> ResultStr += "id ";
> @@ -2917,7 +2917,7 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjC
> ArgTypes.push_back(Context->getObjCSelType());
> if (ObjCMethodDecl *OMD = Exp->getMethodDecl()) {
> // Push any user argument types.
> - for (const auto *PI : OMD->params()) {
> + for (const auto *PI : OMD->parameters()) {
> QualType t = PI->getType()->isObjCQualifiedIdType()
> ? Context->getObjCIdType()
> : PI->getType();
>
> Modified: cfe/trunk/lib/Index/IndexDecl.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Index/IndexDecl.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Index/IndexDecl.cpp (original)
> +++ cfe/trunk/lib/Index/IndexDecl.cpp Thu Jun 23 23:05:48 2016
> @@ -67,7 +67,7 @@ public:
> }
> } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
> if (FD->isThisDeclarationADefinition()) {
> - for (auto PI : FD->params()) {
> + for (auto PI : FD->parameters()) {
> IndexCtx.handleDecl(PI);
> }
> }
> @@ -79,7 +79,7 @@ public:
> if (!IndexCtx.handleDecl(D, (unsigned)SymbolRole::Dynamic))
> return false;
> IndexCtx.indexTypeSourceInfo(D->getReturnTypeSourceInfo(), D);
> - for (const auto *I : D->params())
> + for (const auto *I : D->parameters())
> handleDeclarator(I, D);
>
> if (D->isThisDeclarationADefinition()) {
>
> Modified: cfe/trunk/lib/Index/USRGeneration.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Index/USRGeneration.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Index/USRGeneration.cpp (original)
> +++ cfe/trunk/lib/Index/USRGeneration.cpp Thu Jun 23 23:05:48 2016
> @@ -233,7 +233,7 @@ void USRGenerator::VisitFunctionDecl(con
> }
>
> // Mangle in type information for the arguments.
> - for (auto PD : D->params()) {
> + for (auto PD : D->parameters()) {
> Out << '#';
> VisitType(PD->getType());
> }
>
> Modified: cfe/trunk/lib/Sema/SemaChecking.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaChecking.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaChecking.cpp Thu Jun 23 23:05:48 2016
> @@ -9186,13 +9186,10 @@ static void diagnoseArrayStarInParamType
> /// takes care of any checks that cannot be performed on the
> /// declaration itself, e.g., that the types of each of the function
> /// parameters are complete.
> -bool Sema::CheckParmsForFunctionDef(ParmVarDecl *const *P,
> - ParmVarDecl *const *PEnd,
> +bool Sema::CheckParmsForFunctionDef(ArrayRef<ParmVarDecl *> Parameters,
> bool CheckParameterNames) {
> bool HasInvalidParm = false;
> - for (; P != PEnd; ++P) {
> - ParmVarDecl *Param = *P;
> -
> + for (ParmVarDecl *Param : Parameters) {
> // C99 6.7.5.3p4: the parameters in a parameter type list in a
> // function declarator that is part of a function definition of
> // that function shall not have incomplete type.
>
> Modified: cfe/trunk/lib/Sema/SemaCodeComplete.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaCodeComplete.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaCodeComplete.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaCodeComplete.cpp Thu Jun 23 23:05:48 2016
> @@ -3208,7 +3208,7 @@ static void MaybeAddOverrideCalls(Sema &
>
> // We need to have names for all of the parameters, if we're going to
> // generate a forwarding call.
> - for (auto P : Method->params())
> + for (auto P : Method->parameters())
> if (!P->getDeclName())
> return;
>
> @@ -3240,7 +3240,7 @@ static void MaybeAddOverrideCalls(Sema &
> Overridden->getNameAsString()));
> Builder.AddChunk(CodeCompletionString::CK_LeftParen);
> bool FirstParam = true;
> - for (auto P : Method->params()) {
> + for (auto P : Method->parameters()) {
> if (FirstParam)
> FirstParam = false;
> else
>
> Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaDecl.cpp Thu Jun 23 23:05:48 2016
> @@ -4134,7 +4134,7 @@ InjectAnonymousStructOrUnionMembers(Sema
>
> IndirectFieldDecl *IndirectField = IndirectFieldDecl::Create(
> SemaRef.Context, Owner, VD->getLocation(),
> VD->getIdentifier(),
> - VD->getType(), NamedChain, Chaining.size());
> + VD->getType(), {NamedChain, Chaining.size()});
>
> for (const auto *Attr : VD->attrs())
> IndirectField->addAttr(Attr->clone(SemaRef.Context));
> @@ -8529,12 +8529,10 @@ Sema::ActOnFunctionDeclarator(Scope *S,
> }
>
> llvm::SmallPtrSet<const Type *, 16> ValidTypes;
> - for (auto Param : NewFD->params())
> + for (auto Param : NewFD->parameters())
> checkIsValidOpenCLKernelParameter(*this, D, Param, ValidTypes);
> }
> - for (FunctionDecl::param_iterator PI = NewFD->param_begin(),
> - PE = NewFD->param_end(); PI != PE; ++PI) {
> - ParmVarDecl *Param = *PI;
> + for (const ParmVarDecl *Param : NewFD->parameters()) {
> QualType PT = Param->getType();
>
> // OpenCL 2.0 pipe restrictions forbids pipe packet types to be
> non-value
> @@ -10866,26 +10864,23 @@ ParmVarDecl *Sema::BuildParmVarDeclForTy
> return Param;
> }
>
> -void Sema::DiagnoseUnusedParameters(ParmVarDecl * const *Param,
> - ParmVarDecl * const *ParamEnd) {
> +void Sema::DiagnoseUnusedParameters(ArrayRef<ParmVarDecl *> Parameters) {
> // Don't diagnose unused-parameter errors in template instantiations; we
> // will already have done so in the template itself.
> if (!ActiveTemplateInstantiations.empty())
> return;
>
> - for (; Param != ParamEnd; ++Param) {
> - if (!(*Param)->isReferenced() && (*Param)->getDeclName() &&
> - !(*Param)->hasAttr<UnusedAttr>()) {
> - Diag((*Param)->getLocation(), diag::warn_unused_parameter)
> - << (*Param)->getDeclName();
> + for (const ParmVarDecl *Parameter : Parameters) {
> + if (!Parameter->isReferenced() && Parameter->getDeclName() &&
> + !Parameter->hasAttr<UnusedAttr>()) {
> + Diag(Parameter->getLocation(), diag::warn_unused_parameter)
> + << Parameter->getDeclName();
> }
> }
> }
>
> -void Sema::DiagnoseSizeOfParametersAndReturnValue(ParmVarDecl * const
> *Param,
> - ParmVarDecl * const
> *ParamEnd,
> - QualType ReturnTy,
> - NamedDecl *D) {
> +void Sema::DiagnoseSizeOfParametersAndReturnValue(
> + ArrayRef<ParmVarDecl *> Parameters, QualType ReturnTy, NamedDecl *D) {
> if (LangOpts.NumLargeByValueCopy == 0) // No check.
> return;
>
> @@ -10900,14 +10895,14 @@ void Sema::DiagnoseSizeOfParametersAndRe
>
> // Warn if any parameter is pass-by-value and larger than the specified
> // threshold.
> - for (; Param != ParamEnd; ++Param) {
> - QualType T = (*Param)->getType();
> + for (const ParmVarDecl *Parameter : Parameters) {
> + QualType T = Parameter->getType();
> if (T->isDependentType() || !T.isPODType(Context))
> continue;
> unsigned Size = Context.getTypeSizeInChars(T).getQuantity();
> if (Size > LangOpts.NumLargeByValueCopy)
> - Diag((*Param)->getLocation(), diag::warn_parameter_size)
> - << (*Param)->getDeclName() << Size;
> + Diag(Parameter->getLocation(), diag::warn_parameter_size)
> + << Parameter->getDeclName() << Size;
> }
> }
>
> @@ -11249,11 +11244,11 @@ Decl *Sema::ActOnStartOfFunctionDef(Scop
> PushDeclContext(FnBodyScope, FD);
>
> // Check the validity of our function parameters
> - CheckParmsForFunctionDef(FD->param_begin(), FD->param_end(),
> + CheckParmsForFunctionDef(FD->parameters(),
> /*CheckParameterNames=*/true);
>
> // Introduce our parameters into the function scope
> - for (auto Param : FD->params()) {
> + for (auto Param : FD->parameters()) {
> Param->setOwningFunction(FD);
>
> // If this has an identifier, add it to the scope stack.
> @@ -11467,8 +11462,8 @@ Decl *Sema::ActOnFinishFunctionBody(Decl
> if (!FD->isInvalidDecl()) {
> // Don't diagnose unused parameters of defaulted or deleted
> functions.
> if (!FD->isDeleted() && !FD->isDefaulted())
> - DiagnoseUnusedParameters(FD->param_begin(), FD->param_end());
> - DiagnoseSizeOfParametersAndReturnValue(FD->param_begin(),
> FD->param_end(),
> + DiagnoseUnusedParameters(FD->parameters());
> + DiagnoseSizeOfParametersAndReturnValue(FD->parameters(),
> FD->getReturnType(), FD);
>
> // If this is a structor, we need a vtable.
> @@ -11539,8 +11534,8 @@ Decl *Sema::ActOnFinishFunctionBody(Decl
> assert(MD == getCurMethodDecl() && "Method parsing confused");
> MD->setBody(Body);
> if (!MD->isInvalidDecl()) {
> - DiagnoseUnusedParameters(MD->param_begin(), MD->param_end());
> - DiagnoseSizeOfParametersAndReturnValue(MD->param_begin(),
> MD->param_end(),
> + DiagnoseUnusedParameters(MD->parameters());
> + DiagnoseSizeOfParametersAndReturnValue(MD->parameters(),
> MD->getReturnType(), MD);
>
> if (Body)
>
> Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Thu Jun 23 23:05:48 2016
> @@ -11823,7 +11823,7 @@ bool Sema::CheckOverloadedOperatorDeclar
> diag::err_operator_overload_static) <<
> FnDecl->getDeclName();
> } else {
> bool ClassOrEnumParam = false;
> - for (auto Param : FnDecl->params()) {
> + for (auto Param : FnDecl->parameters()) {
> QualType ParamType = Param->getType().getNonReferenceType();
> if (ParamType->isDependentType() || ParamType->isRecordType() ||
> ParamType->isEnumeralType()) {
> @@ -11845,7 +11845,7 @@ bool Sema::CheckOverloadedOperatorDeclar
> // Only the function-call operator allows default arguments
> // (C++ [over.call]p1).
> if (Op != OO_Call) {
> - for (auto Param : FnDecl->params()) {
> + for (auto Param : FnDecl->parameters()) {
> if (Param->hasDefaultArg())
> return Diag(Param->getLocation(),
> diag::err_operator_overload_default_arg)
> @@ -12110,7 +12110,7 @@ bool Sema::CheckLiteralOperatorDeclarati
>
> // A parameter-declaration-clause containing a default argument is not
> // equivalent to any of the permitted forms.
> - for (auto Param : FnDecl->params()) {
> + for (auto Param : FnDecl->parameters()) {
> if (Param->hasDefaultArg()) {
> Diag(Param->getDefaultArgRange().getBegin(),
> diag::err_literal_operator_default_argument)
>
> Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Thu Jun 23 23:05:48 2016
> @@ -319,11 +319,11 @@ void Sema::ActOnStartOfObjCMethodDef(Sco
> PushOnScopeChains(MDecl->getCmdDecl(), FnBodyScope);
>
> // The ObjC parser requires parameter names so there's no need to check.
> - CheckParmsForFunctionDef(MDecl->param_begin(), MDecl->param_end(),
> + CheckParmsForFunctionDef(MDecl->parameters(),
> /*CheckParameterNames=*/false);
>
> // Introduce all of the other parameters into this scope.
> - for (auto *Param : MDecl->params()) {
> + for (auto *Param : MDecl->parameters()) {
> if (!Param->isInvalidDecl() &&
> getLangOpts().ObjCAutoRefCount &&
> !HasExplicitOwnershipAttr(*this, Param))
>
> Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaExpr.cpp Thu Jun 23 23:05:48 2016
> @@ -12028,8 +12028,7 @@ void Sema::ActOnBlockArguments(SourceLoc
> // Set the parameters on the block decl.
> if (!Params.empty()) {
> CurBlock->TheDecl->setParams(Params);
> - CheckParmsForFunctionDef(CurBlock->TheDecl->param_begin(),
> - CurBlock->TheDecl->param_end(),
> + CheckParmsForFunctionDef(CurBlock->TheDecl->parameters(),
> /*CheckParameterNames=*/false);
> }
>
> @@ -12037,7 +12036,7 @@ void Sema::ActOnBlockArguments(SourceLoc
> ProcessDeclAttributes(CurScope, CurBlock->TheDecl, ParamInfo);
>
> // Put the parameter variables in scope.
> - for (auto AI : CurBlock->TheDecl->params()) {
> + for (auto AI : CurBlock->TheDecl->parameters()) {
> AI->setOwningFunction(CurBlock->TheDecl);
>
> // If this has an identifier, add it to the scope stack.
> @@ -12137,8 +12136,7 @@ ExprResult Sema::ActOnBlockStmtExpr(Sour
> BlockTy = Context.getFunctionType(RetTy, None, EPI);
> }
>
> - DiagnoseUnusedParameters(BSI->TheDecl->param_begin(),
> - BSI->TheDecl->param_end());
> + DiagnoseUnusedParameters(BSI->TheDecl->parameters());
> BlockTy = Context.getBlockPointerType(BlockTy);
>
> // If needed, diagnose invalid gotos and switches in the block.
>
> Modified: cfe/trunk/lib/Sema/SemaLambda.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLambda.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaLambda.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaLambda.cpp Thu Jun 23 23:05:48 2016
> @@ -415,11 +415,10 @@ CXXMethodDecl *Sema::startLambdaDefiniti
> // Add parameters.
> if (!Params.empty()) {
> Method->setParams(Params);
> - CheckParmsForFunctionDef(const_cast<ParmVarDecl **>(Params.begin()),
> - const_cast<ParmVarDecl **>(Params.end()),
> + CheckParmsForFunctionDef(Params,
> /*CheckParameterNames=*/false);
> -
> - for (auto P : Method->params())
> +
> + for (auto P : Method->parameters())
> P->setOwningFunction(Method);
> }
>
>
> Modified: cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp Thu Jun 23 23:05:48 2016
> @@ -2480,7 +2480,7 @@ Sema::SubstituteExplicitTemplateArgument
> if (ExplicitTemplateArgs.size() == 0) {
> // No arguments to substitute; just copy over the parameter types and
> // fill in the function type.
> - for (auto P : Function->params())
> + for (auto P : Function->parameters())
> ParamTypes.push_back(P->getType());
>
> if (FunctionType)
> @@ -2563,8 +2563,7 @@ Sema::SubstituteExplicitTemplateArgument
> // return type, substitute it after the arguments to ensure we
> substitute
> // in lexical order.
> if (Proto->hasTrailingReturn()) {
> - if (SubstParmTypes(Function->getLocation(),
> - Function->param_begin(), Function->getNumParams(),
> + if (SubstParmTypes(Function->getLocation(), Function->parameters(),
> Proto->getExtParameterInfosOrNull(),
>
> MultiLevelTemplateArgumentList(*ExplicitArgumentList),
> ParamTypes, /*params*/ nullptr, ExtParamInfos))
> @@ -2601,8 +2600,7 @@ Sema::SubstituteExplicitTemplateArgument
> // Instantiate the types of each of the function parameters given the
> // explicitly-specified template arguments if we didn't do so earlier.
> if (!Proto->hasTrailingReturn() &&
> - SubstParmTypes(Function->getLocation(),
> - Function->param_begin(), Function->getNumParams(),
> + SubstParmTypes(Function->getLocation(), Function->parameters(),
> Proto->getExtParameterInfosOrNull(),
>
> MultiLevelTemplateArgumentList(*ExplicitArgumentList),
> ParamTypes, /*params*/ nullptr, ExtParamInfos))
>
> Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp Thu Jun 23 23:05:48 2016
> @@ -1714,23 +1714,21 @@ ParmVarDecl *Sema::SubstParmVarDecl(Parm
> /// \brief Substitute the given template arguments into the given set of
> /// parameters, producing the set of parameter types that would be
> generated
> /// from such a substitution.
> -bool Sema::SubstParmTypes(SourceLocation Loc,
> - ParmVarDecl **Params, unsigned NumParams,
> - const FunctionProtoType::ExtParameterInfo
> *ExtParamInfos,
> - const MultiLevelTemplateArgumentList
> &TemplateArgs,
> - SmallVectorImpl<QualType> &ParamTypes,
> - SmallVectorImpl<ParmVarDecl *> *OutParams,
> - ExtParameterInfoBuilder &ParamInfos) {
> +bool Sema::SubstParmTypes(
> + SourceLocation Loc, ArrayRef<ParmVarDecl *> Params,
> + const FunctionProtoType::ExtParameterInfo *ExtParamInfos,
> + const MultiLevelTemplateArgumentList &TemplateArgs,
> + SmallVectorImpl<QualType> &ParamTypes,
> + SmallVectorImpl<ParmVarDecl *> *OutParams,
> + ExtParameterInfoBuilder &ParamInfos) {
> assert(!ActiveTemplateInstantiations.empty() &&
> "Cannot perform an instantiation without some context on the "
> "instantiation stack");
>
> TemplateInstantiator Instantiator(*this, TemplateArgs, Loc,
> DeclarationName());
> - return Instantiator.TransformFunctionTypeParams(Loc, Params, NumParams,
> - nullptr, ExtParamInfos,
> - ParamTypes, OutParams,
> - ParamInfos);
> + return Instantiator.TransformFunctionTypeParams(
> + Loc, Params, nullptr, ExtParamInfos, ParamTypes, OutParams,
> ParamInfos);
> }
>
> /// \brief Perform substitution on the base class specifiers of the
>
> Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Thu Jun 23 23:05:48
> 2016
> @@ -803,7 +803,7 @@ Decl *TemplateDeclInstantiator::VisitInd
> QualType T = cast<FieldDecl>(NamedChain[i-1])->getType();
> IndirectFieldDecl *IndirectField = IndirectFieldDecl::Create(
> SemaRef.Context, Owner, D->getLocation(), D->getIdentifier(), T,
> - NamedChain, D->getChainingSize());
> + {NamedChain, D->getChainingSize()});
>
> for (const auto *Attr : D->attrs())
> IndirectField->addAttr(Attr->clone(SemaRef.Context));
> @@ -3301,9 +3301,9 @@ TemplateDeclInstantiator::SubstFunctionT
> // synthesized in the method declaration.
> SmallVector<QualType, 4> ParamTypes;
> Sema::ExtParameterInfoBuilder ExtParamInfos;
> - if (SemaRef.SubstParmTypes(D->getLocation(), D->param_begin(),
> - D->getNumParams(), nullptr, TemplateArgs,
> - ParamTypes, &Params, ExtParamInfos))
> + if (SemaRef.SubstParmTypes(D->getLocation(), D->parameters(), nullptr,
> + TemplateArgs, ParamTypes, &Params,
> + ExtParamInfos))
> return nullptr;
> }
>
>
> Modified: cfe/trunk/lib/Sema/TreeTransform.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/TreeTransform.h?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/TreeTransform.h (original)
> +++ cfe/trunk/lib/Sema/TreeTransform.h Thu Jun 23 23:05:48 2016
> @@ -612,13 +612,12 @@ public:
> /// variables vector are acceptable.
> ///
> /// Return true on error.
> - bool TransformFunctionTypeParams(SourceLocation Loc,
> - ParmVarDecl **Params, unsigned
> NumParams,
> - const QualType *ParamTypes,
> - const FunctionProtoType::ExtParameterInfo
> *ParamInfos,
> - SmallVectorImpl<QualType> &PTypes,
> - SmallVectorImpl<ParmVarDecl*> *PVars,
> - Sema::ExtParameterInfoBuilder &PInfos);
> + bool TransformFunctionTypeParams(
> + SourceLocation Loc, ArrayRef<ParmVarDecl *> Params,
> + const QualType *ParamTypes,
> + const FunctionProtoType::ExtParameterInfo *ParamInfos,
> + SmallVectorImpl<QualType> &PTypes, SmallVectorImpl<ParmVarDecl *>
> *PVars,
> + Sema::ExtParameterInfoBuilder &PInfos);
>
> /// \brief Transforms a single function-type parameter. Return null
> /// on error.
> @@ -4663,17 +4662,17 @@ ParmVarDecl *TreeTransform<Derived>::Tra
> return newParm;
> }
>
> -template<typename Derived>
> -bool TreeTransform<Derived>::
> - TransformFunctionTypeParams(SourceLocation Loc,
> - ParmVarDecl **Params, unsigned NumParams,
> - const QualType *ParamTypes,
> - const FunctionProtoType::ExtParameterInfo
> *ParamInfos,
> - SmallVectorImpl<QualType> &OutParamTypes,
> - SmallVectorImpl<ParmVarDecl*> *PVars,
> - Sema::ExtParameterInfoBuilder &PInfos) {
> +template <typename Derived>
> +bool TreeTransform<Derived>::TransformFunctionTypeParams(
> + SourceLocation Loc, ArrayRef<ParmVarDecl *> Params,
> + const QualType *ParamTypes,
> + const FunctionProtoType::ExtParameterInfo *ParamInfos,
> + SmallVectorImpl<QualType> &OutParamTypes,
> + SmallVectorImpl<ParmVarDecl *> *PVars,
> + Sema::ExtParameterInfoBuilder &PInfos) {
> int indexAdjustment = 0;
>
> + unsigned NumParams = Params.size();
> for (unsigned i = 0; i != NumParams; ++i) {
> if (ParmVarDecl *OldParm = Params[i]) {
> assert(OldParm->getFunctionScopeIndex() == i);
> @@ -4908,7 +4907,7 @@ QualType TreeTransform<Derived>::Transfo
>
> if (T->hasTrailingReturn()) {
> if (getDerived().TransformFunctionTypeParams(
> - TL.getBeginLoc(), TL.getParmArray(), TL.getNumParams(),
> + TL.getBeginLoc(), TL.getParams(),
> TL.getTypePtr()->param_type_begin(),
> T->getExtParameterInfosOrNull(),
> ParamTypes, &ParamDecls, ExtParamInfos))
> @@ -4934,7 +4933,7 @@ QualType TreeTransform<Derived>::Transfo
> return QualType();
>
> if (getDerived().TransformFunctionTypeParams(
> - TL.getBeginLoc(), TL.getParmArray(), TL.getNumParams(),
> + TL.getBeginLoc(), TL.getParams(),
> TL.getTypePtr()->param_type_begin(),
> T->getExtParameterInfosOrNull(),
> ParamTypes, &ParamDecls, ExtParamInfos))
> @@ -11196,13 +11195,10 @@ TreeTransform<Derived>::TransformBlockEx
>
> // Parameter substitution.
> Sema::ExtParameterInfoBuilder extParamInfos;
> - if (getDerived().TransformFunctionTypeParams(E->getCaretLocation(),
> - oldBlock->param_begin(),
> - oldBlock->param_size(),
> - nullptr,
> -
> exprFunctionType->getExtParameterInfosOrNull(),
> - paramTypes, ¶ms,
> - extParamInfos)) {
> + if (getDerived().TransformFunctionTypeParams(
> + E->getCaretLocation(), oldBlock->parameters(), nullptr,
> + exprFunctionType->getExtParameterInfosOrNull(), paramTypes,
> ¶ms,
> + extParamInfos)) {
> getSema().ActOnBlockError(E->getCaretLocation(), /*Scope=*/nullptr);
> return ExprError();
> }
>
> Modified: cfe/trunk/lib/Serialization/ASTWriterDecl.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriterDecl.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTWriterDecl.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTWriterDecl.cpp Thu Jun 23 23:05:48 2016
> @@ -597,7 +597,7 @@ void ASTDeclWriter::VisitFunctionDecl(Fu
> }
>
> Record.push_back(D->param_size());
> - for (auto P : D->params())
> + for (auto P : D->parameters())
> Record.AddDeclRef(P);
> Code = serialization::DECL_FUNCTION;
> }
> @@ -637,7 +637,7 @@ void ASTDeclWriter::VisitObjCMethodDecl(
> Record.AddTypeSourceInfo(D->getReturnTypeSourceInfo());
> Record.AddSourceLocation(D->getLocEnd());
> Record.push_back(D->param_size());
> - for (const auto *P : D->params())
> + for (const auto *P : D->parameters())
> Record.AddDeclRef(P);
>
> Record.push_back(D->SelLocsKind);
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp Thu Jun 23
> 23:05:48 2016
> @@ -944,7 +944,7 @@ static bool treatUnusedNewEscaped(const
> const CXXConstructorDecl *CtorD = ConstructE->getConstructor();
>
> // Iterate over the constructor parameters.
> - for (const auto *CtorParam : CtorD->params()) {
> + for (const auto *CtorParam : CtorD->parameters()) {
>
> QualType CtorParamPointeeT = CtorParam->getType()->getPointeeType();
> if (CtorParamPointeeT.isNull())
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp Thu Jun 23
> 23:05:48 2016
> @@ -61,7 +61,7 @@ void NSErrorMethodChecker::checkASTDecl(
> II = &D->getASTContext().Idents.get("NSError");
>
> bool hasNSError = false;
> - for (const auto *I : D->params()) {
> + for (const auto *I : D->parameters()) {
> if (IsNSError(I->getType(), II)) {
> hasNSError = true;
> break;
> @@ -108,7 +108,7 @@ void CFErrorFunctionChecker::checkASTDec
> II = &D->getASTContext().Idents.get("CFErrorRef");
>
> bool hasCFError = false;
> - for (auto I : D->params()) {
> + for (auto I : D->parameters()) {
> if (IsCFError(I->getType(), II)) {
> hasCFError = true;
> break;
>
> Modified: cfe/trunk/tools/libclang/CIndex.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=273647&r1=273646&r2=273647&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/libclang/CIndex.cpp (original)
> +++ cfe/trunk/tools/libclang/CIndex.cpp Thu Jun 23 23:05:48 2016
> @@ -935,7 +935,7 @@ bool CursorVisitor::VisitObjCMethodDecl(
> if (Visit(TSInfo->getTypeLoc()))
> return true;
>
> - for (const auto *P : ND->params()) {
> + for (const auto *P : ND->parameters()) {
> if (Visit(MakeCXCursor(P, TU, RegionOfInterest)))
> return true;
> }
> @@ -6278,7 +6278,7 @@ AnnotateTokensWorker::Visit(CXCursor cur
> if (Method->getObjCDeclQualifier())
> HasContextSensitiveKeywords = true;
> else {
> - for (const auto *P : Method->params()) {
> + for (const auto *P : Method->parameters()) {
> if (P->getObjCDeclQualifier()) {
> HasContextSensitiveKeywords = true;
> break;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160629/05a95250/attachment-0001.html>
More information about the cfe-commits
mailing list