From: Douglas Gregor Date: Tue, 8 Jan 2013 18:16:18 +0000 (+0000) Subject: Use Decl::getAvailability() rather than checking for the "unavailable" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7cdc45751cb5b200ad5fff0de28c5d1a64b6fce3;p=clang Use Decl::getAvailability() rather than checking for the "unavailable" attribute when determining whether we need to see an implementation of a property. Fixes . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171877 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaObjCProperty.cpp b/lib/Sema/SemaObjCProperty.cpp index 170bbde370..a605ed52a6 100644 --- a/lib/Sema/SemaObjCProperty.cpp +++ b/lib/Sema/SemaObjCProperty.cpp @@ -1605,7 +1605,8 @@ void Sema::DiagnoseUnimplementedProperties(Scope *S, ObjCImplDecl* IMPDecl, // Is there a matching propery synthesize/dynamic? if (Prop->isInvalidDecl() || Prop->getPropertyImplementation() == ObjCPropertyDecl::Optional || - PropImplMap.count(Prop) || Prop->hasAttr()) + PropImplMap.count(Prop) || + Prop->getAvailability() == AR_Unavailable) continue; if (!InsMap.count(Prop->getGetterName())) { Diag(IMPDecl->getLocation(), diff --git a/test/SemaObjC/no-warning-unavail-unimp.m b/test/SemaObjC/no-warning-unavail-unimp.m index d5a4eac990..037bf24ce9 100644 --- a/test/SemaObjC/no-warning-unavail-unimp.m +++ b/test/SemaObjC/no-warning-unavail-unimp.m @@ -1,9 +1,11 @@ -// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s +// RUN: %clang_cc1 -triple x86_64-apple-darwin9 -fsyntax-only -verify -Wno-objc-root-class %s // expected-no-diagnostics // rdar://9651605 +// rdar://12958191 @interface Foo @property (getter=getVal) int val __attribute__((unavailable)); +@property (getter=getVal) int val2 __attribute__((availability(macosx,unavailable))); - Method __attribute__((unavailable)); + CMethod __attribute__((unavailable)); @end