#endif
User->refineAbstractType(this, NewTy);
- if (AbstractTypeUsers.size() == OldSize)
- User->refineAbstractType(this, NewTy);
-
+#ifdef DEBUG_MERGE_TYPES
if (AbstractTypeUsers.size() == OldSize) {
+ User->refineAbstractType(this, NewTy);
if (AbstractTypeUsers.back() != User)
cerr << "User changed!\n";
cerr << "Top of user list is:\n";
cerr <<"\nOld User=\n";
User->dump();
}
-
+#endif
assert(AbstractTypeUsers.size() != OldSize &&
"AbsTyUser did not remove self from user list!");
}
if (AbstractTypeUsers[i] != this) {
// Debugging hook
cerr << "FOUND FAILURE\n";
+ AbstractTypeUsers[i]->dump();
AbstractTypeUsers[i]->refineAbstractType(this, this);
assert(0 && "Type became concrete,"
" but it still has abstract type users hanging around!");