Rename DIExpressionIterator to DIExpression::iterator.
authorAdrian Prantl <aprantl@apple.com>
Thu, 22 Jan 2015 16:55:20 +0000 (16:55 +0000)
committerAdrian Prantl <aprantl@apple.com>
Thu, 22 Jan 2015 16:55:20 +0000 (16:55 +0000)
Addresses review feedback from Duncan.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226835 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/DebugInfo.h
lib/CodeGen/AsmPrinter/DwarfExpression.cpp
lib/CodeGen/AsmPrinter/DwarfExpression.h
lib/IR/DebugInfo.cpp

index 7b66e1c2ad5d9379c1e3f9bd0a2b7b7bf281ada5..ebdd32682393f750c97b1462b36c39b9b1e9f752 100644 (file)
@@ -850,8 +850,6 @@ public:
   void printExtendedName(raw_ostream &OS) const;
 };
 
-class DIExpressionIterator;
-
 /// \brief A complex location expression.
 class DIExpression : public DIDescriptor {
   friend class DIDescriptor;
@@ -881,56 +879,55 @@ public:
   /// \brief Return the size of this piece in bytes.
   uint64_t getPieceSize() const;
 
-  DIExpressionIterator begin() const;
-  DIExpressionIterator end() const;
-};
-
-/// \brief An iterator for DIExpression elments.
-class DIExpressionIterator
-    : public std::iterator<std::forward_iterator_tag, StringRef, unsigned,
-                           const uint64_t *, uint64_t> {
-  DIHeaderFieldIterator I;
-  DIExpressionIterator(DIHeaderFieldIterator I) : I(I) {}
-public:
-  DIExpressionIterator() {}
-  DIExpressionIterator(const DIExpression &Expr) : I(++Expr.header_begin()) {}
-  uint64_t operator*() const { return I.getNumber<uint64_t>(); }
-  DIExpressionIterator &operator++() {
-    increment();
-    return *this;
-  }
-  DIExpressionIterator operator++(int) {
-    DIExpressionIterator X(*this);
-    increment();
-    return X;
-  }
-  bool operator==(const DIExpressionIterator &X) const {
-    return I == X.I;
-  }
-  bool operator!=(const DIExpressionIterator &X) const {
-    return !(*this == X);
-  }
-
-  uint64_t getArg(unsigned N) const {
-    auto In = I;
-    std::advance(In, N);
-    return In.getNumber<uint64_t>();
-  }
-
-  const DIHeaderFieldIterator& getBase() const { return I; }
-
-private:
-  void increment() {
-    switch (**this) {
-    case dwarf::DW_OP_piece: std::advance(I, 3); break;
-    case dwarf::DW_OP_plus:  std::advance(I, 2); break;
-    case dwarf::DW_OP_deref: std::advance(I, 1); break;
-    default:
-      assert("unsupported operand");
+  /// \brief An iterator for DIExpression elements.
+  class iterator
+      : public std::iterator<std::forward_iterator_tag, StringRef, unsigned,
+                             const uint64_t *, uint64_t> {
+    DIHeaderFieldIterator I;
+    iterator(DIHeaderFieldIterator I) : I(I) {}
+  public:
+    iterator() {}
+    iterator(const DIExpression &Expr) : I(++Expr.header_begin()) {}
+    uint64_t operator*() const { return I.getNumber<uint64_t>(); }
+    iterator &operator++() {
+      increment();
+      return *this;
     }
-  }
-};
+    iterator operator++(int) {
+      iterator X(*this);
+      increment();
+      return X;
+    }
+    bool operator==(const iterator &X) const {
+      return I == X.I;
+    }
+    bool operator!=(const iterator &X) const {
+      return !(*this == X);
+    }
+   
+    uint64_t getArg(unsigned N) const {
+      auto In = I;
+      std::advance(In, N);
+      return In.getNumber<uint64_t>();
+    }
+   
+    const DIHeaderFieldIterator& getBase() const { return I; }
+   
+  private:
+    void increment() {
+      switch (**this) {
+      case dwarf::DW_OP_piece: std::advance(I, 3); break;
+      case dwarf::DW_OP_plus:  std::advance(I, 2); break;
+      case dwarf::DW_OP_deref: std::advance(I, 1); break;
+      default:
+        assert("unsupported operand");
+      }
+    }
+  };
 
+  iterator begin() const;
+  iterator end() const;
+};
 
 /// \brief This object holds location information.
 ///
index d1b648ffabca5bccd04a311ed63295c279bc7af3..eb101ca2dcbbeee70ee45ee63f284a560e39d43b 100644 (file)
@@ -242,9 +242,9 @@ bool DwarfExpression::AddMachineRegExpression(DIExpression Expr,
   return true;
 }
 
-void DwarfExpression::AddExpression(DIExpressionIterator I,
+void DwarfExpression::AddExpression(DIExpression::iterator I,
                                     unsigned PieceOffsetInBits) {
 for (; I != DIExpressionIterator(); ++I) {
for (; I != DIExpression::iterator(); ++I) {
     switch (*I) {
     case dwarf::DW_OP_piece: {
       unsigned SizeOfByte = 8;
index 11db59eadb04992ac96f03a3e191f1d95b9a0b88..14e07fcdb98ba41b8b0b3c35a0a25ac93fc4401f 100644 (file)
@@ -96,7 +96,7 @@ public:
   /// Emit a the operations remaining the DIExpressionIterator I.
   /// \param PieceOffsetInBits If this is one piece out of a fragmented
   /// location, this is the offset of the piece inside the entire variable.
-  void AddExpression(DIExpressionIterator I, unsigned PieceOffsetInBits = 0);
+void AddExpression(DIExpression::iterator I, unsigned PieceOffsetInBits = 0);
 };
 
 /// DwarfExpression implementation for .debug_loc entries.
index f7892dd3497b43879a6f166081d0d06f476c7ad0..da77c9bb6f98a668d466f6c1c532710756ec0b6c 100644 (file)
@@ -162,12 +162,12 @@ uint64_t DIExpression::getPieceSize() const {
   return getElement(getNumElements()-1);
 }
 
-DIExpressionIterator DIExpression::begin() const {
 return DIExpressionIterator(*this);
+DIExpression::iterator DIExpression::begin() const {
return DIExpression::iterator(*this);
 }
 
-DIExpressionIterator DIExpression::end() const {
 return DIExpressionIterator();
+DIExpression::iterator DIExpression::end() const {
return DIExpression::iterator();
 }
 
 //===----------------------------------------------------------------------===//