]> granicus.if.org Git - clang/commitdiff
Don't warn about use of deprecated API when the containing context is unavailable.
authorJordan Rose <jordan_rose@apple.com>
Thu, 30 Apr 2015 17:20:35 +0000 (17:20 +0000)
committerJordan Rose <jordan_rose@apple.com>
Thu, 30 Apr 2015 17:20:35 +0000 (17:20 +0000)
This probably won't come up much, but it seems tidier.

Related to rdar://problem/20713550

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@236242 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDeclAttr.cpp
test/Sema/attr-availability.c

index 43c96d9c764a7d4955564156ebb39134ebaaf8b5..0daeecfda95224f9f88a9c6eca4d5b7ef4b5b214 100644 (file)
@@ -5211,7 +5211,7 @@ static void DoEmitAvailabilityWarning(Sema &S, Sema::AvailabilityDiagnostic K,
   // 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;
index ce64fab398390fdcbc6e04640e0719d1bfb48def..d003e1e2e363bf1c3a8447f1f8849a8aefa3c1cc 100644 (file)
@@ -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,