diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-22 06:58:56 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-22 06:58:56 +0000 |
commit | aa2b5799d2dc2c02f71a19cf846f8fd22ccbf5ef (patch) | |
tree | a293d7bb88ef6f8971d7d2fe8c1db8ea4cbb2da3 /lib | |
parent | 068360e16fa4504a6fb80affebae5c5713629a96 (diff) |
implement debug info support for id<proto> and interface<proto>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69784 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index ae8214e24a..84e92f81a7 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -575,8 +575,6 @@ llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty, case Type::Vector: case Type::ExtVector: case Type::ExtQual: - case Type::ObjCQualifiedInterface: - case Type::ObjCQualifiedId: case Type::FixedWidthInt: case Type::BlockPointer: case Type::MemberPointer: @@ -584,16 +582,18 @@ llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty, case Type::QualifiedName: // Unsupported types return llvm::DIType(); - + case Type::ObjCQualifiedId: // Encode id<p> in debug info just like id. + return Slot = getOrCreateType(M->getContext().getObjCIdType(), Unit); + + case Type::ObjCQualifiedInterface: // Drop protocols from interface. case Type::ObjCInterface: - Slot = CreateType(cast<ObjCInterfaceType>(Ty), Unit); break; - case Type::Builtin: Slot = CreateType(cast<BuiltinType>(Ty), Unit); break; - case Type::Pointer: Slot = CreateType(cast<PointerType>(Ty), Unit); break; - case Type::Typedef: Slot = CreateType(cast<TypedefType>(Ty), Unit); break; + return Slot = CreateType(cast<ObjCInterfaceType>(Ty), Unit); + case Type::Builtin: return Slot = CreateType(cast<BuiltinType>(Ty), Unit); + case Type::Pointer: return Slot = CreateType(cast<PointerType>(Ty), Unit); + case Type::Typedef: return Slot = CreateType(cast<TypedefType>(Ty), Unit); case Type::Record: case Type::Enum: - Slot = CreateType(cast<TagType>(Ty), Unit); - break; + return Slot = CreateType(cast<TagType>(Ty), Unit); case Type::FunctionProto: case Type::FunctionNoProto: return Slot = CreateType(cast<FunctionType>(Ty), Unit); |