Pull this out for a bit of readability.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191999 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher 2013-10-04 23:35:30 +00:00
parent 916d49e772
commit 164793918c

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;