aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjC/self-assign.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjC/self-assign.m')
-rw-r--r--test/SemaObjC/self-assign.m14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/SemaObjC/self-assign.m b/test/SemaObjC/self-assign.m
new file mode 100644
index 000000000000..f05b028d6718
--- /dev/null
+++ b/test/SemaObjC/self-assign.m
@@ -0,0 +1,14 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+@interface A
+@end
+
+@implementation A
+- (id):(int)x :(int)y {
+ int z;
+ // <rdar://problem/8939352>
+ if (self = [self :x :y]) {} // expected-warning{{using the result of an assignment as a condition without parentheses}} \
+ // expected-note{{use '==' to turn this assignment into an equality comparison}} \
+ // expected-note{{place parentheses around the assignment to silence this warning}}
+ return self;
+}
+@end