diff options
author | Chris Lattner <sabre@nondot.org> | 2003-11-25 20:17:49 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-11-25 20:17:49 +0000 |
commit | c4c6b9e5bc062763578eb63a011f447de1eeddc6 (patch) | |
tree | d87c7dd0b12ad49a4cf3934768213129d316f947 /include/llvm/Support/GetElementPtrTypeIterator.h | |
parent | 9d7c9ea05316bab07b2b83caa357dac220078a65 (diff) | |
download | llvm-c4c6b9e5bc062763578eb63a011f447de1eeddc6.tar.gz llvm-c4c6b9e5bc062763578eb63a011f447de1eeddc6.tar.bz2 llvm-c4c6b9e5bc062763578eb63a011f447de1eeddc6.tar.xz |
Work with gepi's and constant exprs. Also, add versions of iterator ctors that take references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10220 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/GetElementPtrTypeIterator.h')
-rw-r--r-- | include/llvm/Support/GetElementPtrTypeIterator.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/include/llvm/Support/GetElementPtrTypeIterator.h b/include/llvm/Support/GetElementPtrTypeIterator.h index 95f02a8b6a..c1533e07b8 100644 --- a/include/llvm/Support/GetElementPtrTypeIterator.h +++ b/include/llvm/Support/GetElementPtrTypeIterator.h @@ -24,21 +24,21 @@ namespace llvm { : public forward_iterator<const Type *, ptrdiff_t> { typedef forward_iterator<const Type*, ptrdiff_t> super; - GetElementPtrInst *TheGEP; + User *TheGEP; // Either GetElemenPtrInst or ConstantExpr const Type *CurTy; unsigned Operand; gep_type_iterator() {} public: - static gep_type_iterator begin(GetElementPtrInst *gep) { + static gep_type_iterator begin(User *gep) { gep_type_iterator I; I.TheGEP = gep; I.CurTy = gep->getOperand(0)->getType(); I.Operand = 1; return I; } - static gep_type_iterator end(GetElementPtrInst *gep) { + static gep_type_iterator end(User *gep) { gep_type_iterator I; I.TheGEP = gep; I.CurTy = 0; @@ -80,13 +80,20 @@ namespace llvm { } }; - inline gep_type_iterator gep_type_begin(GetElementPtrInst *GEP) { + inline gep_type_iterator gep_type_begin(User *GEP) { return gep_type_iterator::begin(GEP); } - inline gep_type_iterator gep_type_end(GetElementPtrInst *GEP) { + inline gep_type_iterator gep_type_end(User *GEP) { return gep_type_iterator::end(GEP); } + inline gep_type_iterator gep_type_begin(User &GEP) { + return gep_type_iterator::begin(&GEP); + } + + inline gep_type_iterator gep_type_end(User &GEP) { + return gep_type_iterator::end(&GEP); + } } // end namespace llvm #endif |