From: Ted Kremenek Date: Mon, 15 Nov 2010 20:54:24 +0000 (+0000) Subject: Add method ParentMap::addStmt(). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d6543f8bbac18cdb678a67da2a676c30c2941eca;p=clang Add method ParentMap::addStmt(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119181 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/ParentMap.h b/include/clang/AST/ParentMap.h index f826e1117b..600321268e 100644 --- a/include/clang/AST/ParentMap.h +++ b/include/clang/AST/ParentMap.h @@ -24,6 +24,11 @@ public: ParentMap(Stmt* ASTRoot); ~ParentMap(); + /// \brief Adds and/or updates the parent/child-relations of the complete + /// stmt tree of S. All children of S including indirect descendants are + /// visited and updated or inserted but not the parents of S. + void addStmt(Stmt* S); + Stmt *getParent(Stmt*) const; Stmt *getParentIgnoreParens(Stmt *) const; diff --git a/lib/AST/ParentMap.cpp b/lib/AST/ParentMap.cpp index 5fe873acf7..21847f2821 100644 --- a/lib/AST/ParentMap.cpp +++ b/lib/AST/ParentMap.cpp @@ -40,6 +40,12 @@ ParentMap::~ParentMap() { delete (MapTy*) Impl; } +void ParentMap::addStmt(Stmt* S) { + if (S) { + BuildParentMap(*(MapTy*) Impl, S); + } +} + Stmt* ParentMap::getParent(Stmt* S) const { MapTy* M = (MapTy*) Impl; MapTy::iterator I = M->find(S);