r273647 - Use more ArrayRefs

David Majnemer via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 29 09:09:24 PDT 2016


Sure.

On Wed, Jun 29, 2016 at 6:34 AM, Yaron Keren <yaron.keren at gmail.com> wrote:

> 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, &params,
>> -                                               extParamInfos)) {
>> +  if (getDerived().TransformFunctionTypeParams(
>> +          E->getCaretLocation(), oldBlock->parameters(), nullptr,
>> +          exprFunctionType->getExtParameterInfosOrNull(), paramTypes,
>> &params,
>> +          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/037dd6e1/attachment-0001.html>


More information about the cfe-commits mailing list