]> granicus.if.org Git - clang/commitdiff
Make error about using bridge casts in non-ARC mode a warning that is default mapped...
authorTed Kremenek <kremenek@apple.com>
Fri, 3 Feb 2012 01:30:34 +0000 (01:30 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 3 Feb 2012 01:30:34 +0000 (01:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149659 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticParseKinds.td
test/SemaObjC/illegal-nonarc-bridged-cast.m

index 047d6ce7dc1200bc2040cbd11c8b64f0e30c3a8e..73d7883fbe26b635b226caaa96ac1f55c3ff7035 100644 (file)
@@ -330,8 +330,10 @@ def err_illegal_super_cast : Error<
 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<
index b0d1e82475e6a17316845b57a27f50a16a81becb..fe6b24a63493bd14a472ca6c33c051ceef8b3cb8 100644 (file)
@@ -35,3 +35,10 @@ void fixits() {
   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
+}