diff options
| -rw-r--r-- | llvm/include/llvm/DebugInfo.h | 23 |
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. |

