r236242 - Don't warn about use of deprecated API when the containing context is unavailable.

Jordan Rose jordan_rose at apple.com
Thu Apr 30 10:20:35 PDT 2015


Author: jrose
Date: Thu Apr 30 12:20:35 2015
New Revision: 236242

URL: http://llvm.org/viewvc/llvm-project?rev=236242&view=rev
Log:
Don't warn about use of deprecated API when the containing context is unavailable.

This probably won't come up much, but it seems tidier.

Related to rdar://problem/20713550

Modified:
    cfe/trunk/lib/Sema/SemaDeclAttr.cpp
    cfe/trunk/test/Sema/attr-availability.c

Modified: cfe/trunk/lib/Sema/SemaDeclAttr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclAttr.cpp?rev=236242&r1=236241&r2=236242&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclAttr.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp Thu Apr 30 12:20:35 2015
@@ -5211,7 +5211,7 @@ static void DoEmitAvailabilityWarning(Se
   // Don't warn if our current context is deprecated or unavailable.
   switch (K) {
   case Sema::AD_Deprecation:
-    if (isDeclDeprecated(Ctx))
+    if (isDeclDeprecated(Ctx) || isDeclUnavailable(Ctx))
       return;
     diag = !ObjCPropertyAccess ? diag::warn_deprecated
                                : diag::warn_property_method_deprecated;

Modified: cfe/trunk/test/Sema/attr-availability.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/attr-availability.c?rev=236242&r1=236241&r2=236242&view=diff
==============================================================================
--- cfe/trunk/test/Sema/attr-availability.c (original)
+++ cfe/trunk/test/Sema/attr-availability.c Thu Apr 30 12:20:35 2015
@@ -98,7 +98,7 @@ enum AllUnavailable {
 enum User {
   UserOD = OriginalDeprecated, // expected-warning {{deprecated}}
   UserODDeprecated __attribute__((availability(macosx, deprecated=10.2))) = OriginalDeprecated,
-  UserODUnavailable __attribute__((availability(macosx, unavailable))) = OriginalDeprecated, // expected-warning {{deprecated}}
+  UserODUnavailable __attribute__((availability(macosx, unavailable))) = OriginalDeprecated,
 
   UserOU = OriginalUnavailable, // expected-error {{unavailable}}
   UserOUDeprecated __attribute__((availability(macosx, deprecated=10.2))) = OriginalUnavailable, // expected-error {{unavailable}}
@@ -106,7 +106,7 @@ enum User {
 
   UserAD = AllDeprecatedCase, // expected-warning {{deprecated}}
   UserADDeprecated __attribute__((availability(macosx, deprecated=10.2))) = AllDeprecatedCase,
-  UserADUnavailable __attribute__((availability(macosx, unavailable))) = AllDeprecatedCase, // expected-warning {{deprecated}}
+  UserADUnavailable __attribute__((availability(macosx, unavailable))) = AllDeprecatedCase,
 
   UserADU = AllDeprecatedUnavailable, // expected-error {{unavailable}}
   UserADUDeprecated __attribute__((availability(macosx, deprecated=10.2))) = AllDeprecatedUnavailable, // expected-error {{unavailable}}
@@ -140,17 +140,17 @@ enum UserDeprecated {
 } __attribute__((availability(macosx, deprecated=10.2)));
 
 enum UserUnavailable {
-  UserUnavailableOD = OriginalDeprecated, // expected-warning {{deprecated}}
+  UserUnavailableOD = OriginalDeprecated,
   UserUnavailableODDeprecated __attribute__((availability(macosx, deprecated=10.2))) = OriginalDeprecated,
-  UserUnavailableODUnavailable __attribute__((availability(macosx, unavailable))) = OriginalDeprecated, // expected-warning {{deprecated}}
+  UserUnavailableODUnavailable __attribute__((availability(macosx, unavailable))) = OriginalDeprecated,
 
   UserUnavailableOU = OriginalUnavailable,
   UserUnavailableOUDeprecated __attribute__((availability(macosx, deprecated=10.2))) = OriginalUnavailable,
   UserUnavailableOUUnavailable __attribute__((availability(macosx, unavailable))) = OriginalUnavailable,
 
-  UserUnavailableAD = AllDeprecatedCase, // expected-warning {{deprecated}}
+  UserUnavailableAD = AllDeprecatedCase,
   UserUnavailableADDeprecated __attribute__((availability(macosx, deprecated=10.2))) = AllDeprecatedCase,
-  UserUnavailableADUnavailable __attribute__((availability(macosx, unavailable))) = AllDeprecatedCase, // expected-warning {{deprecated}}
+  UserUnavailableADUnavailable __attribute__((availability(macosx, unavailable))) = AllDeprecatedCase,
 
   UserUnavailableADU = AllDeprecatedUnavailable,
   UserUnavailableADUDeprecated __attribute__((availability(macosx, deprecated=10.2))) = AllDeprecatedUnavailable,





More information about the cfe-commits mailing list