forked from OSchip/llvm-project
Making some attribute diagnostics more consistent. Removes a newly-unused diagnostic.
Reviewed by Fariborz Jahanian llvm-svn: 195578
This commit is contained in:
parent
d3f79c5446
commit
f361453519
|
@ -1796,9 +1796,6 @@ def err_attribute_wrong_number_arguments : Error<
|
|||
":requires exactly %1 arguments}1">;
|
||||
def err_attribute_too_many_arguments : Error<
|
||||
"attribute takes no more than %0 argument%s0">;
|
||||
def err_suppress_autosynthesis : Error<
|
||||
"objc_requires_property_definitions attribute may only be specified on a class"
|
||||
"to a class declaration">;
|
||||
def err_attribute_too_few_arguments : Error<
|
||||
"attribute takes at least %0 argument%s0">;
|
||||
def err_attribute_invalid_vector_type : Error<"invalid vector element type %0">;
|
||||
|
|
|
@ -2116,6 +2116,11 @@ static void handleAttrWithMessage(Sema &S, Decl *D,
|
|||
|
||||
static void handleArcWeakrefUnavailableAttr(Sema &S, Decl *D,
|
||||
const AttributeList &Attr) {
|
||||
if (!isa<ObjCInterfaceDecl>(D)) {
|
||||
S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
|
||||
<< Attr.getName() << ExpectedObjectiveCInterface;
|
||||
return;
|
||||
}
|
||||
D->addAttr(::new (S.Context)
|
||||
ArcWeakrefUnavailableAttr(Attr.getRange(), S.Context,
|
||||
Attr.getAttributeSpellingListIndex()));
|
||||
|
@ -2158,7 +2163,8 @@ static void handleObjCSuppresProtocolAttr(Sema &S, Decl *D,
|
|||
static void handleObjCRequiresPropertyDefsAttr(Sema &S, Decl *D,
|
||||
const AttributeList &Attr) {
|
||||
if (!isa<ObjCInterfaceDecl>(D)) {
|
||||
S.Diag(Attr.getLoc(), diag::err_suppress_autosynthesis);
|
||||
S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
|
||||
<< Attr.getName() << ExpectedObjectiveCInterface;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -90,3 +90,5 @@ __attribute__((objc_arc_weak_reference_unavailable))
|
|||
__attribute__((objc_arc_weak_reference_unavailable(1))) // expected-error {{'objc_arc_weak_reference_unavailable' attribute takes no arguments}}
|
||||
@interface I3
|
||||
@end
|
||||
|
||||
int I4 __attribute__((objc_arc_weak_reference_unavailable)); // expected-error {{'objc_arc_weak_reference_unavailable' attribute only applies to Objective-C interfaces}}
|
||||
|
|
|
@ -37,7 +37,7 @@ __attribute ((objc_requires_property_definitions))
|
|||
@interface Deep(CAT) // expected-error {{attributes may not be specified on a category}}
|
||||
@end
|
||||
|
||||
__attribute ((objc_requires_property_definitions)) // expected-error {{objc_requires_property_definitions attribute may only be specified on a class}}
|
||||
__attribute ((objc_requires_property_definitions)) // expected-error {{'objc_requires_property_definitions' attribute only applies to Objective-C interfaces}}
|
||||
@protocol P @end
|
||||
|
||||
// rdar://13388503
|
||||
|
|
Loading…
Reference in New Issue