Implement getPrimitiveSize()

don't use isPointerType()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2485 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-05-06 16:14:39 +00:00
parent 3f5b877dd4
commit d44023ecb7

View File

@ -87,8 +87,8 @@ const Type *Type::getPrimitiveType(PrimitiveID IDNumber) {
//
bool Type::isLosslesslyConvertableTo(const Type *Ty) const {
if (this == Ty) return true;
if ((!isPrimitiveType() && !isPointerType()) ||
(!Ty->isPointerType() && !Ty->isPrimitiveType())) return false;
if ((!isPrimitiveType() && !isa<PointerType>(this)) ||
(!isa<PointerType>(Ty) && !Ty->isPrimitiveType())) return false;
if (getPrimitiveID() == Ty->getPrimitiveID())
return true; // Handles identity cast, and cast of differing pointer types
@ -110,6 +110,18 @@ bool Type::isLosslesslyConvertableTo(const Type *Ty) const {
}
}
// getPrimitiveSize - Return the basic size of this type if it is a primative
// type. These are fixed by LLVM and are not target dependant. This will
// return zero if the type does not have a size or is not a primitive type.
//
unsigned Type::getPrimitiveSize() const {
switch (getPrimitiveID()) {
#define HANDLE_PRIM_TYPE(TY,SIZE) case TY##TyID: return SIZE;
#include "llvm/Type.def"
default: return 0;
}
}
bool StructType::indexValid(const Value *V) const {
if (!isa<Constant>(V)) return false;