Author: hans Date: Mon Aug 15 11:32:18 2016 New Revision: 278678 URL: http://llvm.org/viewvc/llvm-project?rev=278678&view=rev Log: Merging r277783 and r278156 to unbreak Clang on the branch after r278674
------------------------------------------------------------------------ r277783 | timshen | 2016-08-04 16:03:44 -0700 (Thu, 04 Aug 2016) | 9 lines [ADT] Migrate DepthFirstIterator to use NodeRef Summary: The corresponding LLVM change is D23146. Reviewers: dblaikie, chandlerc Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D23147 ------------------------------------------------------------------------ ------------------------------------------------------------------------ r278156 | timshen | 2016-08-09 13:22:55 -0700 (Tue, 09 Aug 2016) | 16 lines [ADT] Change iterator_adaptor_base's default template arguments to forward more underlying typedefs Summary: The corresponding LLVM change: D23217. LazyVector::iterator breaks, because int isn't an iterator type. Since iterator_adaptor_base shouldn't be blamed to break at the call to iterator_traits<int>::xxx, I'd rather "fix" LazyVector::iterator. The perfect solution is to model "relative pointer", but it's beyond the goal of this patch. Reviewers: chandlerc, bkramer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D23218 ------------------------------------------------------------------------ Modified: cfe/branches/release_39/ (props changed) cfe/branches/release_39/include/clang/AST/ExternalASTSource.h cfe/branches/release_39/include/clang/AST/StmtGraphTraits.h cfe/branches/release_39/include/clang/Analysis/Analyses/Dominators.h cfe/branches/release_39/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h Propchange: cfe/branches/release_39/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Aug 15 11:32:18 2016 @@ -1,4 +1,4 @@ /cfe/branches/type-system-rewrite:134693-134817 -/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276900,276979,276983,277095,277138,277141,277221,277307,277522,277743,277796-277797,277866,277889,277900,278139,278234-278235,278393,278395 +/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276900,276979,276983,277095,277138,277141,277221,277307,277522,277743,277783,277796-277797,277866,277889,277900,278139,278156,278234-278235,278393,278395 /cfe/trunk/test:170344 /cfe/trunk/test/SemaTemplate:126920 Modified: cfe/branches/release_39/include/clang/AST/ExternalASTSource.h URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/include/clang/AST/ExternalASTSource.h?rev=278678&r1=278677&r2=278678&view=diff ============================================================================== --- cfe/branches/release_39/include/clang/AST/ExternalASTSource.h (original) +++ cfe/branches/release_39/include/clang/AST/ExternalASTSource.h Mon Aug 15 11:32:18 2016 @@ -503,8 +503,9 @@ public: /// We define this as a wrapping iterator around an int. The /// iterator_adaptor_base class forwards the iterator methods to basic integer /// arithmetic. - class iterator : public llvm::iterator_adaptor_base< - iterator, int, std::random_access_iterator_tag, T, int> { + class iterator + : public llvm::iterator_adaptor_base< + iterator, int, std::random_access_iterator_tag, T, int, T *, T &> { LazyVector *Self; iterator(LazyVector *Self, int Position) Modified: cfe/branches/release_39/include/clang/AST/StmtGraphTraits.h URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/include/clang/AST/StmtGraphTraits.h?rev=278678&r1=278677&r2=278678&view=diff ============================================================================== --- cfe/branches/release_39/include/clang/AST/StmtGraphTraits.h (original) +++ cfe/branches/release_39/include/clang/AST/StmtGraphTraits.h Mon Aug 15 11:32:18 2016 @@ -26,6 +26,7 @@ namespace llvm { template <> struct GraphTraits<clang::Stmt*> { typedef clang::Stmt NodeType; + typedef clang::Stmt * NodeRef; typedef clang::Stmt::child_iterator ChildIteratorType; typedef llvm::df_iterator<clang::Stmt*> nodes_iterator; @@ -53,6 +54,7 @@ template <> struct GraphTraits<clang::St template <> struct GraphTraits<const clang::Stmt*> { typedef const clang::Stmt NodeType; + typedef const clang::Stmt * NodeRef; typedef clang::Stmt::const_child_iterator ChildIteratorType; typedef llvm::df_iterator<const clang::Stmt*> nodes_iterator; Modified: cfe/branches/release_39/include/clang/Analysis/Analyses/Dominators.h URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/include/clang/Analysis/Analyses/Dominators.h?rev=278678&r1=278677&r2=278678&view=diff ============================================================================== --- cfe/branches/release_39/include/clang/Analysis/Analyses/Dominators.h (original) +++ cfe/branches/release_39/include/clang/Analysis/Analyses/Dominators.h Mon Aug 15 11:32:18 2016 @@ -168,6 +168,7 @@ private: namespace llvm { template <> struct GraphTraits< ::clang::DomTreeNode* > { typedef ::clang::DomTreeNode NodeType; + typedef ::clang::DomTreeNode *NodeRef; typedef NodeType::iterator ChildIteratorType; static NodeType *getEntryNode(NodeType *N) { Modified: cfe/branches/release_39/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h?rev=278678&r1=278677&r2=278678&view=diff ============================================================================== --- cfe/branches/release_39/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h (original) +++ cfe/branches/release_39/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h Mon Aug 15 11:32:18 2016 @@ -452,6 +452,7 @@ public: namespace llvm { template<> struct GraphTraits<clang::ento::ExplodedNode*> { typedef clang::ento::ExplodedNode NodeType; + typedef clang::ento::ExplodedNode *NodeRef; typedef NodeType::succ_iterator ChildIteratorType; typedef llvm::df_iterator<NodeType*> nodes_iterator; @@ -478,6 +479,7 @@ namespace llvm { template<> struct GraphTraits<const clang::ento::ExplodedNode*> { typedef const clang::ento::ExplodedNode NodeType; + typedef const clang::ento::ExplodedNode *NodeRef; typedef NodeType::const_succ_iterator ChildIteratorType; typedef llvm::df_iterator<NodeType*> nodes_iterator; _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits