diff options
author | Eric Christopher <echristo@apple.com> | 2012-02-20 18:05:04 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2012-02-20 18:05:04 +0000 |
commit | 917bc8d55e9c172b5985a7cc57ccf02d8439464f (patch) | |
tree | 85232e220a6b5ffba989ce39ef1e4b333d8eedc4 /lib/CodeGen/CGDebugInfo.cpp | |
parent | 8261345a32e58dfb5f4269ed92e1608a4ec3379a (diff) |
Make forward declarations for objective-c types use the new
temporary forward declaration nodes. Fixes a problem building
Chrome.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150976 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGDebugInfo.cpp')
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 75e99ac5f2..428bfb4740 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -336,21 +336,19 @@ llvm::DIType CGDebugInfo::CreateType(const BuiltinType *BT) { case BuiltinType::Void: return llvm::DIType(); case BuiltinType::ObjCClass: - return DBuilder.createStructType(TheCU, "objc_class", - getOrCreateMainFile(), 0, 0, 0, - llvm::DIDescriptor::FlagFwdDecl, - llvm::DIArray()); + return DBuilder.createForwardDecl(llvm::dwarf::DW_TAG_structure_type, + "objc_class", getOrCreateMainFile(), + 0); case BuiltinType::ObjCId: { // typedef struct objc_class *Class; // typedef struct objc_object { // Class isa; // } *id; - llvm::DIType OCTy = - DBuilder.createStructType(TheCU, "objc_class", - getOrCreateMainFile(), 0, 0, 0, - llvm::DIDescriptor::FlagFwdDecl, - llvm::DIArray()); + llvm::DIType OCTy = + DBuilder.createForwardDecl(llvm::dwarf::DW_TAG_structure_type, + "objc_class", getOrCreateMainFile(), + 0); unsigned Size = CGM.getContext().getTypeSize(CGM.getContext().VoidPtrTy); llvm::DIType ISATy = DBuilder.createPointerType(OCTy, Size); @@ -368,10 +366,10 @@ llvm::DIType CGDebugInfo::CreateType(const BuiltinType *BT) { 0, 0, 0, 0, Elements); } case BuiltinType::ObjCSel: { - return DBuilder.createStructType(TheCU, "objc_selector", - getOrCreateMainFile(), 0, 0, 0, - llvm::DIDescriptor::FlagFwdDecl, - llvm::DIArray()); + return + DBuilder.createForwardDecl(llvm::dwarf::DW_TAG_structure_type, + "objc_selector", getOrCreateMainFile(), + 0); } case BuiltinType::UChar: case BuiltinType::Char_U: Encoding = llvm::dwarf::DW_ATE_unsigned_char; break; @@ -1224,10 +1222,9 @@ llvm::DIType CGDebugInfo::CreateType(const ObjCInterfaceType *Ty, ObjCInterfaceDecl *Def = ID->getDefinition(); if (!Def) { llvm::DIType FwdDecl = - DBuilder.createStructType(Unit, ID->getName(), - DefUnit, Line, 0, 0, - llvm::DIDescriptor::FlagFwdDecl, - llvm::DIArray(), RuntimeLang); + DBuilder.createForwardDecl(llvm::dwarf::DW_TAG_structure_type, + ID->getName(), DefUnit, Line, + RuntimeLang); return FwdDecl; } ID = Def; |