Changes in directory llvm/include/llvm:
Use.h updated: 1.12 -> 1.13 --- Log message: Add some missing template specializations for autodereferencing User. --- Diffs of the changes: (+25 -1) Use.h | 26 +++++++++++++++++++++++++- 1 files changed, 25 insertions(+), 1 deletion(-) Index: llvm/include/llvm/Use.h diff -u llvm/include/llvm/Use.h:1.12 llvm/include/llvm/Use.h:1.13 --- llvm/include/llvm/Use.h:1.12 Thu Apr 21 15:11:51 2005 +++ llvm/include/llvm/Use.h Mon Mar 27 16:49:07 2006 @@ -132,7 +132,7 @@ } // Retrieve a reference to the current SCC - UserTy *operator*() const { + UserTy *operator*() const { assert(U && "Cannot increment end iterator!"); return U->getUser(); } @@ -142,6 +142,30 @@ Use &getUse() const { return *U; } }; + +template<> struct simplify_type<value_use_iterator<User> > { + typedef User* SimpleType; + + static SimpleType getSimplifiedValue(const value_use_iterator<User> &Val) { + return *Val; + } +}; + +template<> struct simplify_type<const value_use_iterator<User> > + : public simplify_type<value_use_iterator<User> > {}; + +template<> struct simplify_type<value_use_iterator<const User> > { + typedef const User* SimpleType; + + static SimpleType getSimplifiedValue(const + value_use_iterator<const User> &Val) { + return *Val; + } +}; + +template<> struct simplify_type<const value_use_iterator<const User> > + : public simplify_type<value_use_iterator<const User> > {}; + } // End llvm namespace #endif _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits