Type encoding for structs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44087 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/AST/ASTContext.cpp b/AST/ASTContext.cpp
index 132224c..b844adf 100644
--- a/AST/ASTContext.cpp
+++ b/AST/ASTContext.cpp
@@ -1050,8 +1050,18 @@
S += ']';
} else if (T->getAsFunctionType()) {
S += '?';
+ } else if (const RecordType *RTy = T->getAsRecordType()) {
+ RecordDecl *RDecl= RTy->getDecl();
+ S += '{';
+ S += RDecl->getName();
+ S += '=';
+ for (int i = 0; i < RDecl->getNumMembers(); i++) {
+ FieldDecl *field = RDecl->getMember(i);
+ getObjcEncodingForType(field->getType(), S);
+ }
+ S += '}';
} else
- assert(0 && "@encode for type not implemented!");
+ assert(0 && "@encode for type not implemented!");
}
void ASTContext::getObjcEncodingForTypeQualifier(Decl::ObjcDeclQualifier QT,