diff options
-rw-r--r-- | include/clang/Basic/DiagnosticParseKinds.td | 6 | ||||
-rw-r--r-- | test/SemaObjC/illegal-nonarc-bridged-cast.m | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/include/clang/Basic/DiagnosticParseKinds.td b/include/clang/Basic/DiagnosticParseKinds.td index 047d6ce7dc..73d7883fbe 100644 --- a/include/clang/Basic/DiagnosticParseKinds.td +++ b/include/clang/Basic/DiagnosticParseKinds.td @@ -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< diff --git a/test/SemaObjC/illegal-nonarc-bridged-cast.m b/test/SemaObjC/illegal-nonarc-bridged-cast.m index b0d1e82475..fe6b24a634 100644 --- a/test/SemaObjC/illegal-nonarc-bridged-cast.m +++ b/test/SemaObjC/illegal-nonarc-bridged-cast.m @@ -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 +} |