diff options
author | dim <dim@FreeBSD.org> | 2011-10-20 21:10:27 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2011-10-20 21:10:27 +0000 |
commit | 7b3392326c40c3c20697816acae597ba7b3144eb (patch) | |
tree | 2cbcf22585e99f8a87d12d5ff94f392c0d266819 /include/llvm/OperandTraits.h | |
parent | 1176aa52646fe641a4243a246aa7f960c708a274 (diff) | |
download | FreeBSD-src-7b3392326c40c3c20697816acae597ba7b3144eb.zip FreeBSD-src-7b3392326c40c3c20697816acae597ba7b3144eb.tar.gz |
Vendor import of llvm release_30 branch r142614:
http://llvm.org/svn/llvm-project/llvm/branches/release_30@142614
Diffstat (limited to 'include/llvm/OperandTraits.h')
-rw-r--r-- | include/llvm/OperandTraits.h | 41 |
1 files changed, 2 insertions, 39 deletions
diff --git a/include/llvm/OperandTraits.h b/include/llvm/OperandTraits.h index f0df5fa..3d8dc32 100644 --- a/include/llvm/OperandTraits.h +++ b/include/llvm/OperandTraits.h @@ -136,45 +136,8 @@ CLASS::const_op_iterator CLASS::op_end() const { \ VALUECLASS *CLASS::getOperand(unsigned i_nocapture) const { \ assert(i_nocapture < OperandTraits<CLASS>::operands(this) \ && "getOperand() out of range!"); \ - return static_cast<VALUECLASS*>( \ - OperandTraits<CLASS>::op_begin(const_cast<CLASS*>(this))[i_nocapture]); \ -} \ -void CLASS::setOperand(unsigned i_nocapture, VALUECLASS *Val_nocapture) { \ - assert(i_nocapture < OperandTraits<CLASS>::operands(this) \ - && "setOperand() out of range!"); \ - OperandTraits<CLASS>::op_begin(this)[i_nocapture] = Val_nocapture; \ -} \ -unsigned CLASS::getNumOperands() const { \ - return OperandTraits<CLASS>::operands(this); \ -} \ -template <int Idx_nocapture> Use &CLASS::Op() { \ - return this->OpFrom<Idx_nocapture>(this); \ -} \ -template <int Idx_nocapture> const Use &CLASS::Op() const { \ - return this->OpFrom<Idx_nocapture>(this); \ -} - - -/// Macro for generating out-of-class operand accessor -/// definitions with casted result -#define DEFINE_TRANSPARENT_CASTED_OPERAND_ACCESSORS(CLASS, VALUECLASS) \ -CLASS::op_iterator CLASS::op_begin() { \ - return OperandTraits<CLASS>::op_begin(this); \ -} \ -CLASS::const_op_iterator CLASS::op_begin() const { \ - return OperandTraits<CLASS>::op_begin(const_cast<CLASS*>(this)); \ -} \ -CLASS::op_iterator CLASS::op_end() { \ - return OperandTraits<CLASS>::op_end(this); \ -} \ -CLASS::const_op_iterator CLASS::op_end() const { \ - return OperandTraits<CLASS>::op_end(const_cast<CLASS*>(this)); \ -} \ -VALUECLASS *CLASS::getOperand(unsigned i_nocapture) const { \ - assert(i_nocapture < OperandTraits<CLASS>::operands(this) \ - && "getOperand() out of range!"); \ - return cast<VALUECLASS>( \ - OperandTraits<CLASS>::op_begin(const_cast<CLASS*>(this))[i_nocapture]); \ + return cast_or_null<VALUECLASS>( \ + OperandTraits<CLASS>::op_begin(const_cast<CLASS*>(this))[i_nocapture].get()); \ } \ void CLASS::setOperand(unsigned i_nocapture, VALUECLASS *Val_nocapture) { \ assert(i_nocapture < OperandTraits<CLASS>::operands(this) \ |