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 | 43e6f8c08b908fd622f881e5f90e3d9316e79138 (patch) | |
| tree | 4f99fce74065219ea4e17246fe289463dce05c40 /clang | |
| parent | ad8f750f71d5636abc134224e548f239a3f5d06d (diff) | |
| download | bcm5719-llvm-43e6f8c08b908fd622f881e5f90e3d9316e79138.tar.gz bcm5719-llvm-43e6f8c08b908fd622f881e5f90e3d9316e79138.zip | |
implement debug info support for id<proto> and interface<proto>
llvm-svn: 69784
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index ae8214e24ab..84e92f81a7f 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/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); |

