Changes in directory llvm/lib/VMCore:
Type.cpp updated: 1.141 -> 1.142 --- Log message: Moving this function to a permanent home to prevent a dependency cycle created by the inline heuristic. Was preventing llvm-gcc4 from building. --- Diffs of the changes: (+19 -0) Type.cpp | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+) Index: llvm/lib/VMCore/Type.cpp diff -u llvm/lib/VMCore/Type.cpp:1.141 llvm/lib/VMCore/Type.cpp:1.142 --- llvm/lib/VMCore/Type.cpp:1.141 Wed Jun 28 16:38:54 2006 +++ llvm/lib/VMCore/Type.cpp Tue Jul 25 18:22:00 2006 @@ -33,6 +33,25 @@ AbstractTypeUser::~AbstractTypeUser() {} + +//===----------------------------------------------------------------------===// +// Type PATypeHolder Implementation +//===----------------------------------------------------------------------===// + +// This routine was moved here to resolve a cyclic dependency caused by +// inline heuristics. + +/// get - This implements the forwarding part of the union-find algorithm for +/// abstract types. Before every access to the Type*, we check to see if the +/// type we are pointing to is forwarding to a new type. If so, we drop our +/// reference to the type. +/// +Type* PATypeHolder::get() const { + const Type *NewTy = Ty->getForwardedType(); + if (!NewTy) return const_cast<Type*>(Ty); + return *const_cast<PATypeHolder*>(this) = NewTy; +} + //===----------------------------------------------------------------------===// // Type Class Implementation //===----------------------------------------------------------------------===// _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits