]> granicus.if.org Git - clang/commitdiff
Add const_decl_iterator to DecStmt.
authorTed Kremenek <kremenek@apple.com>
Mon, 6 Oct 2008 18:35:55 +0000 (18:35 +0000)
committerTed Kremenek <kremenek@apple.com>
Mon, 6 Oct 2008 18:35:55 +0000 (18:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57186 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/Stmt.h

index d8cf087ea1ce1b0f0f81a0a9e92a973359dc3c99..20b01cec5571a89d0e40447cbb97ee5235804f98 100644 (file)
@@ -180,6 +180,29 @@ public:
   virtual decl_iterator decl_begin() { return TheDecl; }
   virtual decl_iterator decl_end() { return 0; }
   
+  class const_decl_iterator {
+    decl_iterator Impl;
+  public:
+    const_decl_iterator(const ScopedDecl *d)
+      : Impl(const_cast<ScopedDecl*>(d)) {}
+    
+    bool operator==(const const_decl_iterator& I) const {
+      return Impl == I.Impl;
+    }
+    bool operator!=(const const_decl_iterator& I) const {
+      return Impl != I.Impl;
+    }
+    const ScopedDecl* operator*() const {
+      return *Impl;
+    }
+    const_decl_iterator& operator++() {
+      ++Impl; return *this;
+    }
+  };
+  
+  const_decl_iterator decl_begin() const { return TheDecl; }
+  const_decl_iterator decl_end() const { return 0; }
+  
   // Serialization.  
   virtual void EmitImpl(llvm::Serializer& S) const;
   static DeclStmt* CreateImpl(llvm::Deserializer& D, ASTContext& C);