diff --git a/include/llvm/Use.h b/include/llvm/Use.h index e817601f80c..c88d41f7005 100644 --- a/include/llvm/Use.h +++ b/include/llvm/Use.h @@ -141,11 +141,10 @@ public: Use &getUse() const { return *U; } - /// getOperandNo - Return the operand # of this use in its User. + /// getOperandNo - Return the operand # of this use in its User. Defined in + /// User.h /// - unsigned getOperandNo() const { - return U - U->getUser()->op_begin(); - } + unsigned getOperandNo() const; }; diff --git a/include/llvm/User.h b/include/llvm/User.h index b38c516d147..b0ecf75d860 100644 --- a/include/llvm/User.h +++ b/include/llvm/User.h @@ -112,6 +112,13 @@ template<> struct simplify_type { template<> struct simplify_type : public simplify_type {}; + +// value_use_iterator::getOperandNo - Requires the definition of the User class. +template +unsigned value_use_iterator::getOperandNo() const { + return U - U->getUser()->op_begin(); +} + } // End llvm namespace #endif