зеркало из https://github.com/microsoft/clang.git
__weak ivar need not warn.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59743 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
7eda8367cf
Коммит
24b93f2deb
|
@ -556,7 +556,7 @@ static void HandleObjCGCAttr(Decl *d, const AttributeList &Attr, Sema &S) {
|
|||
|
||||
ObjCGCAttr::GCAttrTypes type;
|
||||
if (Attr.getParameterName()->isStr("weak")) {
|
||||
if (isa<FieldDecl>(d))
|
||||
if (isa<FieldDecl>(d) && !isa<ObjCIvarDecl>(d))
|
||||
S.Diag(Attr.getLoc(), diag::warn_attribute_weak_on_field);
|
||||
type = ObjCGCAttr::Weak;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,17 @@ struct S {
|
|||
__strong id p1;
|
||||
};
|
||||
|
||||
@interface I
|
||||
{
|
||||
__weak id w; // OK
|
||||
__strong id LHS;
|
||||
}
|
||||
- (void) foo;
|
||||
@end
|
||||
@implementation I
|
||||
- (void) foo { w = 0; LHS = w; }
|
||||
@end
|
||||
|
||||
int main ()
|
||||
{
|
||||
struct I {
|
||||
|
|
Загрузка…
Ссылка в новой задаче