objc-arc: When objects with known CF semantics are assigned to
retainable types in arc, only suggest CFBridgingRelease/
CFBridgingRetain and not the confusing __bridge casts.
// rdar://11923822


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160839 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaExprObjC.cpp b/lib/Sema/SemaExprObjC.cpp
index a3fe7d3..1cdacde 100644
--- a/lib/Sema/SemaExprObjC.cpp
+++ b/lib/Sema/SemaExprObjC.cpp
@@ -2918,19 +2918,12 @@
       << castRange
       << castExpr->getSourceRange();
     bool br = S.isKnownName("CFBridgingRelease");
-    {
-      DiagnosticBuilder DiagB = S.Diag(noteLoc, diag::note_arc_bridge);
-      addFixitForObjCARCConversion(S, DiagB, CCK, afterLParen,
-                                   castType, castExpr, "__bridge ", 0);
-    }
-    {
-      DiagnosticBuilder DiagB = S.Diag(br ? castExpr->getExprLoc() : noteLoc,
-                                       diag::note_arc_bridge_transfer)
-        << castExprType << br;
-      addFixitForObjCARCConversion(S, DiagB, CCK, afterLParen,
-                                   castType, castExpr, "__bridge_transfer ",
-                                   br ? "CFBridgingRelease" : 0);
-    }
+    DiagnosticBuilder DiagB = S.Diag(br ? castExpr->getExprLoc() : noteLoc,
+                                     diag::note_arc_bridge_transfer)
+                                << castExprType << br;
+    addFixitForObjCARCConversion(S, DiagB, CCK, afterLParen,
+                                 castType, castExpr, "__bridge_transfer ",
+                                 br ? "CFBridgingRelease" : 0);
 
     return;
   }
@@ -2946,20 +2939,12 @@
       << castType
       << castRange
       << castExpr->getSourceRange();
-
-    {
-      DiagnosticBuilder DiagB = S.Diag(noteLoc, diag::note_arc_bridge);
-      addFixitForObjCARCConversion(S, DiagB, CCK, afterLParen,
-                                   castType, castExpr, "__bridge ", 0);
-    }
-    {
-      DiagnosticBuilder DiagB = S.Diag(br ? castExpr->getExprLoc() : noteLoc,
-                                       diag::note_arc_bridge_retained)
-        << castType << br;
-      addFixitForObjCARCConversion(S, DiagB, CCK, afterLParen,
-                                   castType, castExpr, "__bridge_retained ",
-                                   br ? "CFBridgingRetain" : 0);
-    }
+    DiagnosticBuilder DiagB = S.Diag(br ? castExpr->getExprLoc() : noteLoc,
+                                     diag::note_arc_bridge_retained)
+                                  << castType << br;
+    addFixitForObjCARCConversion(S, DiagB, CCK, afterLParen,
+                                 castType, castExpr, "__bridge_retained ",
+                                 br ? "CFBridgingRetain" : 0);
 
     return;
   }