#ifndef LLVM_IR_GETELEMENTPTRTYPEITERATOR_H
#define LLVM_IR_GETELEMENTPTRTYPEITERATOR_H
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/User.h"
#include "llvm/Support/Casting.h"
#include <cstddef>
#include <cstdint>
#include <iterator>
namespace llvm {
template <typename ItTy = User::const_op_iterator>
class generic_gep_type_iterator { … };
gep_type_iterator;
inline gep_type_iterator gep_type_begin(const User *GEP) { … }
inline gep_type_iterator gep_type_end(const User *GEP) { … }
inline gep_type_iterator gep_type_begin(const User &GEP) { … }
inline gep_type_iterator gep_type_end(const User &GEP) { … }
template<typename T>
inline generic_gep_type_iterator<const T *>
gep_type_begin(Type *Op0, ArrayRef<T> A) { … }
template<typename T>
inline generic_gep_type_iterator<const T *>
gep_type_end(Type * , ArrayRef<T> A) { … }
}
#endif