diff options
Diffstat (limited to 'clang-tools-extra/clang-tidy')
3 files changed, 11 insertions, 8 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp index 168afade8fc..c09e3278589 100644 --- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp @@ -353,10 +353,12 @@ static StringRef getStringFromRange(SourceManager &SourceMgr, } /// \brief If the given expression is actually a DeclRefExpr, find and return -/// the underlying VarDecl; otherwise, return NULL. -static const VarDecl *getReferencedVariable(const Expr *E) { +/// the underlying ValueDecl; otherwise, return NULL. +static const ValueDecl *getReferencedVariable(const Expr *E) { if (const DeclRefExpr *DRE = getDeclRef(E)) return dyn_cast<VarDecl>(DRE->getDecl()); + if (const auto *Mem = dyn_cast<MemberExpr>(E)) + return dyn_cast<FieldDecl>(Mem->getMemberDecl()); return nullptr; } @@ -500,9 +502,10 @@ void LoopConvertCheck::getAliasRange(SourceManager &SM, SourceRange &Range) { /// \brief Computes the changes needed to convert a given for loop, and /// applies them. void LoopConvertCheck::doConversion( - ASTContext *Context, const VarDecl *IndexVar, const VarDecl *MaybeContainer, - const UsageResult &Usages, const DeclStmt *AliasDecl, bool AliasUseRequired, - bool AliasFromForInit, const ForStmt *Loop, RangeDescriptor Descriptor) { + ASTContext *Context, const VarDecl *IndexVar, + const ValueDecl *MaybeContainer, const UsageResult &Usages, + const DeclStmt *AliasDecl, bool AliasUseRequired, bool AliasFromForInit, + const ForStmt *Loop, RangeDescriptor Descriptor) { auto Diag = diag(Loop->getForLoc(), "use range-based for loop instead"); std::string VarName; diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h index b8288591ae0..75ab25aa122 100644 --- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h +++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.h @@ -37,7 +37,7 @@ private: void getAliasRange(SourceManager &SM, SourceRange &DeclRange); void doConversion(ASTContext *Context, const VarDecl *IndexVar, - const VarDecl *MaybeContainer, const UsageResult &Usages, + const ValueDecl *MaybeContainer, const UsageResult &Usages, const DeclStmt *AliasDecl, bool AliasUseRequired, bool AliasFromForInit, const ForStmt *Loop, RangeDescriptor Descriptor); diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.h b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.h index 01f85099a3a..4a6df187164 100644 --- a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.h +++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.h @@ -425,7 +425,7 @@ public: VariableNamer(StmtGeneratedVarNameMap *GeneratedDecls, const StmtParentMap *ReverseAST, const clang::Stmt *SourceStmt, const clang::VarDecl *OldIndex, - const clang::VarDecl *TheContainer, + const clang::ValueDecl *TheContainer, const clang::ASTContext *Context, NamingStyle Style) : GeneratedDecls(GeneratedDecls), ReverseAST(ReverseAST), SourceStmt(SourceStmt), OldIndex(OldIndex), TheContainer(TheContainer), @@ -443,7 +443,7 @@ private: const StmtParentMap *ReverseAST; const clang::Stmt *SourceStmt; const clang::VarDecl *OldIndex; - const clang::VarDecl *TheContainer; + const clang::ValueDecl *TheContainer; const clang::ASTContext *Context; const NamingStyle Style; |