diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 0ec64113230..75a27781a90 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -66,10 +66,6 @@ const Type *Method::getReturnType() const { return ((const MethodType *)getType())->getReturnType(); } -const MethodType *Method::getMethodType() const { - return (const MethodType *)getType(); -} - // dropAllReferences() - This function causes all the subinstructions to "let // go" of all references that they are maintaining. This allows one to // 'delete' a whole class at a time, even though there may be circular @@ -88,9 +84,9 @@ void Method::dropAllReferences() { GlobalVariable::GlobalVariable(const Type *Ty, const string &Name = "") : Value(Ty, Value::GlobalVal, Name), Parent(0) { - assert(Ty->isPointerType() && - (!Ty->isPointerType()->isArrayType() || // No unsized array pointers - Ty->isPointerType()->isArrayType()->isSized()) && + assert(Ty->isPointerType() && // No unsized array pointers + (!Ty->dyncastPointerType()->isArrayType() || + Ty->dyncastPointerType()->dyncastArrayType()->isSized()) && "Global Variables must be pointers to a sized type!"); } diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp index d2b23d482d0..3b95fb74e2a 100644 --- a/lib/VMCore/Type.cpp +++ b/lib/VMCore/Type.cpp @@ -115,20 +115,20 @@ static struct TypeType : public Type { // Static 'Type' data //===----------------------------------------------------------------------===// -const Type *Type::VoidTy = new Type("void" , VoidTyID), - *Type::BoolTy = new Type("bool" , BoolTyID), - *Type::SByteTy = new SignedIntType("sbyte" , SByteTyID, 1), - *Type::UByteTy = new UnsignedIntType("ubyte" , UByteTyID, 1), - *Type::ShortTy = new SignedIntType("short" , ShortTyID, 2), - *Type::UShortTy = new UnsignedIntType("ushort", UShortTyID, 2), - *Type::IntTy = new SignedIntType("int" , IntTyID, 4), - *Type::UIntTy = new UnsignedIntType("uint" , UIntTyID, 4), - *Type::LongTy = new SignedIntType("long" , LongTyID, 8), - *Type::ULongTy = new UnsignedIntType("ulong" , ULongTyID, 8), - *Type::FloatTy = new Type("float" , FloatTyID), - *Type::DoubleTy = new Type("double", DoubleTyID), - *Type::TypeTy = &TheTypeType, - *Type::LabelTy = new Type("label" , LabelTyID); +Type *Type::VoidTy = new Type("void" , VoidTyID), + *Type::BoolTy = new Type("bool" , BoolTyID), + *Type::SByteTy = new SignedIntType("sbyte" , SByteTyID, 1), + *Type::UByteTy = new UnsignedIntType("ubyte" , UByteTyID, 1), + *Type::ShortTy = new SignedIntType("short" , ShortTyID, 2), + *Type::UShortTy = new UnsignedIntType("ushort", UShortTyID, 2), + *Type::IntTy = new SignedIntType("int" , IntTyID, 4), + *Type::UIntTy = new UnsignedIntType("uint" , UIntTyID, 4), + *Type::LongTy = new SignedIntType("long" , LongTyID, 8), + *Type::ULongTy = new UnsignedIntType("ulong" , ULongTyID, 8), + *Type::FloatTy = new Type("float" , FloatTyID), + *Type::DoubleTy = new Type("double", DoubleTyID), + *Type::TypeTy = &TheTypeType, + *Type::LabelTy = new Type("label" , LabelTyID); //===----------------------------------------------------------------------===// diff --git a/lib/VMCore/iCall.cpp b/lib/VMCore/iCall.cpp index 22e238a2cfd..13f07d7f578 100644 --- a/lib/VMCore/iCall.cpp +++ b/lib/VMCore/iCall.cpp @@ -15,10 +15,9 @@ CallInst::CallInst(Method *M, const vector ¶ms, Operands.reserve(1+params.size()); Operands.push_back(Use(M, this)); - const MethodType* MT = M->getMethodType(); - const MethodType::ParamTypes &PL = MT->getParamTypes(); + const MethodType::ParamTypes &PL = M->getType()->getParamTypes(); assert((params.size() == PL.size()) || - (MT->isVarArg() && params.size() > PL.size()) && + (M->getType()->isVarArg() && params.size() > PL.size()) && "Calling a function with bad signature"); #ifndef NDEBUG MethodType::ParamTypes::const_iterator It = PL.begin();