From f464ab5b865e7963a625ef13126497870327dc9f Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 7 Oct 2004 16:19:40 +0000 Subject: [PATCH] Fix a bug in my previous change. Unfortunately this reverts most of the speedup, but has the advantage of not breaking a bunch of programs! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16806 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Type.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp index af3a81e7a8e..6a9da3a39bf 100644 --- a/lib/VMCore/Type.cpp +++ b/lib/VMCore/Type.cpp @@ -478,8 +478,8 @@ bool Type::PromoteAbstractToConcrete(void *Ptr) { return true; // This type is abstract if subtype is abstract! } - // Nothing looks abstract here. - setAbstract(false); + // Nothing looks abstract here. Restore the abstract flag. + setAbstract(true); return false; } @@ -732,7 +732,8 @@ public: // subtypes to see if the type has just become concrete! if (Ty->isAbstract()) { std::set KnownAbstractTypes; - Ty->PromoteAbstractToConcrete(&KnownAbstractTypes); + if (!Ty->PromoteAbstractToConcrete(&KnownAbstractTypes)) + Ty->setAbstract(false); // If the type just became concrete, notify all users! if (!Ty->isAbstract()) -- 2.11.0