public:
T resolve(const DITypeIdentifierMap &Map) const;
- StringRef getName() const;
operator Metadata *() const { return const_cast<Metadata *>(Val); }
static DIRef get(const Metadata *MD) { return DIRef(MD); }
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();
-}
-
/// \brief Handle fields that are references to DIDescriptors.
template <>
DIDescriptorRef DIDescriptor::getFieldAs<DIDescriptorRef>(unsigned Elt) const;