--- libclamav/c++/llvm/include/llvm/Support/CFG.h.orig 2016-04-22 15:02:19 UTC +++ libclamav/c++/llvm/include/llvm/Support/CFG.h @@ -27,8 +27,9 @@ namespace llvm { template // Predecessor Iterator class PredIterator : public std::iterator { - typedef std::iterator super; + Ptr, ptrdiff_t, Ptr*, Ptr*> { + typedef std::iterator super; typedef PredIterator Self; USE_iterator It; @@ -40,6 +41,7 @@ class PredIterator : public std::iteratoruse_begin()) { advancePastNonTerminators(); @@ -49,7 +51,7 @@ class PredIterator : public std::iterator(*It)->getParent(); } @@ -87,10 +89,11 @@ inline const_pred_iterator pred_end(const BasicBlock * template // Successor Iterator class SuccIterator : public std::iterator { + BB_, ptrdiff_t, BB_*, BB_*> { const Term_ Term; unsigned idx; - typedef std::iterator super; + typedef std::iterator super; typedef SuccIterator Self; inline bool index_is_valid(int idx) { @@ -99,6 +102,7 @@ class SuccIterator : public std::iteratorgetSuccessor(idx); } + inline reference operator*() const { return Term->getSuccessor(idx); } inline pointer operator->() const { return operator*(); } inline Self& operator++() { ++idx; return *this; } // Preincrement