[cfe-commits] r140571 - in /cfe/trunk: lib/Sema/SemaObjCProperty.cpp test/SemaObjC/arc-setter-property-match.m
Eli Friedman
eli.friedman at gmail.com
Mon Sep 26 15:31:51 PDT 2011
On Mon, Sep 26, 2011 at 3:12 PM, Fariborz Jahanian <fjahanian at apple.com> wrote:
> Author: fjahanian
> Date: Mon Sep 26 17:12:27 2011
> New Revision: 140571
>
> URL: http://llvm.org/viewvc/llvm-project?rev=140571&view=rev
> Log:
> objc - in matching setter argument type to its property type,
> ingore the type qualifiers. // rdar://10156674
>
> Added:
> cfe/trunk/test/SemaObjC/arc-setter-property-match.m
> Modified:
> cfe/trunk/lib/Sema/SemaObjCProperty.cpp
>
> Modified: cfe/trunk/lib/Sema/SemaObjCProperty.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaObjCProperty.cpp?rev=140571&r1=140570&r2=140571&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaObjCProperty.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaObjCProperty.cpp Mon Sep 26 17:12:27 2011
> @@ -1481,7 +1481,8 @@
> Context.VoidTy)
> Diag(SetterMethod->getLocation(), diag::err_setter_type_void);
> if (SetterMethod->param_size() != 1 ||
> - ((*SetterMethod->param_begin())->getType() != property->getType())) {
> + ((*SetterMethod->param_begin())->getType().getUnqualifiedType()
> + != property->getType().getUnqualifiedType())) {
> Diag(property->getLocation(),
> diag::warn_accessor_property_type_mismatch)
> << property->getDeclName()
ASTContext::hasSameUnqualifiedType might be useful here.
-Eli
> Added: cfe/trunk/test/SemaObjC/arc-setter-property-match.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/arc-setter-property-match.m?rev=140571&view=auto
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/arc-setter-property-match.m (added)
> +++ cfe/trunk/test/SemaObjC/arc-setter-property-match.m Mon Sep 26 17:12:27 2011
> @@ -0,0 +1,35 @@
> +// RUN: %clang_cc1 -triple x86_64-apple-darwin11 -fobjc-nonfragile-abi -fsyntax-only -fobjc-arc -fblocks -verify %s
> +// rdar://10156674
> +
> + at class NSArray;
> +
> + at interface MyClass2 {
> + at private
> + NSArray *_names1;
> + NSArray *_names2;
> + NSArray *_names3;
> + NSArray *_names4;
> +}
> + at property (readwrite, strong) NSArray *names1; // <-- warning: Type of property....
> +- (void)setNames1:(NSArray *)names;
> + at property (readwrite, strong) __strong NSArray *names2; // <-- warning: Type of property....
> +- (void)setNames2:(NSArray *)names;
> + at property (readwrite, strong) __strong NSArray *names3; // <-- OK
> +- (void)setNames3:(__strong NSArray *)names;
> + at property (readwrite, strong) NSArray *names4; // <-- warning: Type of property....
> +- (void)setNames4:(__strong NSArray *)names;
> +
> + at end
> +
> + at implementation MyClass2
> +- (NSArray *)names1 { return _names1; }
> +- (void)setNames1:(NSArray *)names {}
> +- (NSArray *)names2 { return _names2; }
> +- (void)setNames2:(NSArray *)names {}
> +- (NSArray *)names3 { return _names3; }
> +- (void)setNames3:(__strong NSArray *)names {}
> +- (NSArray *)names4 { return _names4; }
> +- (void)setNames4:(__strong NSArray *)names {}
> +
> + at end
> +
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
More information about the cfe-commits
mailing list