aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGDebugInfo.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-05-02 01:13:16 +0000
committerChris Lattner <sabre@nondot.org>2009-05-02 01:13:16 +0000
commitac7c814d817bbfafd924586b9025f2dffc655708 (patch)
treec3e6eed521d0a2fe92ed96f10b124fd78dd3b87b /lib/CodeGen/CGDebugInfo.cpp
parentb95ee58f6c9838695b1704e879e263aec49bfa88 (diff)
When creating a dwarf record type for an objc interface, make sure to propagate
the runtime version number onto it, so that the debugger knows it's an objc interface, not a C struct. rdar://6848435 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70618 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGDebugInfo.cpp')
-rw-r--r--lib/CodeGen/CGDebugInfo.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp
index ce06a62003..ac1616b933 100644
--- a/lib/CodeGen/CGDebugInfo.cpp
+++ b/lib/CodeGen/CGDebugInfo.cpp
@@ -383,6 +383,8 @@ llvm::DIType CGDebugInfo::CreateType(const ObjCInterfaceType *Ty,
unsigned Line = PLoc.isInvalid() ? 0 : PLoc.getLine();
+ unsigned RuntimeLang = DefUnit.getRunTimeVersion();
+
// To handle recursive interface, we
// first generate a debug descriptor for the struct as a forward declaration.
// Then (if it is a definition) we go through and get debug info for all of
@@ -391,7 +393,8 @@ llvm::DIType CGDebugInfo::CreateType(const ObjCInterfaceType *Ty,
// uses of the forward declaration with the final definition.
llvm::DIType FwdDecl =
DebugFactory.CreateCompositeType(Tag, Unit, Name, DefUnit, Line, 0, 0, 0, 0,
- llvm::DIType(), llvm::DIArray());
+ llvm::DIType(), llvm::DIArray(),
+ RuntimeLang);
// If this is just a forward declaration, return it.
if (Decl->isForwardDecl())
@@ -478,7 +481,8 @@ llvm::DIType CGDebugInfo::CreateType(const ObjCInterfaceType *Ty,
llvm::DIType RealDecl =
DebugFactory.CreateCompositeType(Tag, Unit, Name, DefUnit, Line, Size,
- Align, 0, 0, llvm::DIType(), Elements);
+ Align, 0, 0, llvm::DIType(), Elements,
+ RuntimeLang);
// Now that we have a real decl for the struct, replace anything using the
// old decl with the new one. This will recursively update the debug info.