]> granicus.if.org Git - clang/commitdiff
[Objective-C]. Modern property getters have side-effects.
authorFariborz Jahanian <fjahanian@apple.com>
Thu, 18 Dec 2014 00:30:54 +0000 (00:30 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Thu, 18 Dec 2014 00:30:54 +0000 (00:30 +0000)
So, place warning about property getter should not be used for side-effect
under its own group so warning can be turned off.
rdar://19137815

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224479 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticGroups.td
include/clang/Basic/DiagnosticSemaKinds.td
test/Parser/MicrosoftExtensions.cpp
test/SemaObjC/access-property-getter.m

index 65ff0443c3ce1de1b2a4b02329429c92ebc74ed5..81efb8eac9b53dc41501118dae526ef091eb04ca 100644 (file)
@@ -413,6 +413,7 @@ def UnusedVariable : DiagGroup<"unused-variable",
                                [UnusedConstVariable]>;
 def UnusedLocalTypedef : DiagGroup<"unused-local-typedef">;
 def UnusedPropertyIvar :  DiagGroup<"unused-property-ivar">;
+def UnusedGetterReturnValue : DiagGroup<"unused-getter-return-value">;
 def UsedButMarkedUnused : DiagGroup<"used-but-marked-unused">;
 def UserDefinedLiterals : DiagGroup<"user-defined-literals">;
 def Reorder : DiagGroup<"reorder">;
index 99049c8ebd3f6b0df5a6a820e434d99101b69e69..66306ecae43d7c9cae9819f3ba21319d18d02937 100644 (file)
@@ -6100,7 +6100,7 @@ def warn_unused_voidptr : Warning<
   InGroup<UnusedValue>;
 def warn_unused_property_expr : Warning<
  "property access result unused - getters should not be used for side effects">,
-  InGroup<UnusedValue>;
+  InGroup<UnusedGetterReturnValue>;
 def warn_unused_container_subscript_expr : Warning<
  "container access result unused - container access should not be used for side effects">,
   InGroup<UnusedValue>;
index 7637777d296a5f04d88ce8cee82efb3e8a604241..73a1bb57af36ca499a021b23b29e6a525e20ad53 100644 (file)
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 %s -triple i386-mingw32 -std=c++11 -fsyntax-only -Wno-unused-value -Wmicrosoft -verify -fms-extensions -fms-compatibility -fdelayed-template-parsing
+// RUN: %clang_cc1 %s -triple i386-mingw32 -std=c++11 -fsyntax-only -Wno-unused-getter-return-value -Wno-unused-value -Wmicrosoft -verify -fms-extensions -fms-compatibility -fdelayed-template-parsing
 
 /* Microsoft attribute tests */
 [repeatable][source_annotation_attribute( Parameter|ReturnValue )]
index afaf82e731063ab5dd2796e5d94b46f36e93c87a..41827bb3c8a4c07c04b95c43e63b5d52edeedd66 100644 (file)
      return 0;
 }
 @end
+
+// rdar://19137815
+#pragma clang diagnostic ignored "-Wunused-getter-return-value"
+
+@interface NSObject @end
+
+@interface I : NSObject
+@property (copy) id window;
+@end
+
+@implementation I
+- (void) Meth {
+  [self window];
+  self.window;
+}
+@end
+