Switch iterator pointer/reference typedefs to void

Bug: none
Test: treehugger
Change-Id: I589cc36a95e505c3c356ad245dd03286680aa4f7
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index a44e349..3f60ec5 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -2199,8 +2199,8 @@
   using iterator_category = std::forward_iterator_tag;
   using value_type = HEnvironment*;
   using difference_type = ptrdiff_t;
-  using pointer = value_type*;
-  using reference = value_type&;
+  using pointer = void;
+  using reference = void;
 
   explicit HEnvironmentIterator(HEnvironment* cur) : cur_(cur) {}
 
@@ -2925,8 +2925,8 @@
   using iterator_category = std::forward_iterator_tag;
   using value_type = HInstruction*;
   using difference_type = ptrdiff_t;
-  using pointer = value_type*;
-  using reference = value_type&;
+  using pointer = void;
+  using reference = void;
 
   static_assert(std::is_same_v<InnerIter, HBackwardInstructionIterator> ||
                     std::is_same_v<InnerIter, HInstructionIterator> ||
diff --git a/libartbase/base/stl_util.h b/libartbase/base/stl_util.h
index cb3e4cb..87b6d4b 100644
--- a/libartbase/base/stl_util.h
+++ b/libartbase/base/stl_util.h
@@ -161,8 +161,8 @@
   using iterator_category = std::forward_iterator_tag;
   using value_type = std::pair<typename IterLeft::value_type, typename IterRight::value_type>;
   using difference_type = ptrdiff_t;
-  using pointer = value_type*;
-  using reference = value_type&;
+  using pointer = void;
+  using reference = void;
 
   ZipLeftIter(IterLeft left, IterRight right) : left_iter_(left), right_iter_(right) {}
   ZipLeftIter<IterLeft, IterRight>& operator++() {
@@ -253,8 +253,8 @@
   using iterator_category = std::forward_iterator_tag;
   using value_type = typename RealIter::value_type;
   using difference_type = ptrdiff_t;
-  using pointer = value_type*;
-  using reference = value_type&;
+  using pointer = typename RealIter::pointer;
+  using reference = typename RealIter::reference;
 
   FilterIterator(RealIter rl,
                  Filter cond,
@@ -343,8 +343,8 @@
   using iterator_category = std::forward_iterator_tag;
   using value_type = std::string_view;
   using difference_type = ptrdiff_t;
-  using pointer = value_type*;
-  using reference = value_type&;
+  using pointer = void;
+  using reference = void;
 
   // Direct iterator constructor. The iteration state is only the current index.
   // We use that with the split char and the full string to get the current and
diff --git a/libdexfile/dex/class_iterator.h b/libdexfile/dex/class_iterator.h
index 56913a9..c7817f7 100644
--- a/libdexfile/dex/class_iterator.h
+++ b/libdexfile/dex/class_iterator.h
@@ -46,8 +46,8 @@
   using iterator_category = std::forward_iterator_tag;
   using value_type = ClassIteratorData;
   using difference_type = ptrdiff_t;
-  using pointer = value_type*;
-  using reference = value_type&;
+  using pointer = void;
+  using reference = void;
 
   ClassIterator(const DexFile& dex_file, uint32_t class_def_idx)
       : data_(dex_file, class_def_idx) {}
diff --git a/libdexfile/dex/dex_instruction_iterator.h b/libdexfile/dex/dex_instruction_iterator.h
index 6f661d9..da494e1 100644
--- a/libdexfile/dex/dex_instruction_iterator.h
+++ b/libdexfile/dex/dex_instruction_iterator.h
@@ -62,8 +62,8 @@
   using iterator_category = std::forward_iterator_tag;
   using value_type = DexInstructionPcPair;
   using difference_type = ptrdiff_t;
-  using pointer = value_type*;
-  using reference = value_type&;
+  using pointer = void;
+  using reference = void;
 
   explicit DexInstructionIteratorBase(const Instruction* inst, uint32_t dex_pc)
       : data_(reinterpret_cast<const uint16_t*>(inst), dex_pc) {}