summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-09-07 15:23:11 +0000
committerDouglas Gregor <dgregor@apple.com>2010-09-07 15:23:11 +0000
commit45d6bdfa88d57a6eb25800f4ee9f68feaf7d0902 (patch)
treec98abbbf321467b3cb835ef6a6a2005efc14b0aa /clang/test
parentce66d028771d0ed37d3eba8c83e9193734b7cf06 (diff)
downloadbcm5719-llvm-45d6bdfa88d57a6eb25800f4ee9f68feaf7d0902.tar.gz
bcm5719-llvm-45d6bdfa88d57a6eb25800f4ee9f68feaf7d0902.zip
Improve recovery when there is a stray ']' or ')' before the ';' at
the end of a statement. Fixes <rdar://problem/6896493>. llvm-svn: 113202
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/FixIt/fixit-objc.m32
1 files changed, 18 insertions, 14 deletions
diff --git a/clang/test/FixIt/fixit-objc.m b/clang/test/FixIt/fixit-objc.m
index 03f28a1b586..bf704c66a02 100644
--- a/clang/test/FixIt/fixit-objc.m
+++ b/clang/test/FixIt/fixit-objc.m
@@ -1,6 +1,7 @@
+// RUN: %clang_cc1 -pedantic -verify %s
// RUN: cp %s %t
-// RUN: %clang_cc1 -pedantic -fixit -x objective-c %t
-// RUN: %clang_cc1 -pedantic -verify -x objective-c %t
+// RUN: not %clang_cc1 -pedantic -fixit -x objective-c %t
+// RUN: %clang_cc1 -pedantic -Werror -x objective-c %t
/* This is a test of the various code modification hints that are
provided as part of warning or extension diagnostics. All of the
@@ -10,28 +11,31 @@
@protocol X;
void foo() {
- <X> *P; // should be fixed to 'id<X>'.
+ <X> *P; // expected-warning{{protocol qualifiers without 'id' is archaic}}
}
@class A;
@class NSString;
@interface Test
-- (void)test:(NSString *)string;
+- (void)test:(NSString *)string; // expected-note{{passing argument to parameter 'string' here}}
@property (copy) NSString *property;
@end
-void g(NSString *a);
-void h(id a);
+void g(NSString *a); // expected-note{{passing argument to parameter 'a' here}}
+void h(id a); // expected-note 2{{passing argument to parameter 'a' here}}
void f(Test *t) {
- NSString *a = "Foo";
- id b = "Foo";
- A* c = "Foo"; // expected-warning {{incompatible pointer types initializing 'A *' with an expression of type 'char [4]'}}
- g("Foo");
- h("Foo");
- h(("Foo"));
- [t test:"Foo"];
- t.property = "Foo";
+ NSString *a = "Foo"; // expected-warning {{incompatible pointer types initializing 'NSString *' with an expression of type 'char [4]'}}
+ id b = "Foo"; // expected-warning {{incompatible pointer types initializing 'id' with an expression of type 'char [4]'}}
+ g("Foo"); // expected-warning{{incompatible pointer types passing 'char [4]' to parameter of type 'NSString *'}}
+ h("Foo"); // expected-warning{{incompatible pointer types passing 'char [4]' to parameter of type 'id'}}
+ h(("Foo")); // expected-warning{{incompatible pointer types passing 'char [4]' to parameter of type 'id'}}
+ [t test:"Foo"]; // expected-warning{{incompatible pointer types sending 'char [4]' to parameter of type 'NSString *'}}
+ t.property = "Foo"; // expected-warning{{incompatible pointer types assigning to 'NSString *' from 'char [4]'}}
+
+ // <rdar://problem/6896493>
+ [t test:@"Foo"]]; // expected-error{{extraneous ']' before ';'}}
+ g(@"Foo")); // expected-error{{extraneous ')' before ';'}}
}
OpenPOWER on IntegriCloud