[cfe-commits] r149659 - in /cfe/trunk: include/clang/Basic/DiagnosticParseKinds.td test/SemaObjC/illegal-nonarc-bridged-cast.m

Ted Kremenek kremenek at apple.com
Thu Feb 2 17:30:35 PST 2012


Author: kremenek
Date: Thu Feb  2 19:30:34 2012
New Revision: 149659

URL: http://llvm.org/viewvc/llvm-project?rev=149659&view=rev
Log:
Make error about using bridge casts in non-ARC mode a warning that is default mapped to an error.  This is to ease the transition of large apps moving from non-ARC to ARC.

Modified:
    cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
    cfe/trunk/test/SemaObjC/illegal-nonarc-bridged-cast.m

Modified: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=149659&r1=149658&r2=149659&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td Thu Feb  2 19:30:34 2012
@@ -330,8 +330,10 @@
 let CategoryName = "ARC Parse Issue" in {
 def err_arc_bridge_retain : Error<
   "unknown cast annotation __bridge_retain; did you mean __bridge_retained?">;
-def err_arc_bridge_cast_nonarc : Error<
-  "'%0' casts are only allowed when using ARC">;
+def err_arc_bridge_cast_nonarc : Warning<
+  "'%0' casts are only allowed when using ARC">,
+  InGroup<DiagGroup<"arc-bridge-casts-disallowed-in-nonarc">>,
+  DefaultError;
 }
   
 def err_objc_illegal_visibility_spec : Error<

Modified: cfe/trunk/test/SemaObjC/illegal-nonarc-bridged-cast.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/illegal-nonarc-bridged-cast.m?rev=149659&r1=149658&r2=149659&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjC/illegal-nonarc-bridged-cast.m (original)
+++ cfe/trunk/test/SemaObjC/illegal-nonarc-bridged-cast.m Thu Feb  2 19:30:34 2012
@@ -35,3 +35,10 @@
   id obj1 = (id)CFCreateSomething();
   CFTypeRef cf1 = (CFTypeRef)CreateSomething();
 }
+
+#pragma clang diagnostic ignored "-Warc-bridge-casts-disallowed-in-nonarc"
+
+void to_cf_ignored(id obj) {
+  CFTypeRef cf1 = (__bridge_retained CFTypeRef)CreateSomething(); // no-warning
+  CFTypeRef cf3 = (__bridge CFTypeRef)CreateSomething(); // no-warning
+}





More information about the cfe-commits mailing list