From: Tom de Vries <Tom_deVries@mentor.com>
To: Jakub Jelinek <jakub@redhat.com>
Cc: Mike Stump <mikestump@comcast.net>,
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>,
Richard Biener <richard.guenther@gmail.com>,
GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [testsuite] Add missing dg-require-effective-target alloca to gcc testsuite
Date: Fri, 28 Apr 2017 01:35:00 -0000 [thread overview]
Message-ID: <57fe5b00-f121-1b0c-5515-5267b4b08002@mentor.com> (raw)
In-Reply-To: <20170426115738.GP1809@tucnak>
[-- Attachment #1: Type: text/plain, Size: 585 bytes --]
On 04/26/2017 01:57 PM, Jakub Jelinek wrote:
> I guess those should be decided case by case
> whether we want relative, absolute or saved line numbers. If the
> diagnostic is within the same function or code block as the stuff it is
> relative to, relative is fine, but if e.g. the messages are just at the end
> of file and there are unrelated functions in between, it is not a good idea
I've written attached patches:
- replace absolute linenrs in objc.dg,obj-c++.dg
- replace absolute linenrs in gfortran.dg
and tested them on x86_64 with -m64/-m32.
OK for trunk?
Thanks,
- Tom
[-- Attachment #2: 0001-Replace-absolute-linenrs-in-objc.dg-obj-c-.dg.patch --]
[-- Type: text/x-patch, Size: 57444 bytes --]
Replace absolute linenrs in objc.dg,obj-c++.dg
2017-04-25 Tom de Vries <tom@codesourcery.com>
* obj-c++.dg/bitfield-1.mm: Replace absolute linenrs.
* obj-c++.dg/bitfield-4.mm: Same.
* obj-c++.dg/bitfield-5.mm: Same.
* obj-c++.dg/exceptions-3.mm: Same.
* obj-c++.dg/exceptions-5.mm: Same.
* obj-c++.dg/method-1.mm: Same.
* obj-c++.dg/method-12.mm: Same.
* obj-c++.dg/method-13.mm: Same.
* obj-c++.dg/method-15.mm: Same.
* obj-c++.dg/method-16.mm: Same.
* obj-c++.dg/property/at-property-18.mm: Same.
* obj-c++.dg/property/at-property-25.mm: Same.
* obj-c++.dg/property/at-property-5.mm: Same.
* obj-c++.dg/property/dynamic-2.mm: Same.
* obj-c++.dg/property/property-neg-3.mm: Same.
* obj-c++.dg/protocol-inheritance-1.mm: Same.
* obj-c++.dg/protocol-inheritance-2.mm: Same.
* obj-c++.dg/syntax-error-1.mm: Same.
* obj-c++.dg/try-catch-13.mm: Same.
* objc.dg/bitfield-4.m: Same.
* objc.dg/class-1.m: Same.
* objc.dg/method-11.m: Same.
* objc.dg/method-6.m: Same.
* objc.dg/method-7.m: Same.
* objc.dg/method-9.m: Same.
* objc.dg/missing-proto-3.m: Same.
* objc.dg/naming-2.m: Same.
* objc.dg/property/at-property-16.m: Same.
* objc.dg/property/at-property-18.m: Same.
* objc.dg/property/at-property-25.m: Same.
* objc.dg/property/at-property-5.m: Same.
* objc.dg/property/dynamic-2.m: Same.
* objc.dg/property/property-neg-3.m: Same.
* objc.dg/protocol-inheritance-1.m: Same.
* objc.dg/protocol-inheritance-2.m: Same.
---
gcc/testsuite/obj-c++.dg/bitfield-1.mm | 24 +++++++--------
gcc/testsuite/obj-c++.dg/bitfield-4.mm | 8 ++---
gcc/testsuite/obj-c++.dg/bitfield-5.mm | 12 ++++----
gcc/testsuite/obj-c++.dg/exceptions-3.mm | 6 ++--
gcc/testsuite/obj-c++.dg/exceptions-5.mm | 6 ++--
gcc/testsuite/obj-c++.dg/method-1.mm | 7 +++--
gcc/testsuite/obj-c++.dg/method-12.mm | 8 ++---
gcc/testsuite/obj-c++.dg/method-13.mm | 8 ++---
gcc/testsuite/obj-c++.dg/method-15.mm | 16 +++++-----
gcc/testsuite/obj-c++.dg/method-16.mm | 16 +++++-----
.../obj-c++.dg/property/at-property-18.mm | 32 ++++++++++----------
.../obj-c++.dg/property/at-property-25.mm | 11 ++++---
gcc/testsuite/obj-c++.dg/property/at-property-5.mm | 4 +--
gcc/testsuite/obj-c++.dg/property/dynamic-2.mm | 4 +--
.../obj-c++.dg/property/property-neg-3.mm | 4 +--
gcc/testsuite/obj-c++.dg/protocol-inheritance-1.mm | 7 ++---
gcc/testsuite/obj-c++.dg/protocol-inheritance-2.mm | 14 ++++-----
gcc/testsuite/obj-c++.dg/syntax-error-1.mm | 5 ++--
gcc/testsuite/obj-c++.dg/try-catch-13.mm | 8 ++---
gcc/testsuite/objc.dg/bitfield-4.m | 12 ++++----
gcc/testsuite/objc.dg/class-1.m | 17 ++++++-----
gcc/testsuite/objc.dg/method-11.m | 16 +++++-----
gcc/testsuite/objc.dg/method-6.m | 8 ++---
gcc/testsuite/objc.dg/method-7.m | 8 ++---
gcc/testsuite/objc.dg/method-9.m | 16 +++++-----
gcc/testsuite/objc.dg/missing-proto-3.m | 7 ++---
gcc/testsuite/objc.dg/naming-2.m | 4 +--
gcc/testsuite/objc.dg/property/at-property-16.m | 34 +++++++++++-----------
gcc/testsuite/objc.dg/property/at-property-18.m | 32 ++++++++++----------
gcc/testsuite/objc.dg/property/at-property-25.m | 11 ++++---
gcc/testsuite/objc.dg/property/at-property-5.m | 4 +--
gcc/testsuite/objc.dg/property/dynamic-2.m | 4 +--
gcc/testsuite/objc.dg/property/property-neg-3.m | 4 +--
gcc/testsuite/objc.dg/protocol-inheritance-1.m | 7 ++---
gcc/testsuite/objc.dg/protocol-inheritance-2.m | 14 ++++-----
35 files changed, 196 insertions(+), 202 deletions(-)
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-1.mm b/gcc/testsuite/obj-c++.dg/bitfield-1.mm
index 92aaae4..a637619 100644
--- a/gcc/testsuite/obj-c++.dg/bitfield-1.mm
+++ b/gcc/testsuite/obj-c++.dg/bitfield-1.mm
@@ -39,10 +39,10 @@ struct Base_0 { /* { dg-warning "padding struct size to alignment boundary" } */
signed e: 5;
unsigned f: 4;
enum Enum g: 3;
-}
+} /* { dg-line interface_Derived } */
@end
-struct Derived_0 {
+struct Derived_0 { /* { dg-line struct_Derived_0 } */
Class isa;
unsigned a: 2;
int b: 3;
@@ -56,10 +56,10 @@ struct Derived_0 {
@interface Leaf: Derived {
@public
signed h: 2;
-}
+} /* { dg-line interface_Leaf } */
@end
-struct Leaf_0 {
+struct Leaf_0 { /* { dg-line struct_Leaf_0 } */
Class isa;
unsigned a: 2;
int b: 3;
@@ -74,8 +74,8 @@ struct Leaf_0 {
/* Note that the semicolon after @defs(...) is optional. */
typedef struct { @defs(Base) } Base_t; /* { dg-warning "padding struct size to alignment boundary" } */
-typedef struct { @defs(Derived); } Derived_t;
-typedef struct { @defs(Leaf); } Leaf_t;
+typedef struct { @defs(Derived); } Derived_t; /* { dg-line Derived_t_def } */
+typedef struct { @defs(Leaf); } Leaf_t; /* { dg-line Leaf_t_def } */
int main(void)
{
@@ -116,9 +116,9 @@ int main(void)
/* { dg-prune-output "In file included from" } Ignore this message. */
/* { dg-bogus "padding struct to align" "PR23610" { target *-*-* } 0 } */
-/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 42 } */
-/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 45 } */
-/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 59 } */
-/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 62 } */
-/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 77 } */
-/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 78 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } interface_Derived } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } struct_Derived_0 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } interface_Leaf } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } struct_Leaf_0 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } Derived_t_def } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } Leaf_t_def } */
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-4.mm b/gcc/testsuite/obj-c++.dg/bitfield-4.mm
index 9ffa398..1fd6d3a 100644
--- a/gcc/testsuite/obj-c++.dg/bitfield-4.mm
+++ b/gcc/testsuite/obj-c++.dg/bitfield-4.mm
@@ -25,13 +25,13 @@ enum Enum { one, two, three, four };
signed e: 5;
int f: 4;
enum Enum g: 3;
-}
+} /* { dg-line interface_Derived } */
@end
/* Note that the semicolon after @defs(...) is optional. */
typedef struct { @defs(Base) } Base_t; /* { dg-warning "padding struct size to alignment boundary" } */
-typedef struct { @defs(Derived); } Derived_t;
+typedef struct { @defs(Derived); } Derived_t; /* { dg-line Derived_t_def } */
int main(void)
{
@@ -52,5 +52,5 @@ int main(void)
/* { dg-prune-output "In file included from" } Ignore this message. */
/* { dg-bogus "padding struct to align" "PR23610" { target *-*-* } 0 } */
-/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 28 } */
-/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } 34 } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } interface_Derived } */
+/* { dg-bogus "padding struct size" "PR23610" { xfail lp64 } Derived_t_def } */
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-5.mm b/gcc/testsuite/obj-c++.dg/bitfield-5.mm
index b6716df..3b0065d 100644
--- a/gcc/testsuite/obj-c++.dg/bitfield-5.mm
+++ b/gcc/testsuite/obj-c++.dg/bitfield-5.mm
@@ -10,20 +10,20 @@
@end
@interface WithBitfields: Base {
- void *isa;
- unsigned a: 3;
+ void *isa; /* { dg-line WithBitfields_isa } */
+ unsigned a: 3; /* { dg-line WithBitfields_a } */
signed b: 4;
- int c: 5;
+ int c: 5; /* { dg-line WithBitfields_c } */
}
@end
@implementation WithBitfields {
char *isa; /* { dg-error "conflicting instance variable type .char \\*isa." } */
- /* { dg-error "previous declaration of .void \\*isa." "" { target *-*-* } 13 } */
+ /* { dg-error "previous declaration of .void \\*isa." "" { target *-*-* } WithBitfields_isa } */
unsigned a: 5; /* { dg-error "conflicting instance variable type .unsigned( int)? a: 5." } */
- /* { dg-error "previous declaration of .unsigned( int)? a: 3." "" { target *-*-* } 14 } */
+ /* { dg-error "previous declaration of .unsigned( int)? a: 3." "" { target *-*-* } WithBitfields_a } */
signed b: 4; /* This one is fine. */
int c: 3; /* { dg-error "conflicting instance variable type .int c: 3." } */
- /* { dg-error "previous declaration of .int c: 5." "" { target *-*-* } 16 } */
+ /* { dg-error "previous declaration of .int c: 5." "" { target *-*-* } WithBitfields_c } */
}
@end
diff --git a/gcc/testsuite/obj-c++.dg/exceptions-3.mm b/gcc/testsuite/obj-c++.dg/exceptions-3.mm
index a9da9d6..c29752d 100644
--- a/gcc/testsuite/obj-c++.dg/exceptions-3.mm
+++ b/gcc/testsuite/obj-c++.dg/exceptions-3.mm
@@ -10,7 +10,7 @@
@interface MyObject
{
Class isa;
-}
+} /* { dg-line interface_MyObject } */
@end
@implementation MyObject
@@ -71,8 +71,8 @@ int test (id object)
@try { @throw object; }
@catch (MyObject x) /* { dg-error "@catch parameter is not a known Objective-C class type" } */
{ /* { dg-error "no matching function" "" { target *-*-* } .-1 } */
- dummy++; /* { dg-message "MyObject" "" { target *-*-* } 13 } */
- } /* { dg-message "candidate" "" { target *-*-* } 13 } */
+ dummy++; /* { dg-message "MyObject" "" { target *-*-* } interface_MyObject } */
+ } /* { dg-message "candidate" "" { target *-*-* } interface_MyObject } */
@try { @throw object; }
@catch (static MyObject *x) /* { dg-error "storage class" } */
{
diff --git a/gcc/testsuite/obj-c++.dg/exceptions-5.mm b/gcc/testsuite/obj-c++.dg/exceptions-5.mm
index c1a2e4c..9e733a7 100644
--- a/gcc/testsuite/obj-c++.dg/exceptions-5.mm
+++ b/gcc/testsuite/obj-c++.dg/exceptions-5.mm
@@ -10,7 +10,7 @@
@interface MyObject
{
Class isa;
-}
+} /* { dg-line interface_MyObject } */
@end
@implementation MyObject
@@ -71,8 +71,8 @@ int test (id object)
@try { @throw object; }
@catch (MyObject) /* { dg-error "@catch parameter is not a known Objective-C class type" } */
{ /* { dg-error "no matching function" "" { target *-*-* } .-1 } */
- dummy++; /* { dg-message "MyObject" "" { target *-*-* } 13 } */
- } /* { dg-message "candidate" "" { target *-*-* } 13 } */
+ dummy++; /* { dg-message "MyObject" "" { target *-*-* } interface_MyObject } */
+ } /* { dg-message "candidate" "" { target *-*-* } interface_MyObject } */
@try { @throw object; }
@catch (static MyObject *) /* { dg-error "storage class" } */
diff --git a/gcc/testsuite/obj-c++.dg/method-1.mm b/gcc/testsuite/obj-c++.dg/method-1.mm
index fdab6b7..7317ae2 100644
--- a/gcc/testsuite/obj-c++.dg/method-1.mm
+++ b/gcc/testsuite/obj-c++.dg/method-1.mm
@@ -22,9 +22,10 @@
@end
int main(void) {
- id i = [(Int2 *)[Int1 classMethod1] int2Method]; /* { dg-bogus "may not respond to" } */
+ id i = [(Int2 *)[Int1 classMethod1] int2Method]; /* { dg-line i_def } */
+ /* { dg-bogus "may not respond to" "" { target *-*-* } i_def } */
int j = [(Int2 *)[Int2 classMethod2] instanceMethod: 45]; /* { dg-bogus "multiple methods" } */
- /* { dg-bogus "invalid conversion" "" { target *-*-* } 25 } */
- /* { dg-bogus "invalid conversion" "" { target *-*-* } 25 } */
+ /* { dg-bogus "invalid conversion" "" { target *-*-* } i_def } */
+ /* { dg-bogus "invalid conversion" "" { target *-*-* } i_def } */
return j;
}
diff --git a/gcc/testsuite/obj-c++.dg/method-12.mm b/gcc/testsuite/obj-c++.dg/method-12.mm
index 1c78b12..2282dec 100644
--- a/gcc/testsuite/obj-c++.dg/method-12.mm
+++ b/gcc/testsuite/obj-c++.dg/method-12.mm
@@ -7,12 +7,12 @@
#include <objc/Protocol.h>
@interface Base
-- (unsigned)port;
+- (unsigned)port; /* { dg-line Base_port } */
@end
@interface Derived: Base
- (Object *)port;
-+ (Protocol *)port;
++ (Protocol *)port; /* { dg-line Derived_port_last } */
- (id)starboard;
@end
@@ -20,8 +20,8 @@ void foo(void) {
Class receiver;
[receiver port]; /* { dg-warning "multiple methods named .\\+port. found" } */
- /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 10 } */
- /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
+ /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } Base_port } */
+ /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } Derived_port_last } */
[receiver starboard]; /* { dg-warning "no .\\+starboard. method found" } */
/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/method-13.mm b/gcc/testsuite/obj-c++.dg/method-13.mm
index c2ae447..b0a1f59 100644
--- a/gcc/testsuite/obj-c++.dg/method-13.mm
+++ b/gcc/testsuite/obj-c++.dg/method-13.mm
@@ -5,11 +5,11 @@
#include "../objc-obj-c++-shared/TestsuiteObject.h"
@interface Class1
-- (void)setWindow:(TestsuiteObject *)wdw;
+- (void)setWindow:(TestsuiteObject *)wdw; /* { dg-line Class1_setWindow } */
@end
@interface Class2
-- (void)setWindow:(Class1 *)window;
+- (void)setWindow:(Class1 *)window; /* { dg-line Class2_setWindow } */
@end
id foo(void) {
@@ -20,8 +20,8 @@ id foo(void) {
/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } .-2 } */
/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } .-3 } */
[obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
- /* { dg-message "using .\\-\\(void\\)setWindow:\\(TestsuiteObject \\*\\)wdw." "" { target *-*-* } 8 } */
- /* { dg-message "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 12 } */
+ /* { dg-message "using .\\-\\(void\\)setWindow:\\(TestsuiteObject \\*\\)wdw." "" { target *-*-* } Class1_setWindow } */
+ /* { dg-message "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } Class2_setWindow } */
return obj;
}
diff --git a/gcc/testsuite/obj-c++.dg/method-15.mm b/gcc/testsuite/obj-c++.dg/method-15.mm
index a5543d6..da851c9 100644
--- a/gcc/testsuite/obj-c++.dg/method-15.mm
+++ b/gcc/testsuite/obj-c++.dg/method-15.mm
@@ -6,15 +6,15 @@
#include "../objc-obj-c++-shared/TestsuiteObject.h"
@protocol MyObject
-- (id)initWithData:(TestsuiteObject *)data;
+- (id)initWithData:(TestsuiteObject *)data; /* { dg-line MyObject_initWithData } */
@end
@protocol SomeOther
-- (id)initWithData:(int)data;
+- (id)initWithData:(int)data; /* { dg-line SomeOther_initWithData } */
@end
@protocol MyCoding
-- (id)initWithData:(id<MyObject, MyCoding>)data;
+- (id)initWithData:(id<MyObject, MyCoding>)data; /* { dg-line MyCoding_initWithData } */
@end
@interface NTGridDataObject: TestsuiteObject <MyCoding>
@@ -30,14 +30,14 @@
}
+ (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data
{
- NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
+ NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data]; /* { dg-line result_init } */
/* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } .-1 } */
- /* { dg-message "using .\\-\\(id\\)initWithData:\\(TestsuiteObject \\*\\)data." "" { target *-*-* } 9 } */
- /* { dg-message "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 17 } */
- /* { dg-message "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 13 } */
+ /* { dg-message "using .\\-\\(id\\)initWithData:\\(TestsuiteObject \\*\\)data." "" { target *-*-* } MyObject_initWithData } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } MyCoding_initWithData } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } SomeOther_initWithData } */
/* 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 *-*-* } 33 } */
+ /* { dg-warning "passing argument 1 of .initWithData:. from distinct Objective\\-C type" "" { target *-*-* } result_init } */
return result;
}
@end
diff --git a/gcc/testsuite/obj-c++.dg/method-16.mm b/gcc/testsuite/obj-c++.dg/method-16.mm
index d23bf77..4b691d8 100644
--- a/gcc/testsuite/obj-c++.dg/method-16.mm
+++ b/gcc/testsuite/obj-c++.dg/method-16.mm
@@ -10,25 +10,25 @@
#include <objc/objc.h>
@interface Object1
-- (void)initWithData:(Object1 *)data;
+- (void)initWithData:(Object1 *)data; /* { dg-line Object1_initWithData } */
@end
@interface Object2
-- (id)initWithData:(Object1 *)data;
+- (id)initWithData:(Object1 *)data; /* { dg-line Object2_initWithData } */
@end
@interface Object3
-- (id)initWithData:(Object2 *)data;
+- (id)initWithData:(Object2 *)data; /* { dg-line Object3_initWithData } */
@end
void foo(void) {
id obj1, obj2 = 0;
- obj2 = [obj1 initWithData: obj2];
+ obj2 = [obj1 initWithData: obj2]; /* { dg-line obj2_assign } */
/* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } .-1 } */
- /* { dg-message "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 13 } */
- /* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 17 } */
- /* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } 21 } */
+ /* { dg-message "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } Object1_initWithData } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } Object2_initWithData } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } Object3_initWithData } */
/* The following error is a consequence of picking the "wrong" method signature. */
- /* { dg-error "void value not ignored as it ought to be" "" { target *-*-* } 26 } */
+ /* { dg-error "void value not ignored as it ought to be" "" { target *-*-* } obj2_assign } */
}
diff --git a/gcc/testsuite/obj-c++.dg/property/at-property-18.mm b/gcc/testsuite/obj-c++.dg/property/at-property-18.mm
index d318210..efd6f21 100644
--- a/gcc/testsuite/obj-c++.dg/property/at-property-18.mm
+++ b/gcc/testsuite/obj-c++.dg/property/at-property-18.mm
@@ -13,34 +13,34 @@
{
Class isa;
}
-@property (assign) id a;
-@property (retain) id b;
-@property int c;
-@property (nonatomic) int d;
-@property int e;
-@property int f;
-@property int g;
+@property (assign) id a; /* { dg-line MyRootClass_a } */
+@property (retain) id b; /* { dg-line MyRootClass_b } */
+@property int c; /* { dg-line MyRootClass_c } */
+@property (nonatomic) int d; /* { dg-line MyRootClass_d } */
+@property int e; /* { dg-line MyRootClass_e } */
+@property int f; /* { dg-line MyRootClass_f } */
+@property int g; /* { dg-line MyRootClass_g } */
@property (readonly) int h;
-@property (readonly,getter=getMe) int i;
+@property (readonly,getter=getMe) int i; /* { dg-line MyRootClass_i } */
@property (nonatomic) float j;
@end
@interface MyRootClass (Category)
@property (retain) id a; /* { dg-warning "assign semantics attributes of property .a. conflict with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 16 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_a } */
@property (assign) id b; /* { dg-warning "assign semantics attributes of property .b. conflict with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 17 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_b } */
@property (nonatomic) int c; /* { dg-warning ".nonatomic. attribute of property .c. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 18 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_c } */
@property int d; /* { dg-warning ".nonatomic. attribute of property .d. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 19 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_d } */
@property (setter=setX:) int e; /* { dg-warning ".setter. attribute of property .e. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 20 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_e } */
@property (getter=x) int f; /* { dg-warning ".getter. attribute of property .f. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 21 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_f } */
@property (readonly) int g; /* { dg-warning ".readonly. attribute of property .g. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 22 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_g } */
@property (readwrite) int h; /* Ok */
@property (readonly) int i; /* { dg-warning ".getter. attribute of property .i. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 24 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_i } */
@property (nonatomic) float j; /* Ok */
@end
diff --git a/gcc/testsuite/obj-c++.dg/property/at-property-25.mm b/gcc/testsuite/obj-c++.dg/property/at-property-25.mm
index 422a29e..f5f4988 100644
--- a/gcc/testsuite/obj-c++.dg/property/at-property-25.mm
+++ b/gcc/testsuite/obj-c++.dg/property/at-property-25.mm
@@ -79,9 +79,8 @@
@implementation MySubClass4
@end
-
-/* { dg-warning "incomplete implementation of class" "" { target *-*-* } 81 } */
-/* { dg-warning "method definition for ..setCount1:. not found" "" { target *-*-* } 81 } */
-/* { dg-warning "method definition for ..count1. not found" "" { target *-*-* } 81 } */
-/* { dg-warning "method definition for ..count2. not found" "" { target *-*-* } 81 } */
-/* { dg-warning "class .MySubClass4. does not fully implement the .count2. protocol" "" { target *-*-* } 81 } */
+/* { dg-warning "incomplete implementation of class" "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for ..setCount1:. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "method definition for ..count1. not found" "" { target *-*-* } .-3 } */
+/* { dg-warning "method definition for ..count2. not found" "" { target *-*-* } .-4 } */
+/* { dg-warning "class .MySubClass4. does not fully implement the .count2. protocol" "" { target *-*-* } .-5 } */
diff --git a/gcc/testsuite/obj-c++.dg/property/at-property-5.mm b/gcc/testsuite/obj-c++.dg/property/at-property-5.mm
index c8eec2f..d4b33d9 100644
--- a/gcc/testsuite/obj-c++.dg/property/at-property-5.mm
+++ b/gcc/testsuite/obj-c++.dg/property/at-property-5.mm
@@ -23,12 +23,12 @@
@property (retain) int property_c; /* { dg-error ".retain. attribute is only valid for Objective-C objects" } */
@property (copy) int property_d; /* { dg-error ".copy. attribute is only valid for Objective-C objects" } */
-@property (retain) id property_e;
+@property (retain) id property_e; /* { dg-line property_e_first } */
@property (retain) id property_f;
@property (retain) id property_g;
@property (retain) id property_h;
@property (retain) id property_e; /* { dg-error "redeclaration of property .property_e." } */
- /* { dg-message "originally specified here" "" { target *-*-* } 26 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } property_e_first } */
@end
@property id test; /* { dg-error "misplaced .@property. Objective-C.. construct" } */
diff --git a/gcc/testsuite/obj-c++.dg/property/dynamic-2.mm b/gcc/testsuite/obj-c++.dg/property/dynamic-2.mm
index 49004ef..6a12c7f 100644
--- a/gcc/testsuite/obj-c++.dg/property/dynamic-2.mm
+++ b/gcc/testsuite/obj-c++.dg/property/dynamic-2.mm
@@ -38,8 +38,8 @@
@end
@implementation AnotherTest
-@dynamic one;
+@dynamic one; /* { dg-line dynamic_one_first } */
@dynamic one; /* { dg-error "property .one. already specified in .@dynamic." } */
- /* { dg-message "originally specified here" "" { target *-*-* } 41 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } dynamic_one_first } */
@dynamic three; /* { dg-error "no declaration of property .three. found in the interface" } */
@end
diff --git a/gcc/testsuite/obj-c++.dg/property/property-neg-3.mm b/gcc/testsuite/obj-c++.dg/property/property-neg-3.mm
index 0b30931..cc9b068 100644
--- a/gcc/testsuite/obj-c++.dg/property/property-neg-3.mm
+++ b/gcc/testsuite/obj-c++.dg/property/property-neg-3.mm
@@ -8,7 +8,7 @@
@end
@implementation Person
-@dynamic firstName;
+@dynamic firstName; /* { dg-line firstName_first } */
@synthesize firstName; /* { dg-error "property .firstName. already specified in .@dynamic." } */
- /* { dg-message "originally specified here" "" { target *-*-* } 11 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } firstName_first } */
@end
diff --git a/gcc/testsuite/obj-c++.dg/protocol-inheritance-1.mm b/gcc/testsuite/obj-c++.dg/protocol-inheritance-1.mm
index 6c23a46..5241b29 100644
--- a/gcc/testsuite/obj-c++.dg/protocol-inheritance-1.mm
+++ b/gcc/testsuite/obj-c++.dg/protocol-inheritance-1.mm
@@ -48,7 +48,6 @@
@implementation MySubClass2
@end /* Warnings here, below. */
-
-/* { dg-warning "incomplete implementation of class .MySubClass2." "" { target *-*-* } 50 } */
-/* { dg-warning "method definition for .\\-method2. not found" "" { target *-*-* } 50 } */
-/* { dg-warning "class .MySubClass2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } 50 } */
+/* { dg-warning "incomplete implementation of class .MySubClass2." "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .\\-method2. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "class .MySubClass2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/obj-c++.dg/protocol-inheritance-2.mm b/gcc/testsuite/obj-c++.dg/protocol-inheritance-2.mm
index d769949..74c9174 100644
--- a/gcc/testsuite/obj-c++.dg/protocol-inheritance-2.mm
+++ b/gcc/testsuite/obj-c++.dg/protocol-inheritance-2.mm
@@ -37,10 +37,9 @@
@implementation MySubClass
@end
-
-/* { dg-warning "incomplete implementation of class .MySubClass." "" { target *-*-* } 39 } */
-/* { dg-warning "method definition for .\\-method. not found" "" { target *-*-* } 39 } */
-/* { dg-warning "class .MySubClass. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } 39 } */
+/* { dg-warning "incomplete implementation of class .MySubClass." "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .\\-method. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "class .MySubClass. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } .-3 } */
/* The subclass instead does not inherit the method method2 (and does
@@ -51,7 +50,6 @@
@implementation MySubClass2
@end /* Warnings here, below. */
-
-/* { dg-warning "incomplete implementation of class .MySubClass2." "" { target *-*-* } 53 } */
-/* { dg-warning "method definition for .\\-method2. not found" "" { target *-*-* } 53 } */
-/* { dg-warning "class .MySubClass2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } 53 } */
+/* { dg-warning "incomplete implementation of class .MySubClass2." "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .\\-method2. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "class .MySubClass2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-1.mm b/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
index 1fe9ca3..320d56c 100644
--- a/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
+++ b/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
@@ -25,8 +25,9 @@ extern void NXLog(const char *, ...);
@implementation Test2
- (void) foo2
- NXLog("Hello, world!"); /* { dg-error "expected .\{. before .NXLog." } */
+ NXLog("Hello, world!"); /* { dg-line Test2_foo2_body } */
+ /* { dg-error "expected .\{. before .NXLog." "" { target *-*-* } Test2_foo2_body } */
} /* { dg-error "stray .\}. between Objective\\-C\\+\\+ methods" } */
@end
-/* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } 28 } */
+/* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } Test2_foo2_body } */
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-13.mm b/gcc/testsuite/obj-c++.dg/try-catch-13.mm
index aaf451e..050d811 100644
--- a/gcc/testsuite/obj-c++.dg/try-catch-13.mm
+++ b/gcc/testsuite/obj-c++.dg/try-catch-13.mm
@@ -9,7 +9,7 @@
- (void) testSpoon;
@end
-extern void some_func (int *);
+extern void some_func (int *); /* { dg-line some_func_decl } */
@implementation TestMyTests
- (void) testSpoon {
@@ -22,7 +22,7 @@ extern void some_func (int *);
typeof(q) k = 66;
some_func (&j);
/* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
-/* { dg-message "initializing argument" "" { target *-*-* } 12 } */
+/* { dg-message "initializing argument" "" { target *-*-* } some_func_decl } */
some_func (&k);
}
@catch (id exc) {
@@ -39,7 +39,7 @@ extern void some_func (int *);
/* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
/* The following is disabled as it is already checked above and the testsuites seems
to count multiple different identical errors on the same line only once */
-/* dg-message "initializing argument" "" { target *-*-* } 12 */
+/* dg-message "initializing argument" "" { target *-*-* } some_func_decl */
}
@catch (id exc) {
@throw;
@@ -54,7 +54,7 @@ extern void some_func (int *);
/* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
/* The following is disabled as it is already checked above and the testsuites seems
to count multiple different identical errors on the same line only once */
-/* dg-message "initializing argument" "" { target *-*-* } 12 */
+/* dg-message "initializing argument" "" { target *-*-* } some_func_decl */
some_func (&k);
}
@catch (id exc) {
diff --git a/gcc/testsuite/objc.dg/bitfield-4.m b/gcc/testsuite/objc.dg/bitfield-4.m
index 4883497..0f78e0b 100644
--- a/gcc/testsuite/objc.dg/bitfield-4.m
+++ b/gcc/testsuite/objc.dg/bitfield-4.m
@@ -9,20 +9,20 @@
@end
@interface WithBitfields: Base {
- void *isa;
- unsigned a: 3;
+ void *isa; /* { dg-line WithBitFields_isa } */
+ unsigned a: 3; /* { dg-line WithBitFields_a } */
signed b: 4;
- int c: 5;
+ int c: 5; /* { dg-line WithBitFields_c } */
}
@end
@implementation WithBitfields {
char *isa; /* { dg-error "conflicting instance variable type .char \\*isa." } */
- /* { dg-error "previous declaration of .void \\*isa." "" { target *-*-* } 12 } */
+ /* { dg-error "previous declaration of .void \\*isa." "" { target *-*-* } WithBitFields_isa } */
unsigned a: 5; /* { dg-error "conflicting instance variable type .unsigned( int)? a: 5." } */
- /* { dg-error "previous declaration of .unsigned( int)? a: 3." "" { target *-*-* } 13 } */
+ /* { dg-error "previous declaration of .unsigned( int)? a: 3." "" { target *-*-* } WithBitFields_a } */
signed b: 4; /* This one is fine. */
int c: 3; /* { dg-error "conflicting instance variable type .int c: 3." } */
- /* { dg-error "previous declaration of .int c: 5." "" { target *-*-* } 15 } */
+ /* { dg-error "previous declaration of .int c: 5." "" { target *-*-* } WithBitFields_c } */
}
@end
diff --git a/gcc/testsuite/objc.dg/class-1.m b/gcc/testsuite/objc.dg/class-1.m
index 64304f5..0504937 100644
--- a/gcc/testsuite/objc.dg/class-1.m
+++ b/gcc/testsuite/objc.dg/class-1.m
@@ -1,20 +1,21 @@
/* Redeclarations of class names. */
/* { dg-do compile } */
-typedef int foo;
+typedef int foo; /* { dg-line foo_def } */
@class foo; /* { dg-error "redeclared as different kind of symbol" } */
-/* { dg-error "previous declaration of" "" { target *-*-* } 4 } */
+/* { dg-error "previous declaration of" "" { target *-*-* } foo_def } */
-typedef int bar;
+typedef int bar; /* { dg-line bar_def } */
@interface bar
@end /* { dg-error "redeclared as different kind of symbol" } */
-/* { dg-error "previous declaration of" "" { target *-*-* } 9 } */
+/* { dg-error "previous declaration of" "" { target *-*-* } bar_def } */
-int glob;
+int glob; /* { dg-line glob_def } */
@implementation glob
-@end /* { dg-error "redeclared as different kind of symbol" } */
-/* { dg-error "previous declaration of" "" { target *-*-* } 15 } */
-/* { dg-warning "annot find interface declaration" "" { target *-*-* } 18 } */
+@end /* { dg-line glob_impl_end } */
+/* { dg-error "redeclared as different kind of symbol" "" { target *-*-* } glob_impl_end } */
+/* { dg-error "previous declaration of" "" { target *-*-* } glob_def } */
+/* { dg-warning "annot find interface declaration" "" { target *-*-* } glob_impl_end } */
diff --git a/gcc/testsuite/objc.dg/method-11.m b/gcc/testsuite/objc.dg/method-11.m
index ba027a9..6019880 100644
--- a/gcc/testsuite/objc.dg/method-11.m
+++ b/gcc/testsuite/objc.dg/method-11.m
@@ -9,25 +9,25 @@
#include <objc/objc.h>
@interface Object1
-- (void)initWithData:(Object1 *)data;
+- (void)initWithData:(Object1 *)data; /* { dg-line Object1_initWithData } */
@end
@interface Object2
-- (id)initWithData:(Object1 *)data;
+- (id)initWithData:(Object1 *)data; /* { dg-line Object2_initWithData } */
@end
@interface Object3
-- (id)initWithData:(Object2 *)data;
+- (id)initWithData:(Object2 *)data; /* { dg-line Object3_initWithData } */
@end
void foo(void) {
id obj1, obj2 = 0;
- obj2 = [obj1 initWithData: obj2];
+ obj2 = [obj1 initWithData: obj2]; /* { dg-line initWithData_message } */
/* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } .-1 } */
- /* { 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 } */
+ /* { dg-message "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } Object1_initWithData } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } Object2_initWithData } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } Object3_initWithData } */
/* 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 } */
+ /* { dg-error "void value not ignored as it ought to be" "" { target *-*-* } initWithData_message } */
}
diff --git a/gcc/testsuite/objc.dg/method-6.m b/gcc/testsuite/objc.dg/method-6.m
index 1c87670..35676b1 100644
--- a/gcc/testsuite/objc.dg/method-6.m
+++ b/gcc/testsuite/objc.dg/method-6.m
@@ -14,12 +14,12 @@
#endif
@interface Base
-- (unsigned)port;
+- (unsigned)port; /* { dg-line Base_port } */
@end
@interface Derived: Base
- (OBJECT *)port;
-+ (Protocol *)port;
++ (Protocol *)port; /* { dg-line Derived_port_last } */
- (id)starboard;
@end
@@ -27,8 +27,8 @@ void foo(void) {
Class receiver;
[receiver port]; /* { dg-warning "multiple methods named .\\+port. found" } */
- /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 17 } */
- /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 22 } */
+ /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } Base_port } */
+ /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } Derived_port_last } */
[receiver starboard]; /* { dg-warning "no .\\+starboard. method found" } */
/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/objc.dg/method-7.m b/gcc/testsuite/objc.dg/method-7.m
index 32dad31..a5957ae 100644
--- a/gcc/testsuite/objc.dg/method-7.m
+++ b/gcc/testsuite/objc.dg/method-7.m
@@ -7,11 +7,11 @@
#include "../objc-obj-c++-shared/TestsuiteObject.h"
@interface Class1
-- (void)setWindow:(TestsuiteObject *)wdw;
+- (void)setWindow:(TestsuiteObject *)wdw; /* { dg-line Class1_setWindow } */
@end
@interface Class2
-- (void)setWindow:(Class1 *)window;
+- (void)setWindow:(Class1 *)window; /* { dg-line Class2_setWindow } */
@end
id foo(void) {
@@ -22,8 +22,8 @@ id foo(void) {
/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } .-2 } */
/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } .-3 } */
[obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
- /* { dg-message "using .\\-\\(void\\)setWindow:\\(TestsuiteObject \\*\\)wdw." "" { target *-*-* } 10 } */
- /* { dg-message "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 14 } */
+ /* { dg-message "using .\\-\\(void\\)setWindow:\\(TestsuiteObject \\*\\)wdw." "" { target *-*-* } Class1_setWindow } */
+ /* { dg-message "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } Class2_setWindow } */
return obj;
}
diff --git a/gcc/testsuite/objc.dg/method-9.m b/gcc/testsuite/objc.dg/method-9.m
index 3a6cf87..ce2d19b 100644
--- a/gcc/testsuite/objc.dg/method-9.m
+++ b/gcc/testsuite/objc.dg/method-9.m
@@ -8,15 +8,15 @@
#include "../objc-obj-c++-shared/TestsuiteObject.h"
@protocol MyObject
-- (id)initWithData:(TestsuiteObject *)data;
+- (id)initWithData:(TestsuiteObject *)data; /* { dg-line MyObject_initWithData } */
@end
@protocol SomeOther
-- (id)initWithData:(int)data;
+- (id)initWithData:(int)data; /* { dg-line SomeOther_initWithData } */
@end
@protocol MyCoding
-- (id)initWithData:(id<MyObject, MyCoding>)data;
+- (id)initWithData:(id<MyObject, MyCoding>)data; /* { dg-line MyCoding_initWithData } */
@end
@interface NTGridDataObject: TestsuiteObject <MyCoding>
@@ -32,14 +32,14 @@
}
+ (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data
{
- NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
+ NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data]; /* { dg-line initWithData_message } */
/* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } .-1 } */
- /* { dg-message "using .\\-\\(id\\)initWithData:\\(TestsuiteObject \\*\\)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 } */
+ /* { dg-message "using .\\-\\(id\\)initWithData:\\(TestsuiteObject \\*\\)data." "" { target *-*-* } MyObject_initWithData } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } MyCoding_initWithData } */
+ /* { dg-message "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } SomeOther_initWithData } */
/* 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 } */
+ /* { dg-warning "passing argument 1 of .initWithData:. from distinct Objective\\-C type" "" { target *-*-* } initWithData_message } */
return result;
}
@end
diff --git a/gcc/testsuite/objc.dg/missing-proto-3.m b/gcc/testsuite/objc.dg/missing-proto-3.m
index cb7507e..05e1a25 100644
--- a/gcc/testsuite/objc.dg/missing-proto-3.m
+++ b/gcc/testsuite/objc.dg/missing-proto-3.m
@@ -19,8 +19,7 @@
return self;
}
@end
-
-/* { dg-warning "incomplete implementation of class .MyClass." "" { target *-*-* } 21 } */
-/* { dg-warning "method definition for .\\-missingMethod1. not found" "" { target *-*-* } 21 } */
-/* { dg-warning "class .MyClass. does not fully implement the .DefinedProtocol. protocol" "" { target *-*-* } 21 } */
+/* { dg-warning "incomplete implementation of class .MyClass." "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .\\-missingMethod1. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "class .MyClass. does not fully implement the .DefinedProtocol. protocol" "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/objc.dg/naming-2.m b/gcc/testsuite/objc.dg/naming-2.m
index 6d08750..3dd59f9 100644
--- a/gcc/testsuite/objc.dg/naming-2.m
+++ b/gcc/testsuite/objc.dg/naming-2.m
@@ -6,7 +6,7 @@
@end
float Foo; /* { dg-error "parse error|syntax error|expected|redeclaration" } */
-double Bar;
+double Bar; /* { dg-line Bar_decl } */
@interface Bar
@end /* { dg-error "redeclared as different kind of symbol" } */
-/* { dg-error "previous declaration of" "" { target *-*-* } 9 } */
+/* { dg-error "previous declaration of" "" { target *-*-* } Bar_decl } */
diff --git a/gcc/testsuite/objc.dg/property/at-property-16.m b/gcc/testsuite/objc.dg/property/at-property-16.m
index 95f82e4..d61373a 100644
--- a/gcc/testsuite/objc.dg/property/at-property-16.m
+++ b/gcc/testsuite/objc.dg/property/at-property-16.m
@@ -10,15 +10,15 @@
{
Class isa;
}
-@property (assign) id a;
-@property (retain) id b;
-@property int c;
-@property (nonatomic) int d;
-@property int e;
-@property int f;
-@property int g;
-@property (readonly) int h;
-@property (readonly,getter=getMe) int i;
+@property (assign) id a; /* { dg-line MyRootClass_property_a } */
+@property (retain) id b; /* { dg-line MyRootClass_property_b } */
+@property int c; /* { dg-line MyRootClass_property_c } */
+@property (nonatomic) int d; /* { dg-line MyRootClass_property_d } */
+@property int e; /* { dg-line MyRootClass_property_e } */
+@property int f; /* { dg-line MyRootClass_property_f } */
+@property int g; /* { dg-line MyRootClass_property_g } */
+@property (readonly) int h;
+@property (readonly,getter=getMe) int i; /* { dg-line MyRootClass_property_i } */
@end
@interface MyClass : MyRootClass
@@ -35,21 +35,21 @@
@interface MyClass2 : MyRootClass
@property (retain) id a; /* { dg-warning "assign semantics attributes of property .a. conflict with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 13 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_a } */
@property (assign) id b; /* { dg-warning "assign semantics attributes of property .b. conflict with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 14 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_b } */
@property (nonatomic) int c; /* { dg-warning ".nonatomic. attribute of property .c. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 15 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_c } */
@property int d; /* { dg-warning ".nonatomic. attribute of property .d. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 16 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_d } */
@property (setter=setX:) int e; /* { dg-warning ".setter. attribute of property .e. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 17 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_e } */
@property (getter=x) int f; /* { dg-warning ".getter. attribute of property .f. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 18 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_f } */
@property (readonly) int g; /* { dg-warning ".readonly. attribute of property .g. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 19 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_g } */
@property (readwrite) int h; /* Ok */
@property (readonly) int i; /* { dg-warning ".getter. attribute of property .i. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 21 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_i } */
@end
diff --git a/gcc/testsuite/objc.dg/property/at-property-18.m b/gcc/testsuite/objc.dg/property/at-property-18.m
index e6ffb39..20edb9b 100644
--- a/gcc/testsuite/objc.dg/property/at-property-18.m
+++ b/gcc/testsuite/objc.dg/property/at-property-18.m
@@ -13,35 +13,35 @@
{
Class isa;
}
-@property (assign) id a;
-@property (retain) id b;
-@property int c;
-@property (nonatomic) int d;
-@property int e;
-@property int f;
-@property int g;
+@property (assign) id a; /* { dg-line MyRootClass_property_a } */
+@property (retain) id b; /* { dg-line MyRootClass_property_b } */
+@property int c; /* { dg-line MyRootClass_property_c } */
+@property (nonatomic) int d; /* { dg-line MyRootClass_property_d } */
+@property int e; /* { dg-line MyRootClass_property_e } */
+@property int f; /* { dg-line MyRootClass_property_f } */
+@property int g; /* { dg-line MyRootClass_property_g } */
@property (readonly) int h;
-@property (readonly,getter=getMe) int i;
+@property (readonly,getter=getMe) int i; /* { dg-line MyRootClass_property_i } */
@property (nonatomic) float j;
@end
@interface MyRootClass (Category)
@property (retain) id a; /* { dg-warning "assign semantics attributes of property .a. conflict with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 16 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_a } */
@property (assign) id b; /* { dg-warning "assign semantics attributes of property .b. conflict with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 17 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_b } */
@property (nonatomic) int c; /* { dg-warning ".nonatomic. attribute of property .c. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 18 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_c } */
@property int d; /* { dg-warning ".nonatomic. attribute of property .d. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 19 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_d } */
@property (setter=setX:) int e; /* { dg-warning ".setter. attribute of property .e. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 20 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_e } */
@property (getter=x) int f; /* { dg-warning ".getter. attribute of property .f. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 21 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_f } */
@property (readonly) int g; /* { dg-warning ".readonly. attribute of property .g. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 22 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_g } */
@property (readwrite) int h; /* Ok */
@property (readonly) int i; /* { dg-warning ".getter. attribute of property .i. conflicts with previous declaration" } */
- /* { dg-message "originally specified here" "" { target *-*-* } 24 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } MyRootClass_property_i } */
@property (nonatomic) float j; /* Ok */
@end
diff --git a/gcc/testsuite/objc.dg/property/at-property-25.m b/gcc/testsuite/objc.dg/property/at-property-25.m
index 422a29e..f5f4988 100644
--- a/gcc/testsuite/objc.dg/property/at-property-25.m
+++ b/gcc/testsuite/objc.dg/property/at-property-25.m
@@ -79,9 +79,8 @@
@implementation MySubClass4
@end
-
-/* { dg-warning "incomplete implementation of class" "" { target *-*-* } 81 } */
-/* { dg-warning "method definition for ..setCount1:. not found" "" { target *-*-* } 81 } */
-/* { dg-warning "method definition for ..count1. not found" "" { target *-*-* } 81 } */
-/* { dg-warning "method definition for ..count2. not found" "" { target *-*-* } 81 } */
-/* { dg-warning "class .MySubClass4. does not fully implement the .count2. protocol" "" { target *-*-* } 81 } */
+/* { dg-warning "incomplete implementation of class" "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for ..setCount1:. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "method definition for ..count1. not found" "" { target *-*-* } .-3 } */
+/* { dg-warning "method definition for ..count2. not found" "" { target *-*-* } .-4 } */
+/* { dg-warning "class .MySubClass4. does not fully implement the .count2. protocol" "" { target *-*-* } .-5 } */
diff --git a/gcc/testsuite/objc.dg/property/at-property-5.m b/gcc/testsuite/objc.dg/property/at-property-5.m
index 0e8aaa2..1267df3 100644
--- a/gcc/testsuite/objc.dg/property/at-property-5.m
+++ b/gcc/testsuite/objc.dg/property/at-property-5.m
@@ -23,12 +23,12 @@
@property (retain) int property_c; /* { dg-error ".retain. attribute is only valid for Objective-C objects" } */
@property (copy) int property_d; /* { dg-error ".copy. attribute is only valid for Objective-C objects" } */
-@property (retain) id property_e;
+@property (retain) id property_e; /* { dg-line property_e_first } */
@property (retain) id property_f;
@property (retain) id property_g;
@property (retain) id property_h;
@property (retain) id property_e; /* { dg-error "redeclaration of property .property_e." } */
- /* { dg-message "originally specified here" "" { target *-*-* } 26 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } property_e_first } */
@end
@property id test; /* { dg-error "property declaration not in .interface or .protocol context" } */
diff --git a/gcc/testsuite/objc.dg/property/dynamic-2.m b/gcc/testsuite/objc.dg/property/dynamic-2.m
index 203ba34..9866a39 100644
--- a/gcc/testsuite/objc.dg/property/dynamic-2.m
+++ b/gcc/testsuite/objc.dg/property/dynamic-2.m
@@ -38,8 +38,8 @@
@end
@implementation AnotherTest
-@dynamic one;
+@dynamic one; /* { dg-line dynamic_one_first } */
@dynamic one; /* { dg-error "property .one. already specified in .@dynamic." } */
- /* { dg-message "originally specified here" "" { target *-*-* } 41 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } dynamic_one_first } */
@dynamic three; /* { dg-error "no declaration of property .three. found in the interface" } */
@end
diff --git a/gcc/testsuite/objc.dg/property/property-neg-3.m b/gcc/testsuite/objc.dg/property/property-neg-3.m
index 0b30931..1902018 100644
--- a/gcc/testsuite/objc.dg/property/property-neg-3.m
+++ b/gcc/testsuite/objc.dg/property/property-neg-3.m
@@ -8,7 +8,7 @@
@end
@implementation Person
-@dynamic firstName;
+@dynamic firstName; /* { dg-line dynamic_firstName } */
@synthesize firstName; /* { dg-error "property .firstName. already specified in .@dynamic." } */
- /* { dg-message "originally specified here" "" { target *-*-* } 11 } */
+ /* { dg-message "originally specified here" "" { target *-*-* } dynamic_firstName } */
@end
diff --git a/gcc/testsuite/objc.dg/protocol-inheritance-1.m b/gcc/testsuite/objc.dg/protocol-inheritance-1.m
index 6c23a46..5241b29 100644
--- a/gcc/testsuite/objc.dg/protocol-inheritance-1.m
+++ b/gcc/testsuite/objc.dg/protocol-inheritance-1.m
@@ -48,7 +48,6 @@
@implementation MySubClass2
@end /* Warnings here, below. */
-
-/* { dg-warning "incomplete implementation of class .MySubClass2." "" { target *-*-* } 50 } */
-/* { dg-warning "method definition for .\\-method2. not found" "" { target *-*-* } 50 } */
-/* { dg-warning "class .MySubClass2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } 50 } */
+/* { dg-warning "incomplete implementation of class .MySubClass2." "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .\\-method2. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "class .MySubClass2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/objc.dg/protocol-inheritance-2.m b/gcc/testsuite/objc.dg/protocol-inheritance-2.m
index d769949..74c9174 100644
--- a/gcc/testsuite/objc.dg/protocol-inheritance-2.m
+++ b/gcc/testsuite/objc.dg/protocol-inheritance-2.m
@@ -37,10 +37,9 @@
@implementation MySubClass
@end
-
-/* { dg-warning "incomplete implementation of class .MySubClass." "" { target *-*-* } 39 } */
-/* { dg-warning "method definition for .\\-method. not found" "" { target *-*-* } 39 } */
-/* { dg-warning "class .MySubClass. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } 39 } */
+/* { dg-warning "incomplete implementation of class .MySubClass." "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .\\-method. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "class .MySubClass. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } .-3 } */
/* The subclass instead does not inherit the method method2 (and does
@@ -51,7 +50,6 @@
@implementation MySubClass2
@end /* Warnings here, below. */
-
-/* { dg-warning "incomplete implementation of class .MySubClass2." "" { target *-*-* } 53 } */
-/* { dg-warning "method definition for .\\-method2. not found" "" { target *-*-* } 53 } */
-/* { dg-warning "class .MySubClass2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } 53 } */
+/* { dg-warning "incomplete implementation of class .MySubClass2." "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .\\-method2. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "class .MySubClass2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } .-3 } */
[-- Attachment #3: 0002-Replace-absolute-linenrs-in-gfortran.dg.patch --]
[-- Type: text/x-patch, Size: 2785 bytes --]
Replace absolute linenrs in gfortran.dg
2017-04-25 Tom de Vries <tom@codesourcery.com>
* gfortran.dg/gomp/appendix-a/a.24.1.f90: Replace absolute linenrs.
* gfortran.dg/gomp/appendix-a/a.31.3.f90: Same.
---
.../gfortran.dg/gomp/appendix-a/a.24.1.f90 | 6 ++---
.../gfortran.dg/gomp/appendix-a/a.31.3.f90 | 26 ++++++++++------------
2 files changed, 15 insertions(+), 17 deletions(-)
diff --git a/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f90 b/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f90
index 802577b..52a2cbb 100644
--- a/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f90
+++ b/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f90
@@ -11,7 +11,7 @@
!$OMP THREADPRIVATE(/BLOCKX/)
INTEGER I, J
i=1
-!$OMP PARALLEL DEFAULT(NONE) PRIVATE(A) SHARED(Z) PRIVATE(J)
+!$OMP PARALLEL DEFAULT(NONE) PRIVATE(A) SHARED(Z) PRIVATE(J) ! { dg-line omp_parallel }
J = OMP_GET_NUM_THREADS();
! O.K. - J is listed in PRIVATE clause
A = Z(J) ! O.K. - A is listed in PRIVATE clause
@@ -19,8 +19,8 @@
X=1 ! O.K. - X is THREADPRIVATE
Z(I) = Y ! Error - cannot reference I or Y here
! { dg-error "'i' not specified" "" { target *-*-* } .-1 } */
-! { dg-error "enclosing 'parallel'" "" { target *-*-* } 14 } */
-! { dg-error "'y' not specified" "" { target *-*-* } 20 } */
+! { dg-error "enclosing 'parallel'" "" { target *-*-* } omp_parallel } */
+! { dg-error "'y' not specified" "" { target *-*-* } .-3 } */
!$OMP DO firstprivate(y)
DO I = 1,10
Z(I) = Y ! O.K. - I is the loop iteration variable
diff --git a/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.3.f90 b/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.3.f90
index 598c904..7de656a 100644
--- a/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.3.f90
+++ b/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.3.f90
@@ -1,15 +1,13 @@
! { dg-do compile }
- PROGRAM A31_3_WRONG
- MAX = HUGE(0)
- M=0
- !$OMP PARALLEL DO REDUCTION(MAX: M) ! MAX is no longer the
- ! intrinsic so this
- ! is non-conforming
-! { dg-error "OMP DECLARE REDUCTION max not found" "" { target *-*-* } 5 } */
- DO I = 1, 100
- CALL SUB(M,I)
- END DO
- END PROGRAM A31_3_WRONG
- SUBROUTINE SUB(M,I)
- M = MAX(M,I)
- END SUBROUTINE SUB
+PROGRAM A31_3_WRONG
+ MAX = HUGE(0)
+ M=0
+ !$OMP PARALLEL DO REDUCTION(MAX: M) ! MAX is no longer the intrinsic so this is non-conforming
+ ! { dg-error "OMP DECLARE REDUCTION max not found" "" { target *-*-* } .-1 } */
+ DO I = 1, 100
+ CALL SUB(M,I)
+ END DO
+END PROGRAM A31_3_WRONG
+SUBROUTINE SUB(M,I)
+ M = MAX(M,I)
+END SUBROUTINE SUB
next prev parent reply other threads:[~2017-04-27 22:05 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-23 15:46 Tom de Vries
2017-03-23 16:24 ` Thomas Schwinge
2017-03-23 16:51 ` Tom de Vries
2017-03-23 17:45 ` Mike Stump
2017-03-24 7:46 ` Tom de Vries
2017-03-24 12:43 ` Rainer Orth
2017-03-24 12:44 ` Richard Biener
2017-03-24 12:53 ` Rainer Orth
2017-03-24 13:04 ` Rainer Orth
2017-03-24 17:45 ` Mike Stump
2017-03-27 14:14 ` Tom de Vries
[not found] ` <d453445e-54be-d3b5-cc27-d73bdbcc855d@mentor.com>
2017-04-26 12:40 ` Tom de Vries
2017-04-26 12:50 ` Jakub Jelinek
2017-04-27 9:03 ` Tom de Vries
2017-04-28 8:23 ` Tom de Vries
2017-04-28 14:31 ` Tom de Vries
2017-04-28 1:35 ` Tom de Vries [this message]
2017-04-28 16:28 ` Jeff Law
2017-03-27 13:11 ` Tom de Vries
2017-03-28 8:51 ` Thomas Schwinge
2017-03-28 8:57 ` Tom de Vries
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57fe5b00-f121-1b0c-5515-5267b4b08002@mentor.com \
--to=tom_devries@mentor.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jakub@redhat.com \
--cc=mikestump@comcast.net \
--cc=richard.guenther@gmail.com \
--cc=ro@CeBiTec.Uni-Bielefeld.DE \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).