diff options
author | David Chisnall <csdavec@swan.ac.uk> | 2011-04-29 14:10:35 +0000 |
---|---|---|
committer | David Chisnall <csdavec@swan.ac.uk> | 2011-04-29 14:10:35 +0000 |
commit | 10d2ded91061374a6d14ce0ff2630a8627c1b21c (patch) | |
tree | 3d9d0e7540c923ca6faddd775bf6225f082d9f34 | |
parent | 6708499b6de01470c5475499ca2a0ffa6947ecaa (diff) | |
download | bcm5719-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.cpp | 10 |
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); |