/// the element.
///
virtual const Type *getTypeAtIndex(const Value *V) const = 0;
+ virtual const Type *getTypeAtIndex(unsigned Idx) const = 0;
virtual bool indexValid(const Value *V) const = 0;
+ virtual bool indexValid(unsigned Idx) const = 0;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const CompositeType *) { return true; }
/// getTypeAtIndex - Given an index value into the type, return the type of
/// the element. For a structure type, this must be a constant value...
///
- virtual const Type *getTypeAtIndex(const Value *V) const ;
+ virtual const Type *getTypeAtIndex(const Value *V) const;
+ virtual const Type *getTypeAtIndex(unsigned Idx) const;
virtual bool indexValid(const Value *V) const;
+ virtual bool indexValid(unsigned Idx) const;
// Implement the AbstractTypeUser interface.
virtual void refineAbstractType(const DerivedType *OldTy, const Type *NewTy);
inline const Type *getElementType() const { return ContainedTys[0]; }
virtual bool indexValid(const Value *V) const;
+ virtual bool indexValid(unsigned Idx) const {
+ return true;
+ }
/// getTypeAtIndex - Given an index value into the type, return the type of
/// the element. For sequential types, there is only one subtype...
virtual const Type *getTypeAtIndex(const Value *) const {
return ContainedTys[0];
}
+ virtual const Type *getTypeAtIndex(unsigned Idx) const {
+ return ContainedTys[0];
+ }
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const SequentialType *) { return true; }