diff options
-rw-r--r-- | lib/Transforms/IPO/MutateStructTypes.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Transforms/IPO/MutateStructTypes.cpp b/lib/Transforms/IPO/MutateStructTypes.cpp index 641459684f..254588e6aa 100644 --- a/lib/Transforms/IPO/MutateStructTypes.cpp +++ b/lib/Transforms/IPO/MutateStructTypes.cpp @@ -57,12 +57,12 @@ const Type *MutateStructTypes::ConvertType(const Type *Ty) { if (Ty->isPrimitiveType() || isa<OpaqueType>(Ty)) return Ty; // Don't convert primitives - map<const Type *, PATypeHolder<Type> >::iterator I = TypeMap.find(Ty); + map<const Type *, PATypeHolder>::iterator I = TypeMap.find(Ty); if (I != TypeMap.end()) return I->second; const Type *DestTy = 0; - PATypeHolder<Type> PlaceHolder = OpaqueType::get(); + PATypeHolder PlaceHolder = OpaqueType::get(); TypeMap.insert(std::make_pair(Ty, PlaceHolder.get())); switch (Ty->getPrimitiveID()) { @@ -226,7 +226,7 @@ void MutateStructTypes::setTransforms(const TransformsType &XForm) { } // Create a new type that corresponds to the destination type - PATypeHolder<StructType> NSTy = StructType::get(NewType); + PATypeHolder NSTy = StructType::get(NewType); // Refine the old opaque type to the new type to properly handle recursive // types... @@ -235,7 +235,8 @@ void MutateStructTypes::setTransforms(const TransformsType &XForm) { cast<DerivedType>(OldTypeStub)->refineAbstractTypeTo(NSTy); // Add the transformation to the Transforms map. - Transforms.insert(std::make_pair(OldTy, std::make_pair(NSTy, InVec))); + Transforms.insert(std::make_pair(OldTy, + std::make_pair(cast<StructType>(NSTy.get()), InVec))); DEBUG_MST(cerr << "Mutate " << OldTy << "\nTo " << NSTy << endl); } |