From f17b39ab2a4f05427a2834fb177635ba10ee1186 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 7 Nov 2002 04:59:28 +0000 Subject: [PATCH] Minor bugfix to enable generation of methcall.llvm.lib, objinst.llvm.lib, and The problem was merging two unsized types like function's, ie int (int*) with int (uint *) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4594 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/DataStructure/DataStructure.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp index cb56db1f9f0..18192a1c4ad 100644 --- a/lib/Analysis/DataStructure/DataStructure.cpp +++ b/lib/Analysis/DataStructure/DataStructure.cpp @@ -187,7 +187,7 @@ bool DSNode::mergeTypeInfo(const Type *NewTy, unsigned Offset) { return mergeTypeInfo(OldTy, 0); } - assert(Offset < Size && + assert(Offset <= Size && "Cannot merge something into a part of our type that doesn't exist!"); // Find the section of Ty.Ty that NewTy overlaps with... first we find the @@ -234,7 +234,7 @@ bool DSNode::mergeTypeInfo(const Type *NewTy, unsigned Offset) { // structure, the type desired may actually be the first element of the // composite type... // - unsigned SubTypeSize = TD.getTypeSize(SubType); + unsigned SubTypeSize = SubType->isSized() ? TD.getTypeSize(SubType) : 0; while (SubType != NewTy) { const Type *NextSubType = 0; unsigned NextSubTypeSize; -- 2.34.1