[PATCH] D49679: [DebugInfo] Have custom std::reverse_iterator<DWARFDie>

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 27 11:07:46 PDT 2018


dblaikie added a comment.

(probably a separate patch) Wonder if we could have a specialization of llvm::reverse that detects whether the underlying range has 'rbegin/rend' functions and use those, rather than making reverse iterators out of end/begin. That way reverse(die) would work correctly.



================
Comment at: llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h:393-394
+
+bool operator==(const reverse_iterator<llvm::DWARFDie::iterator> &LHS,
+                const reverse_iterator<llvm::DWARFDie::iterator> &RHS);
+template <>
----------------
/looks/ to me like this declaration isn't needed? I don't see any use of it in the specialization/before the op== definition later.


================
Comment at: llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h:397-402
+    : public iterator<
+          typename iterator_traits<llvm::DWARFDie::iterator>::iterator_category,
+          typename iterator_traits<llvm::DWARFDie::iterator>::value_type,
+          typename iterator_traits<llvm::DWARFDie::iterator>::difference_type,
+          typename iterator_traits<llvm::DWARFDie::iterator>::pointer,
+          typename iterator_traits<llvm::DWARFDie::iterator>::reference> {
----------------
Any chance of using llvm's iterator_facade here, might simplify things a bit?


================
Comment at: llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h:447-456
+inline bool operator==(const reverse_iterator<llvm::DWARFDie::iterator> &LHS,
+                       const reverse_iterator<llvm::DWARFDie::iterator> &RHS) {
+  return LHS.equals(RHS);
+}
+
+inline bool operator!=(const reverse_iterator<llvm::DWARFDie::iterator> &LHS,
+                       const reverse_iterator<llvm::DWARFDie::iterator> &RHS) {
----------------
I wonder if these should go in the llvm namespace (they'd still be found by ADL, I think) rather than here in the std namespace?


https://reviews.llvm.org/D49679





More information about the llvm-commits mailing list