summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/ADT/ilist_iterator.h16
-rw-r--r--llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h14
2 files changed, 12 insertions, 18 deletions
diff --git a/llvm/include/llvm/ADT/ilist_iterator.h b/llvm/include/llvm/ADT/ilist_iterator.h
index 67c9fa79344..d106d0c6221 100644
--- a/llvm/include/llvm/ADT/ilist_iterator.h
+++ b/llvm/include/llvm/ADT/ilist_iterator.h
@@ -47,17 +47,13 @@ template <> struct IteratorHelper<true> {
} // end namespace ilist_detail
/// Iterator for intrusive lists based on ilist_node.
-template <typename NodeTy, bool IsReverse>
-class ilist_iterator
- : public std::iterator<std::bidirectional_iterator_tag, NodeTy, ptrdiff_t> {
+template <typename NodeTy, bool IsReverse> class ilist_iterator {
public:
- typedef std::iterator<std::bidirectional_iterator_tag, NodeTy, ptrdiff_t>
- super;
-
- typedef typename super::value_type value_type;
- typedef typename super::difference_type difference_type;
- typedef typename super::pointer pointer;
- typedef typename super::reference reference;
+ typedef NodeTy value_type;
+ typedef value_type *pointer;
+ typedef value_type &reference;
+ typedef ptrdiff_t difference_type;
+ typedef std::bidirectional_iterator_tag iterator_category;
typedef typename std::add_const<value_type>::type *const_pointer;
typedef typename std::add_const<value_type>::type &const_reference;
diff --git a/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h b/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
index f493dbc5e36..ac09d26a439 100644
--- a/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
+++ b/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
@@ -21,18 +21,16 @@ namespace llvm {
/// MachineBasicBlock iterator that automatically skips over MIs that are
/// inside bundles (i.e. walk top level MIs only).
-template <typename Ty>
-class MachineInstrBundleIterator
- : public std::iterator<std::bidirectional_iterator_tag, Ty, ptrdiff_t> {
- typedef std::iterator<std::bidirectional_iterator_tag, Ty, ptrdiff_t> super;
+template <typename Ty> class MachineInstrBundleIterator {
typedef ilist_iterator<Ty> instr_iterator;
instr_iterator MII;
public:
- typedef typename super::value_type value_type;
- typedef typename super::difference_type difference_type;
- typedef typename super::pointer pointer;
- typedef typename super::reference reference;
+ typedef typename instr_iterator::value_type value_type;
+ typedef typename instr_iterator::difference_type difference_type;
+ typedef typename instr_iterator::pointer pointer;
+ typedef typename instr_iterator::reference reference;
+ typedef std::bidirectional_iterator_tag iterator_category;
typedef typename instr_iterator::const_pointer const_pointer;
typedef typename instr_iterator::const_reference const_reference;
OpenPOWER on IntegriCloud