Move DIRef::getName out of line.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192214 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Manman Ren 2013-10-08 18:42:03 +00:00
parent 3e6a3becd5
commit d88ccb6480

View File

@ -230,16 +230,7 @@ template <typename T> class DIRef {
public:
T resolve(const DITypeIdentifierMap &Map) const;
StringRef getName() const {
if (!Val)
return StringRef();
if (const MDNode *MD = dyn_cast<MDNode>(Val))
return T(MD).getName();
const MDString *MS = cast<MDString>(Val);
return MS->getString();
}
StringRef getName() const;
operator Value *() const { return const_cast<Value *>(Val); }
};
@ -260,6 +251,18 @@ T DIRef<T>::resolve(const DITypeIdentifierMap &Map) const {
return T(Iter->second);
}
template <typename T>
StringRef DIRef<T>::getName() const {
if (!Val)
return StringRef();
if (const MDNode *MD = dyn_cast<MDNode>(Val))
return T(MD).getName();
const MDString *MS = cast<MDString>(Val);
return MS->getString();
}
/// Specialize getFieldAs to handle fields that are references to DIScopes.
template <> DIScopeRef DIDescriptor::getFieldAs<DIScopeRef>(unsigned Elt) const;
/// Specialize DIRef constructor for DIScopeRef.