Pull this out for a bit of readability.

llvm-svn: 191999
This commit is contained in:
Eric Christopher 2013-10-04 23:35:30 +00:00
parent fac5612ab0
commit fc917c6208
1 changed files with 18 additions and 15 deletions
llvm/include/llvm

View File

@ -226,7 +226,12 @@ template <typename T> class DIRef {
explicit DIRef(const Value *V);
public:
T resolve(const DITypeIdentifierMap &Map) const {
T resolve(const DITypeIdentifierMap &Map) const;
operator Value *() const { return const_cast<Value *>(Val); }
};
template <typename T>
T DIRef<T>::resolve(const DITypeIdentifierMap &Map) const {
if (!Val)
return T();
@ -240,9 +245,7 @@ public:
assert(DIDescriptor(Iter->second).isType() &&
"MDNode in DITypeIdentifierMap should be a DIType.");
return T(Iter->second);
}
operator Value *() const { return const_cast<Value *>(Val); }
};
}
/// Specialize getFieldAs to handle fields that are references to DIScopes.
template <> DIScopeRef DIDescriptor::getFieldAs<DIScopeRef>(unsigned Elt) const;