Anonymous structures print as '?=' in Obj-C type encoding.

llvm-svn: 57674
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 8d9dceb..673eb7b 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -1679,7 +1679,12 @@
     bool inlining = (S.size() == 1 && S[0] == '^' ||
                      S.size() > 1 && S[S.size()-1] != '^');
     S += '{';
-    S += RDecl->getName();
+    // Anonymous structures print as '?'
+    if (const IdentifierInfo *II = RDecl->getIdentifier()) {
+      S += II->getName();
+    } else {
+      S += '?';
+    }
     bool found = false;
     for (unsigned i = 0, e = ERType.size(); i != e; ++i)
       if (ERType[i] == RTy) {