From: Chris Lattner Date: Mon, 9 Mar 2009 04:56:22 +0000 (+0000) Subject: fix Analysis/BasicAA/2004-12-08-BasicAACrash.ll by allowing opaque types. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bce6091d95b7fd56d7c6760b0de54fb6c4300539;p=oota-llvm.git fix Analysis/BasicAA/2004-12-08-BasicAACrash.ll by allowing opaque types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66395 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/Instructions.cpp b/lib/VMCore/Instructions.cpp index 90af9f1ea74..7f5d4615d18 100644 --- a/lib/VMCore/Instructions.cpp +++ b/lib/VMCore/Instructions.cpp @@ -1058,8 +1058,10 @@ static const Type* getIndexedTypeInternal(const Type *Ptr, IndexTy const *Idxs, return Agg; // If there is at least one index, the top level type must be sized, otherwise - // it cannot be 'stepped over'. - if (!Agg->isSized()) + // it cannot be 'stepped over'. We explicitly allow abstract types (those + // that contain opaque types) under the assumption that it will be resolved to + // a sane type later. + if (!Agg->isSized() && !Agg->isAbstract()) return 0; unsigned CurIdx = 1;