diff options
author | Chris Lattner <sabre@nondot.org> | 2004-10-07 16:19:40 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-10-07 16:19:40 +0000 |
commit | f464ab5b865e7963a625ef13126497870327dc9f (patch) | |
tree | 50477d23e31578c0a84a23f06aaa5d2b0394daef /lib/VMCore | |
parent | 054defa74604dcc88db7ce9175122de785992b7b (diff) | |
download | external_llvm-f464ab5b865e7963a625ef13126497870327dc9f.zip external_llvm-f464ab5b865e7963a625ef13126497870327dc9f.tar.gz external_llvm-f464ab5b865e7963a625ef13126497870327dc9f.tar.bz2 |
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
Diffstat (limited to 'lib/VMCore')
-rw-r--r-- | lib/VMCore/Type.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp index af3a81e..6a9da3a 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<Type*> KnownAbstractTypes; - Ty->PromoteAbstractToConcrete(&KnownAbstractTypes); + if (!Ty->PromoteAbstractToConcrete(&KnownAbstractTypes)) + Ty->setAbstract(false); // If the type just became concrete, notify all users! if (!Ty->isAbstract()) |