aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGDebugInfo.h
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2012-02-18 00:50:17 +0000
committerEric Christopher <echristo@apple.com>2012-02-18 00:50:17 +0000
commit7ff0c5d30d365ba5d4f08e1d2fcea0370b21699b (patch)
tree9ac2aeff8a0226a9bbde79990e4372aeb42d5608 /lib/CodeGen/CGDebugInfo.h
parent1486d2c5d73302bdfdb1cece09d95958052c9cdb (diff)
Add in a caching mechanism so that forward declarations are replaced
with full types if they exist. rdar://10809898 and rdar://10209967 and rdar://10400981 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150858 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGDebugInfo.h')
-rw-r--r--lib/CodeGen/CGDebugInfo.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/CodeGen/CGDebugInfo.h b/lib/CodeGen/CGDebugInfo.h
index 1116336ca7..a071b06c26 100644
--- a/lib/CodeGen/CGDebugInfo.h
+++ b/lib/CodeGen/CGDebugInfo.h
@@ -56,6 +56,10 @@ class CGDebugInfo {
/// CompleteTypeCache - Cache of previously constructed complete RecordTypes.
llvm::DenseMap<void *, llvm::WeakVH> CompletedTypeCache;
+ /// ReplaceMap - Cache of forward declared types to RAUW at the end of
+ /// compilation.
+ std::vector<std::pair<void *, llvm::WeakVH> >ReplaceMap;
+
bool BlockLiteralGenericSet;
llvm::DIType BlockLiteralGeneric;
@@ -160,7 +164,8 @@ class CGDebugInfo {
public:
CGDebugInfo(CodeGenModule &CGM);
~CGDebugInfo();
- void finalize() { DBuilder.finalize(); }
+
+ void finalize(void);
/// setLocation - Update the current source location. If \arg loc is
/// invalid it is ignored.