summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Chisnall <csdavec@swan.ac.uk>2011-04-29 14:10:35 +0000
committerDavid Chisnall <csdavec@swan.ac.uk>2011-04-29 14:10:35 +0000
commit10d2ded91061374a6d14ce0ff2630a8627c1b21c (patch)
tree3d9d0e7540c923ca6faddd775bf6225f082d9f34
parent6708499b6de01470c5475499ca2a0ffa6947ecaa (diff)
downloadbcm5719-llvm-10d2ded91061374a6d14ce0ff2630a8627c1b21c.tar.gz
bcm5719-llvm-10d2ded91061374a6d14ce0ff2630a8627c1b21c.zip
Don't crash if the AST doesn't have a sensible ObjC id type.
llvm-svn: 130500
-rw-r--r--clang/lib/CodeGen/CGObjCGNU.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGObjCGNU.cpp b/clang/lib/CodeGen/CGObjCGNU.cpp
index 2116dc6bf50..d28cfa57df0 100644
--- a/clang/lib/CodeGen/CGObjCGNU.cpp
+++ b/clang/lib/CodeGen/CGObjCGNU.cpp
@@ -688,11 +688,13 @@ CGObjCGNU::CGObjCGNU(CodeGenModule &cgm, unsigned runtimeABIVersion,
PtrTy = PtrToInt8Ty;
// Object type
- ASTIdTy = CGM.getContext().getCanonicalType(CGM.getContext().getObjCIdType());
- if (QualType() == ASTIdTy) {
- IdTy = PtrToInt8Ty;
- } else {
+ QualType UnqualIdTy = CGM.getContext().getObjCIdType();
+ ASTIdTy = CanQualType();
+ if (UnqualIdTy != QualType()) {
+ ASTIdTy = CGM.getContext().getCanonicalType(UnqualIdTy);
IdTy = cast<llvm::PointerType>(CGM.getTypes().ConvertType(ASTIdTy));
+ } else {
+ IdTy = PtrToInt8Ty;
}
PtrToIdTy = llvm::PointerType::getUnqual(IdTy);
OpenPOWER on IntegriCloud