Loading clang/lib/Sema/SemaDeclAttr.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -6561,7 +6561,9 @@ static void handleObjCExternallyRetainedAttr(Sema &S, Decl *D, // If D is a function-like declaration (method, block, or function), then we // make every parameter psuedo-strong. for (unsigned I = 0, E = getFunctionOrMethodNumParams(D); I != E; ++I) { unsigned NumParams = hasFunctionProto(D) ? getFunctionOrMethodNumParams(D) : 0; for (unsigned I = 0; I != NumParams; ++I) { auto *PVD = const_cast<ParmVarDecl *>(getFunctionOrMethodParam(D, I)); QualType Ty = PVD->getType(); Loading clang/test/SemaObjC/externally-retained.m +3 −0 Original line number Diff line number Diff line Loading @@ -118,3 +118,6 @@ void test13(ObjCTy *first, __weak ObjCTy *second, __unsafe_unretained ObjCTy *th } #pragma clang attribute ext_ret.pop __attribute__((objc_externally_retained)) void unprototyped(); Loading
clang/lib/Sema/SemaDeclAttr.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -6561,7 +6561,9 @@ static void handleObjCExternallyRetainedAttr(Sema &S, Decl *D, // If D is a function-like declaration (method, block, or function), then we // make every parameter psuedo-strong. for (unsigned I = 0, E = getFunctionOrMethodNumParams(D); I != E; ++I) { unsigned NumParams = hasFunctionProto(D) ? getFunctionOrMethodNumParams(D) : 0; for (unsigned I = 0; I != NumParams; ++I) { auto *PVD = const_cast<ParmVarDecl *>(getFunctionOrMethodParam(D, I)); QualType Ty = PVD->getType(); Loading
clang/test/SemaObjC/externally-retained.m +3 −0 Original line number Diff line number Diff line Loading @@ -118,3 +118,6 @@ void test13(ObjCTy *first, __weak ObjCTy *second, __unsafe_unretained ObjCTy *th } #pragma clang attribute ext_ret.pop __attribute__((objc_externally_retained)) void unprototyped();