]> granicus.if.org Git - clang/commitdiff
Add iterator access to field members for RecordDecl.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 8 Aug 2008 13:54:06 +0000 (13:54 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 8 Aug 2008 13:54:06 +0000 (13:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54526 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/Decl.h

index cc512ce2104fa2955b42fcdaa33cc7fe6152e0f3..3b340393cfdd74e3e070a07bc2dbc997f9fa5011 100644 (file)
@@ -823,6 +823,28 @@ public:
   const FieldDecl *getMember(unsigned i) const { return Members[i]; }
   FieldDecl *getMember(unsigned i) { return Members[i]; }
 
+  // Iterator access to field members.
+  typedef FieldDecl **field_iterator;
+  typedef FieldDecl * const *field_const_iterator;
+
+  field_iterator field_begin() {
+    assert(isDefinition() && "Not a definition!");
+    return Members;
+  }
+  field_iterator field_end() {
+    assert(isDefinition() && "Not a definition!");
+    return Members + getNumMembers();
+  }
+
+  field_const_iterator field_begin() const {
+    assert(isDefinition() && "Not a definition!");
+    return Members;
+  }
+  field_const_iterator field_end() const {
+    assert(isDefinition() && "Not a definition!");
+    return Members + getNumMembers();
+  }
+
   /// defineBody - When created, RecordDecl's correspond to a forward declared
   /// record.  This method is used to mark the decl as being defined, with the
   /// specified contents.