Type encoding for structs.

llvm-svn: 44087
diff --git a/clang/AST/ASTContext.cpp b/clang/AST/ASTContext.cpp
index 132224c..b844adf 100644
--- a/clang/AST/ASTContext.cpp
+++ b/clang/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,