From c166d7390c300e84a0001c016b83f8aa6de9cf53 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Fri, 19 Dec 2008 00:14:49 +0000 Subject: [PATCH] Several@encode bug fixes for ObjC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61231 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AST/ASTContext.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 95f95ceb5e..a91679e594 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -1779,9 +1779,17 @@ void ASTContext::getObjCEncodingForTypeImpl(QualType T, std::string& S, } else if (const PointerType *PT = T->getAsPointerType()) { QualType PointeeTy = PT->getPointeeType(); - if (isObjCIdType(PointeeTy) || PointeeTy->isObjCInterfaceType()) { + if (isObjCIdType(PointeeTy)) { S += '@'; return; + } + else if (PointeeTy->isObjCInterfaceType()) { + S += '@'; + ObjCInterfaceDecl *OI = PointeeTy->getAsObjCInterfaceType()->getDecl(); + S += '"'; + S += OI->getNameAsCString(); + S += '"'; + return; } else if (isObjCClassType(PointeeTy)) { S += '#'; return; @@ -1802,7 +1810,7 @@ void ASTContext::getObjCEncodingForTypeImpl(QualType T, std::string& S, S += '^'; getObjCEncodingForTypeImpl(PT->getPointeeType(), S, false, ExpandPointedToStructures, - NameFields); + false); } else if (const ArrayType *AT = // Ignore type qualifiers etc. dyn_cast(T->getCanonicalTypeInternal())) { -- 2.40.0