summaryrefslogtreecommitdiff
path: root/include/llvm/DebugInfo.h
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2013-10-04 23:35:30 +0000
committerEric Christopher <echristo@gmail.com>2013-10-04 23:35:30 +0000
commit164793918c325b25425f962fc9540a1e1cd9224b (patch)
tree489c3fa3d8a8d7531e8816314c730cc9f74592d0 /include/llvm/DebugInfo.h
parent916d49e77237c5aabfd5638b4e481c7ed9441608 (diff)
downloadllvm-164793918c325b25425f962fc9540a1e1cd9224b.tar.gz
llvm-164793918c325b25425f962fc9540a1e1cd9224b.tar.bz2
llvm-164793918c325b25425f962fc9540a1e1cd9224b.tar.xz
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
Diffstat (limited to 'include/llvm/DebugInfo.h')
-rw-r--r--include/llvm/DebugInfo.h33
1 files changed, 18 insertions, 15 deletions
diff --git a/include/llvm/DebugInfo.h b/include/llvm/DebugInfo.h
index 8486b10234..ad0149476a 100644
--- a/include/llvm/DebugInfo.h
+++ b/include/llvm/DebugInfo.h
@@ -226,24 +226,27 @@ template <typename T> class DIRef {
explicit DIRef(const Value *V);
public:
- T resolve(const DITypeIdentifierMap &Map) const {
- if (!Val)
- return T();
-
- if (const MDNode *MD = dyn_cast<MDNode>(Val))
- return T(MD);
-
- const MDString *MS = cast<MDString>(Val);
- // Find the corresponding MDNode.
- DITypeIdentifierMap::const_iterator Iter = Map.find(MS);
- assert(Iter != Map.end() && "Identifier not in the type map?");
- assert(DIDescriptor(Iter->second).isType() &&
- "MDNode in DITypeIdentifierMap should be a DIType.");
- return T(Iter->second);
- }
+ 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();
+
+ if (const MDNode *MD = dyn_cast<MDNode>(Val))
+ return T(MD);
+
+ const MDString *MS = cast<MDString>(Val);
+ // Find the corresponding MDNode.
+ DITypeIdentifierMap::const_iterator Iter = Map.find(MS);
+ assert(Iter != Map.end() && "Identifier not in the type map?");
+ assert(DIDescriptor(Iter->second).isType() &&
+ "MDNode in DITypeIdentifierMap should be a DIType.");
+ return T(Iter->second);
+}
+
/// Specialize getFieldAs to handle fields that are references to DIScopes.
template <> DIScopeRef DIDescriptor::getFieldAs<DIScopeRef>(unsigned Elt) const;
/// Specialize DIRef constructor for DIScopeRef.