#define LLVM_SUPPORT_POSTORDER_ITERATOR_H
#include "Support/GraphTraits.h"
-#include <iterator>
+#include <Support/iterator>
#include <stack>
#include <set>
template<class GraphT, class GT = GraphTraits<GraphT> >
-class po_iterator : public std::forward_iterator<typename GT::NodeType,
- ptrdiff_t> {
+class po_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t> {
+ typedef forward_iterator<typename GT::NodeType, ptrdiff_t> super;
+ typedef typename super::pointer pointer;
typedef typename GT::NodeType NodeType;
typedef typename GT::ChildIteratorType ChildItTy;
copy(po_begin(BB), po_end(BB), back_inserter(Blocks));
}
public:
- typedef std::vector<NodeType*>::reverse_iterator rpo_iterator;
+ typedef typename std::vector<NodeType*>::reverse_iterator rpo_iterator;
inline ReversePostOrderTraversal(GraphT G) {
Initialize(GT::getEntryNode(G));