summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/DebugInfo.h23
1 files changed, 13 insertions, 10 deletions
diff --git a/llvm/include/llvm/DebugInfo.h b/llvm/include/llvm/DebugInfo.h
index 506b84c49bf..49b81e3944f 100644
--- a/llvm/include/llvm/DebugInfo.h
+++ b/llvm/include/llvm/DebugInfo.h
@@ -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.
OpenPOWER on IntegriCloud