diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-07-18 17:09:36 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-07-18 17:09:36 +0000 |
commit | 5733e3512b833c48c77e95f18c7148e2a7042832 (patch) | |
tree | e53b0bdd71f1768353933e42e95b8a69ed67e7d4 /clang/lib | |
parent | 8c81678dfa8e992d42b56012c9d8592908167fe5 (diff) | |
download | bcm5719-llvm-5733e3512b833c48c77e95f18c7148e2a7042832.tar.gz bcm5719-llvm-5733e3512b833c48c77e95f18c7148e2a7042832.zip |
[AST] Remove StmtRange in favor of an iterator_range.
StmtRange was just a convenient wrapper for two StmtIterators before
we had real range support. This removes some of the implicit conversions
StmtRange had leading to slightly more verbose code but also should make
more obvious what's going on. No functional change intended.
llvm-svn: 242615
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp | 8 | ||||
-rw-r--r-- | clang/lib/AST/Expr.cpp | 4 | ||||
-rw-r--r-- | clang/lib/AST/Stmt.cpp | 2 | ||||
-rw-r--r-- | clang/lib/AST/StmtPrinter.cpp | 11 | ||||
-rw-r--r-- | clang/lib/Analysis/CFG.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Sema/SemaOpenMP.cpp | 8 |
6 files changed, 17 insertions, 19 deletions
diff --git a/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp b/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp index 7db1a1c378c..fbbd0bf641b 100644 --- a/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp +++ b/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp @@ -359,16 +359,16 @@ private: return; Stmt::child_range StmtExprChild = StmtE->children(); - if (!StmtExprChild) + if (StmtExprChild.begin() == StmtExprChild.end()) return; - CompoundStmt *CompS = dyn_cast_or_null<CompoundStmt>(*StmtExprChild); + auto *CompS = dyn_cast_or_null<CompoundStmt>(*StmtExprChild.begin()); if (!CompS) return; Stmt::child_range CompStmtChild = CompS->children(); - if (!CompStmtChild) + if (CompStmtChild.begin() == CompStmtChild.end()) return; - DeclStmt *DeclS = dyn_cast_or_null<DeclStmt>(*CompStmtChild); + auto *DeclS = dyn_cast_or_null<DeclStmt>(*CompStmtChild.begin()); if (!DeclS) return; if (!DeclS->isSingleDecl()) diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 5ee06b3666d..55fc6a3f916 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -3891,7 +3891,7 @@ DesignatedInitExpr::DesignatedInitExpr(const ASTContext &C, QualType Ty, this->Designators = new (C) Designator[NumDesignators]; // Record the initializer itself. - child_range Child = children(); + child_iterator Child = child_begin(); *Child++ = Init; // Copy the designators and their subexpressions, computing @@ -4175,7 +4175,7 @@ Stmt::child_range UnaryExprOrTypeTraitExpr::children() { if (const VariableArrayType* T = dyn_cast<VariableArrayType>( getArgumentType().getTypePtr())) return child_range(child_iterator(T), child_iterator()); - return child_range(); + return child_range(child_iterator(), child_iterator()); } return child_range(&Argument.Ex, &Argument.Ex + 1); } diff --git a/clang/lib/AST/Stmt.cpp b/clang/lib/AST/Stmt.cpp index 80b6be88a3e..78cbc7d7932 100644 --- a/clang/lib/AST/Stmt.cpp +++ b/clang/lib/AST/Stmt.cpp @@ -1171,7 +1171,7 @@ bool CapturedStmt::capturesVariable(const VarDecl *Var) const { return false; } -StmtRange OMPClause::children() { +OMPClause::child_range OMPClause::children() { switch(getClauseKind()) { default : break; #define OPENMP_CLAUSE(Name, Class) \ diff --git a/clang/lib/AST/StmtPrinter.cpp b/clang/lib/AST/StmtPrinter.cpp index 8870c67c746..df21d7bad63 100644 --- a/clang/lib/AST/StmtPrinter.cpp +++ b/clang/lib/AST/StmtPrinter.cpp @@ -2129,14 +2129,11 @@ void StmtPrinter::VisitObjCBoxedExpr(ObjCBoxedExpr *E) { void StmtPrinter::VisitObjCArrayLiteral(ObjCArrayLiteral *E) { OS << "@[ "; - StmtRange ch = E->children(); - if (ch.first != ch.second) { - while (1) { - Visit(*ch.first); - ++ch.first; - if (ch.first == ch.second) break; + ObjCArrayLiteral::child_range Ch = E->children(); + for (auto I = Ch.begin(), E = Ch.end(); I != E; ++I) { + if (I != Ch.begin()) OS << ", "; - } + Visit(*I); } OS << " ]"; } diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp index 54d15bd232a..73b6fc6c3c8 100644 --- a/clang/lib/Analysis/CFG.cpp +++ b/clang/lib/Analysis/CFG.cpp @@ -4128,7 +4128,8 @@ static void print_elem(raw_ostream &OS, StmtPrinterHelper &Helper, if (const StmtExpr *SE = dyn_cast<StmtExpr>(S)) { const CompoundStmt *Sub = SE->getSubStmt(); - if (Sub->children()) { + auto Children = Sub->children(); + if (Children.begin() != Children.end()) { OS << "({ ... ; "; Helper.handledStmt(*SE->getSubStmt()->body_rbegin(),OS); OS << " })\n"; diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index e11ab82f88c..90b8f712af7 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -3377,11 +3377,11 @@ StmtResult Sema::ActOnOpenMPSectionsDirective(ArrayRef<OMPClause *> Clauses, BaseStmt = CS->getCapturedStmt(); if (auto C = dyn_cast_or_null<CompoundStmt>(BaseStmt)) { auto S = C->children(); - if (!S) + if (S.begin() == S.end()) return StmtError(); // All associated statements must be '#pragma omp section' except for // the first one. - for (Stmt *SectionStmt : ++S) { + for (Stmt *SectionStmt : llvm::make_range(std::next(S.begin()), S.end())) { if (!SectionStmt || !isa<OMPSectionDirective>(SectionStmt)) { if (SectionStmt) Diag(SectionStmt->getLocStart(), @@ -3535,11 +3535,11 @@ Sema::ActOnOpenMPParallelSectionsDirective(ArrayRef<OMPClause *> Clauses, BaseStmt = CS->getCapturedStmt(); if (auto C = dyn_cast_or_null<CompoundStmt>(BaseStmt)) { auto S = C->children(); - if (!S) + if (S.begin() == S.end()) return StmtError(); // All associated statements must be '#pragma omp section' except for // the first one. - for (Stmt *SectionStmt : ++S) { + for (Stmt *SectionStmt : llvm::make_range(std::next(S.begin()), S.end())) { if (!SectionStmt || !isa<OMPSectionDirective>(SectionStmt)) { if (SectionStmt) Diag(SectionStmt->getLocStart(), |