This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[RFA][testsuite] Differentiate diagnostics for ObjC test cases
- From: David Ayers <ayers at fsfe dot org>
- To: Janis Johnson <janis187 at us dot ibm dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Andrew Pinski <pinskia at gmail dot com>, Nicola Pero <nicola dot pero at meta-innovation dot com>, Mike Stump <mrs at apple dot com>, Stan Shebs <stanshebs at earthlink dot net>
- Date: Wed, 15 Apr 2009 10:32:16 +0200
- Subject: [RFA][testsuite] Differentiate diagnostics for ObjC test cases
Hello,
This patch updates objc.dg to set gcc_error_prefix and
gcc_warning_prefix which allows the Objective-C test suite to
differentiate between errors, warning and messages.
I think I only need test suite maintainer approval yet I've cc'ed ObjC
maintainers in case they have reservations.
OK for trunk?
Cheers,
David
2009-00-00 David Ayers <ayers@fsfe.org>
* lib/objc.exp (objc_init): Add and set gcc_warning_prefix
and gcc_error_prefix variables.
* objc.dg/bad-receiver-type.m: Update to match correct
diagnostics marker.
* objc.dg/encode-5.m: Likewise.
* objc.dg/id-1.m: Likewise.
* objc.dg/method-1.m: Likewise.
* objc.dg/method-6.m: Likewise.
* objc.dg/method-7.m: Likewise.
* objc.dg/method-9.m: Likewise.
* objc.dg/method-11.m: Likewise.
* objc.dg/method-20.m: Likewise.
* objc.dg/private-1.m: Likewise.
Index: gcc/testsuite/lib/objc.exp
===================================================================
--- gcc/testsuite/lib/objc.exp (Revision 146065)
+++ gcc/testsuite/lib/objc.exp (Arbeitskopie)
@@ -95,6 +95,8 @@
global OBJC_UNDER_TEST
global TOOL_EXECUTABLE
global objc_libgcc_s_path
+ global gcc_warning_prefix
+ global gcc_error_prefix
# We set LC_ALL and LANG to C so that we get the same error messages as expected.
setenv LC_ALL C
@@ -114,6 +116,9 @@
set tmpdir /tmp
}
+ set gcc_warning_prefix "warning:"
+ set gcc_error_prefix "error:"
+
objc_maybe_build_wrapper "${tmpdir}/objc-testglue.o"
set objc_libgcc_s_path [gcc-set-multilib-library-path $OBJC_UNDER_TEST]
Index: gcc/testsuite/objc.dg/private-1.m
===================================================================
--- gcc/testsuite/objc.dg/private-1.m (Revision 146065)
+++ gcc/testsuite/objc.dg/private-1.m (Arbeitskopie)
@@ -50,8 +50,8 @@
{
int access;
- access = m->private; /* { dg-error "is @private" } */
- access = m->protected; /* { dg-error "is @protected" } */
+ access = m->private; /* { dg-warning "is @private" } */
+ access = m->protected; /* { dg-warning "is @protected" } */
access = m->public; /* Ok */
}
Index: gcc/testsuite/objc.dg/method-6.m
===================================================================
--- gcc/testsuite/objc.dg/method-6.m (Revision 146065)
+++ gcc/testsuite/objc.dg/method-6.m (Arbeitskopie)
@@ -20,8 +20,8 @@
Class receiver;
[receiver port]; /* { dg-warning "multiple methods named .\\+port. found" } */
- /* { dg-warning "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 10 } */
- /* { dg-warning "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
+ /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 10 } */
+ /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
[receiver starboard]; /* { dg-warning "no .\\+starboard. method found" } */
/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 26 } */
Index: gcc/testsuite/objc.dg/method-11.m
===================================================================
--- gcc/testsuite/objc.dg/method-11.m (Revision 146065)
+++ gcc/testsuite/objc.dg/method-11.m (Arbeitskopie)
@@ -24,9 +24,9 @@
id obj1, obj2 = 0;
obj2 = [obj1 initWithData: obj2];
/* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 25 } */
- /* { dg-warning "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 12 } */
- /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 16 } */
- /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } 20 } */
+ /* { dg-message "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 12 } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 16 } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } 20 } */
/* The following error is a consequence of picking the "wrong" method signature. */
/* { dg-error "void value not ignored as it ought to be" "" { target *-*-* } 25 } */
Index: gcc/testsuite/objc.dg/id-1.m
===================================================================
--- gcc/testsuite/objc.dg/id-1.m (Revision 146065)
+++ gcc/testsuite/objc.dg/id-1.m (Arbeitskopie)
@@ -2,6 +2,6 @@
/* { dg-do compile } */
typedef int id; /* { dg-error "conflicting types for .id." } */
-/* { dg-error "previous declaration of .id. was here" "" { target *-*-* } 0 } */
+/* { dg-message "previous declaration of .id. was here" "" { target *-*-* } 0 } */
id b;
Index: gcc/testsuite/objc.dg/method-20.m
===================================================================
--- gcc/testsuite/objc.dg/method-20.m (Revision 146065)
+++ gcc/testsuite/objc.dg/method-20.m (Arbeitskopie)
@@ -5,4 +5,5 @@
@ implementation NGActiveSocket
+ (void) socketPair:(int[m]) _pair {} /* { dg-error "" } */
+ /* { dg-warning "" "" { target *-*-* } 7 } */
@end
Index: gcc/testsuite/objc.dg/method-7.m
===================================================================
--- gcc/testsuite/objc.dg/method-7.m (Revision 146065)
+++ gcc/testsuite/objc.dg/method-7.m (Arbeitskopie)
@@ -22,8 +22,8 @@
/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 20 } */
/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 20 } */
[obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
- /* { dg-warning "using .\\-\\(void\\)setWindow:\\(Object \\*\\)wdw." "" { target *-*-* } 10 } */
- /* { dg-warning "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 14 } */
+ /* { dg-message "using .\\-\\(void\\)setWindow:\\(Object \\*\\)wdw." "" { target *-*-* } 10 } */
+ /* { dg-message "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 14 } */
return obj;
}
Index: gcc/testsuite/objc.dg/bad-receiver-type.m
===================================================================
--- gcc/testsuite/objc.dg/bad-receiver-type.m (Revision 146065)
+++ gcc/testsuite/objc.dg/bad-receiver-type.m (Arbeitskopie)
@@ -11,5 +11,5 @@
void baz()
{
[foo test]; /* { dg-warning "invalid receiver type" } */
- /* { dg-warning "cannot convert to a pointer type" "" { target *-*-* } 13 } */
+ /* { dg-error "cannot convert to a pointer type" "" { target *-*-* } 13 } */
}
Index: gcc/testsuite/objc.dg/encode-5.m
===================================================================
--- gcc/testsuite/objc.dg/encode-5.m (Revision 146065)
+++ gcc/testsuite/objc.dg/encode-5.m (Arbeitskopie)
@@ -28,7 +28,7 @@
@interface Test : Object
{ float j; }
-(void) test2: (int [5])a with: (int [])b;
--(id) test3: (Test **)b; /* { dg-warning "previous declaration of .\\-\\(id\\)test3:\\(Test \\*\\*\\)b." } */
+-(id) test3: (Test **)b; /* { dg-message "previous declaration of .\\-\\(id\\)test3:\\(Test \\*\\*\\)b." } */
@end
@implementation Test
Index: gcc/testsuite/objc.dg/method-1.m
===================================================================
--- gcc/testsuite/objc.dg/method-1.m (Revision 146065)
+++ gcc/testsuite/objc.dg/method-1.m (Arbeitskopie)
@@ -16,7 +16,7 @@
@end
@implementation class3
-- (int) meth1 { return 0; } /* { dg-error "previous definition" } */
+- (int) meth1 { return 0; } /* { dg-message "previous definition" } */
- (int) meth1 { return 0; } /* { dg-error "redefinition of" } */
@end
@@ -25,6 +25,6 @@
@end
@implementation class4
-+ (void) meth1 {} /* { dg-error "previous definition" } */
++ (void) meth1 {} /* { dg-message "previous definition" } */
+ (void) meth1 {} /* { dg-error "redefinition of" } */
@end
Index: gcc/testsuite/objc.dg/method-9.m
===================================================================
--- gcc/testsuite/objc.dg/method-9.m (Revision 146065)
+++ gcc/testsuite/objc.dg/method-9.m (Arbeitskopie)
@@ -34,9 +34,9 @@
{
NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
/* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 35 } */
- /* { dg-warning "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 11 } */
- /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 19 } */
- /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 15 } */
+ /* { dg-message "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 11 } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 19 } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 15 } */
/* The following warning is a consequence of picking the "wrong" method signature. */
/* { dg-warning "passing argument 1 of .initWithData:. from distinct Objective\\-C type" "" { target *-*-* } 35 } */