Index: test/SemaObjC/access-property-getter.m =================================================================== --- test/SemaObjC/access-property-getter.m +++ test/SemaObjC/access-property-getter.m @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -verify %s +// RUN: %clang_cc1 -fblocks -verify %s @protocol Protocol - (oneway void) method; @@ -9,9 +9,27 @@ } // rdar://19137815 +#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-getter-return-value" void accessMethodViaPropertySyntaxWhenWarningIsIgnoredDoesNotTriggerWarning(id object) { object.method; } +#pragma clang diagnostic pop + +@protocol ProtocolWithBlockProperty +@property (readonly) void (^blockProperty)(void); +@end + +id protocolWithBlockPropertyConstructor(void); +#define protocolWithBlockPropertyConstructorMacro protocolWithBlockPropertyConstructor + +void accessBlockPropertyDoesNotTriggerWarning(void) { + protocolWithBlockPropertyConstructorMacro().blockProperty; +} + +void accessBlockPropertyInParenthesesTriggersWarning(void) { + (protocolWithBlockPropertyConstructorMacro()).blockProperty; // expected-warning {{property access result unused - getters should not be used for side effects}} +} +