diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index 112e2bc..92a5fdb 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -1372,8 +1372,12 @@
       // C++ [dcl.ref]p4: There shall be no references to references.
       DeclaratorChunk& InnerChunk = D.getTypeObject(D.getNumTypeObjects() - 1);
       if (InnerChunk.Kind == DeclaratorChunk::Reference) {
-        Diag(InnerChunk.Loc, diag::err_illegal_decl_reference_to_reference)
-           << (D.getIdentifier() ? D.getIdentifier()->getName() : "type name");
+        if (const IdentifierInfo *II = D.getIdentifier())
+          Diag(InnerChunk.Loc, diag::err_illegal_decl_reference_to_reference)
+           << II;
+        else
+          Diag(InnerChunk.Loc, diag::err_illegal_decl_reference_to_reference)
+            << "type name";
 
         // Once we've complained about the reference-to-referwnce, we
         // can go ahead and build the (technically ill-formed)
@@ -1832,11 +1836,11 @@
 
     // Reject 'typedef int y; int test(x, y)', but continue parsing.
     if (Actions.isTypeName(*ParmII, CurScope))
-      Diag(Tok, diag::err_unexpected_typedef_ident) << ParmII->getName();
+      Diag(Tok, diag::err_unexpected_typedef_ident) << ParmII;
     
     // Verify that the argument identifier has not already been mentioned.
     if (!ParamsSoFar.insert(ParmII)) {
-      Diag(Tok, diag::err_param_redefinition) <<ParmII->getName();
+      Diag(Tok, diag::err_param_redefinition) << ParmII;
     } else {
       // Remember this identifier in ParamInfo.
       ParamInfo.push_back(DeclaratorChunk::ParamInfo(ParmII,
@@ -1936,7 +1940,7 @@
 
   if (Tok.isNot(tok::l_paren)) {
     if (!getLang().CPlusPlus) {
-      Diag(Tok, diag::err_expected_lparen_after) << BuiltinII->getName();
+      Diag(Tok, diag::err_expected_lparen_after) << BuiltinII;
       return;
     }
 
diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp
index 32a7c0a..2b803d9 100644
--- a/lib/Parse/ParseExpr.cpp
+++ b/lib/Parse/ParseExpr.cpp
@@ -808,7 +808,7 @@
 
   // All of these start with an open paren.
   if (Tok.isNot(tok::l_paren)) {
-    Diag(Tok, diag::err_expected_lparen_after) << BuiltinII->getName();
+    Diag(Tok, diag::err_expected_lparen_after) << BuiltinII;
     return ExprResult(true);
   }
   
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp
index b228d2a..f323d9f 100644
--- a/lib/Parse/ParseObjc.cpp
+++ b/lib/Parse/ParseObjc.cpp
@@ -209,8 +209,7 @@
   memcpy(&SelectorName[3], Name->getName(), N);
   SelectorName[3] = toupper(SelectorName[3]);
 
-  IdentifierInfo *Setter = 
-    &Idents.get(SelectorName, &SelectorName[3 + N]);
+  IdentifierInfo *Setter = &Idents.get(SelectorName, &SelectorName[3 + N]);
   delete[] SelectorName;
   return Setter;
 }
