public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 0/4] testsuite: Add markers for default_packed targets
@ 2020-07-20 16:31 Dimitar Dimitrov
  2020-07-20 16:31 ` [PATCH 1/4] testsuite: Filter unaligned pointer value warning Dimitar Dimitrov
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Dimitar Dimitrov @ 2020-07-20 16:31 UTC (permalink / raw)
  To: gcc-patches

Hi,

I'm sending a few minor testsuite updates to add markers for targets using packed structures by default. From those targets, I tested AVR and PRU. I don't have setup to test cris and m32c.

I also tested x86_64 to ensure there are neither dropped nor newly failing tests.

Regards,
Dimitar

Dimitar Dimitrov (4):
  testsuite: Filter unaligned pointer value warning
  testsuite: Add expected warning for packed attribute
  testsuite: Relax pattern to include "packed" targets
  testsuite: Add default_packed filters

 .../Waddress-of-packed-member-1.c             | 48 +++++++++----------
 .../Waddress-of-packed-member-2.c             | 37 +++++++-------
 gcc/testsuite/c-c++-common/Wattributes.c      |  2 +-
 gcc/testsuite/c-c++-common/attr-copy.c        |  1 +
 .../c-c++-common/builtin-has-attribute-4.c    |  2 +-
 gcc/testsuite/c-c++-common/pr51628-13.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-15.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-16.c       |  4 +-
 gcc/testsuite/c-c++-common/pr51628-26.c       |  6 +--
 gcc/testsuite/c-c++-common/pr51628-27.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-28.c       | 10 ++--
 gcc/testsuite/c-c++-common/pr51628-29.c       |  3 +-
 gcc/testsuite/c-c++-common/pr51628-3.c        | 12 ++---
 gcc/testsuite/c-c++-common/pr51628-30.c       |  5 +-
 gcc/testsuite/c-c++-common/pr51628-31.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-32.c       |  3 +-
 gcc/testsuite/c-c++-common/pr51628-33.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-35.c       |  4 +-
 gcc/testsuite/c-c++-common/pr51628-4.c        | 12 ++---
 gcc/testsuite/c-c++-common/pr51628-5.c        | 12 ++---
 gcc/testsuite/c-c++-common/pr51628-6.c        | 12 ++---
 gcc/testsuite/c-c++-common/pr51628-8.c        | 14 +++---
 gcc/testsuite/c-c++-common/pr51628-9.c        | 14 +++---
 gcc/testsuite/c-c++-common/pr88664-2.c        |  4 +-
 gcc/testsuite/gcc.dg/Wattributes-6.c          |  2 +-
 gcc/testsuite/gcc.dg/attr-copy-4.c            |  4 +-
 gcc/testsuite/gcc.dg/attr-copy-8.c            | 25 ++++++++++
 gcc/testsuite/gcc.dg/c11-align-9.c            |  4 +-
 gcc/testsuite/gcc.dg/pr51628-17.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-19.c             |  6 +--
 gcc/testsuite/gcc.dg/pr51628-20.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-21.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-22.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-24.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-25.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-34.c             |  8 ++--
 gcc/testsuite/gcc.dg/pr53037-1.c              |  4 +-
 gcc/testsuite/gcc.dg/pr88928.c                |  2 +-
 38 files changed, 157 insertions(+), 125 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/4] testsuite: Filter unaligned pointer value warning
  2020-07-20 16:31 [PATCH 0/4] testsuite: Add markers for default_packed targets Dimitar Dimitrov
@ 2020-07-20 16:31 ` Dimitar Dimitrov
  2020-07-20 17:51   ` Richard Sandiford
  2020-07-20 16:31 ` [PATCH 2/4] testsuite: Add expected warning for packed attribute Dimitar Dimitrov
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Dimitar Dimitrov @ 2020-07-20 16:31 UTC (permalink / raw)
  To: gcc-patches

Targets which pack structures by default will not get warnings about
unaligned access to structure members.

gcc/testsuite/ChangeLog:

	* c-c++-common/Waddress-of-packed-member-1.c: Filter dg-warning
	for targets who pack by default.
	* c-c++-common/Waddress-of-packed-member-2.c: Ditto.
	* c-c++-common/pr51628-13.c: Ditto.
	* c-c++-common/pr51628-15.c: Ditto.
	* c-c++-common/pr51628-16.c: Ditto.
	* c-c++-common/pr51628-26.c: Ditto.
	* c-c++-common/pr51628-27.c: Ditto.
	* c-c++-common/pr51628-28.c: Ditto.
	* c-c++-common/pr51628-29.c: Ditto.
	* c-c++-common/pr51628-3.c: Ditto.
	* c-c++-common/pr51628-30.c: Ditto.
	* c-c++-common/pr51628-31.c: Ditto.
	* c-c++-common/pr51628-32.c: Ditto.
	* c-c++-common/pr51628-33.c: Ditto.
	* c-c++-common/pr51628-35.c: Ditto.
	* c-c++-common/pr51628-4.c: Ditto.
	* c-c++-common/pr51628-5.c: Ditto.
	* c-c++-common/pr51628-6.c: Ditto.
	* c-c++-common/pr51628-8.c: Ditto.
	* c-c++-common/pr51628-9.c: Ditto.
	* c-c++-common/pr88664-2.c: Ditto.
	* gcc.dg/pr51628-17.c: Ditto.
	* gcc.dg/pr51628-19.c: Ditto.
	* gcc.dg/pr51628-20.c: Ditto.
	* gcc.dg/pr51628-21.c: Ditto.
	* gcc.dg/pr51628-22.c: Ditto.
	* gcc.dg/pr51628-24.c: Ditto.
	* gcc.dg/pr51628-25.c: Ditto.
	* gcc.dg/pr51628-34.c: Ditto.
	* gcc.dg/pr88928.c: Ditto.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
---
 .../Waddress-of-packed-member-1.c             | 48 +++++++++----------
 .../Waddress-of-packed-member-2.c             | 36 +++++++-------
 gcc/testsuite/c-c++-common/pr51628-13.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-15.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-16.c       |  4 +-
 gcc/testsuite/c-c++-common/pr51628-26.c       |  6 +--
 gcc/testsuite/c-c++-common/pr51628-27.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-28.c       | 10 ++--
 gcc/testsuite/c-c++-common/pr51628-29.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-3.c        | 12 ++---
 gcc/testsuite/c-c++-common/pr51628-30.c       |  4 +-
 gcc/testsuite/c-c++-common/pr51628-31.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-32.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-33.c       |  2 +-
 gcc/testsuite/c-c++-common/pr51628-35.c       |  4 +-
 gcc/testsuite/c-c++-common/pr51628-4.c        | 12 ++---
 gcc/testsuite/c-c++-common/pr51628-5.c        | 12 ++---
 gcc/testsuite/c-c++-common/pr51628-6.c        | 12 ++---
 gcc/testsuite/c-c++-common/pr51628-8.c        | 14 +++---
 gcc/testsuite/c-c++-common/pr51628-9.c        | 14 +++---
 gcc/testsuite/c-c++-common/pr88664-2.c        |  4 +-
 gcc/testsuite/gcc.dg/pr51628-17.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-19.c             |  6 +--
 gcc/testsuite/gcc.dg/pr51628-20.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-21.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-22.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-24.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-25.c             |  2 +-
 gcc/testsuite/gcc.dg/pr51628-34.c             |  8 ++--
 gcc/testsuite/gcc.dg/pr88928.c                |  2 +-
 30 files changed, 117 insertions(+), 117 deletions(-)

diff --git a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
index afad603dfa2..95a376664da 100644
--- a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
+++ b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
@@ -52,28 +52,28 @@ void foo (void)
   f0 = *&__real__ t0.f;        /* { dg-bogus "may result in an unaligned pointer value" } */
   f0 = *&__imag__ t0.f;        /* { dg-bogus "may result in an unaligned pointer value" } */
   i1 = (&t0.c, (int*) 0);      /* { dg-bogus "may result in an unaligned pointer value" } */
-  t2 = (struct t**) t10;     /* { dg-warning "may result in an unaligned pointer value" } */
-  t2 = (struct t**) t100;    /* { dg-warning "may result in an unaligned pointer value" } */
-  t2 = (struct t**) t1;      /* { dg-warning "may result in an unaligned pointer value" } */
-  t2 = (struct t**) bar();   /* { dg-warning "may result in an unaligned pointer value" } */
-  t2 = (struct t**) baz();   /* { dg-warning "may result in an unaligned pointer value" } */
-  t2 = (struct t**) bazz();  /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = &t0.b;                /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = &t1->b;               /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = &t10[0].b;            /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = t0.d;                 /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = t1->d;                /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = t10[0].d;             /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = (int*) &t10[0].e[0];  /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = (int*) t10[0].e;      /* { dg-warning "may result in an unaligned pointer value" } */
-  i2 = &t10[0].e[0];         /* { dg-warning "may result in an unaligned pointer value" } */
-  i2 = t10[0].e;             /* { dg-warning "may result in an unaligned pointer value" } */
-  i2 = &*&t0.c;              /* { dg-warning "may result in an unaligned pointer value" } */
-  i2 = &*&*&t0.c;            /* { dg-warning "may result in an unaligned pointer value" } */
-  f1 = &__real__ t0.f;       /* { dg-warning "may result in an unaligned pointer value" } */
-  f1 = &__imag__ t0.f;       /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = (0, (int*) &t0.c);    /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = (int*) (0, &t0.c);    /* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = (0, (int*)(0, &t0.c));/* { dg-warning "may result in an unaligned pointer value" } */
-  i1 = (int*)(0, 1, (void*)(2, 3, (int*)(4, 5, &t0.c)));/* { dg-warning "may result in an unaligned pointer value" } */
+  t2 = (struct t**) t10;     /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  t2 = (struct t**) t100;    /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  t2 = (struct t**) t1;      /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  t2 = (struct t**) bar();   /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  t2 = (struct t**) baz();   /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  t2 = (struct t**) bazz();  /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = &t0.b;                /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = &t1->b;               /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = &t10[0].b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = t0.d;                 /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = t1->d;                /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = t10[0].d;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = (int*) &t10[0].e[0];  /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = (int*) t10[0].e;      /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i2 = &t10[0].e[0];         /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i2 = t10[0].e;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i2 = &*&t0.c;              /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i2 = &*&*&t0.c;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  f1 = &__real__ t0.f;       /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  f1 = &__imag__ t0.f;       /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = (0, (int*) &t0.c);    /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = (int*) (0, &t0.c);    /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = (0, (int*)(0, &t0.c));/* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i1 = (int*)(0, 1, (void*)(2, 3, (int*)(4, 5, &t0.c)));/* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
 }
diff --git a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
index 65ec5140c9c..5dbcb89ffbc 100644
--- a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
+++ b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
@@ -24,24 +24,24 @@ int *i0;
 
 void foo (void)
 {
-  i0 = s0.p.a;               /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = t0.p.a;               /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = s0.p.b[0];            /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = t0.p.b[0];            /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = &s0.p.a[0];           /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = &t0.p.a[0];           /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = &s0.p.b[0][0];        /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = &t0.p.b[0][0];        /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = *s0.p.b;              /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = *t0.p.b;              /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = &**s0.p.b;            /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = &**t0.p.b;            /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = **&s0.p.b;            /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = **&t0.p.b;            /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = &*s0.p.a;             /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = &*t0.p.a;             /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = *&s0.p.a;             /* { dg-warning "may result in an unaligned pointer value" } */
-  i0 = *&t0.p.a;             /* { dg-warning "may result in an unaligned pointer value" } */
+  i0 = s0.p.a;               /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = t0.p.a;               /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = s0.p.b[0];            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = t0.p.b[0];            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = &s0.p.a[0];           /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = &t0.p.a[0];           /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = &s0.p.b[0][0];        /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = &t0.p.b[0][0];        /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = *s0.p.b;              /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = *t0.p.b;              /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = &**s0.p.b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = &**t0.p.b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = **&s0.p.b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = **&t0.p.b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = &*s0.p.a;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = &*t0.p.a;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = *&s0.p.a;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
+  i0 = *&t0.p.a;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
   i0 = t0.u.a;                 /* { dg-bogus "may result in an unaligned pointer value" } */
   i0 = t0.u.b[0];              /* { dg-bogus "may result in an unaligned pointer value" } */
   i0 = &t0.u.a[0];             /* { dg-bogus "may result in an unaligned pointer value" } */
diff --git a/gcc/testsuite/c-c++-common/pr51628-13.c b/gcc/testsuite/c-c++-common/pr51628-13.c
index 0edd5e7f84d..b77e16c408f 100644
--- a/gcc/testsuite/c-c++-common/pr51628-13.c
+++ b/gcc/testsuite/c-c++-common/pr51628-13.c
@@ -6,4 +6,4 @@ struct B { int i; };
 struct C { struct B b; } __attribute__ ((packed));
 
 int* h4 (struct C *p) { return &p->b.i; }
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/c-c++-common/pr51628-15.c b/gcc/testsuite/c-c++-common/pr51628-15.c
index bcac6d70ad5..2ce3406481f 100644
--- a/gcc/testsuite/c-c++-common/pr51628-15.c
+++ b/gcc/testsuite/c-c++-common/pr51628-15.c
@@ -10,5 +10,5 @@ int*
 f (struct A *p, int *q)
 {
   return q ? q : &p->i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-16.c b/gcc/testsuite/c-c++-common/pr51628-16.c
index cd502fe76b8..b02cd8df1fc 100644
--- a/gcc/testsuite/c-c++-common/pr51628-16.c
+++ b/gcc/testsuite/c-c++-common/pr51628-16.c
@@ -8,6 +8,6 @@ struct B {
 } b;
 
 int *p = (int*)&b.a.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 int *q = (int*)&b.a;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/c-c++-common/pr51628-26.c b/gcc/testsuite/c-c++-common/pr51628-26.c
index 2042379860a..5ca381dba5d 100644
--- a/gcc/testsuite/c-c++-common/pr51628-26.c
+++ b/gcc/testsuite/c-c++-common/pr51628-26.c
@@ -15,19 +15,19 @@ void
 foo1 (void)
 {
   addr = (i = -1, &p.i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
 
 void
 foo2 (void)
 {
   addr = (i = -1, j = -2, &p.i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
 
 void
 foo3 (void)
 {
   addr = (i = -1, (j = -2, &p.i));
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-27.c b/gcc/testsuite/c-c++-common/pr51628-27.c
index 9ae1efd7afb..016a68f6549 100644
--- a/gcc/testsuite/c-c++-common/pr51628-27.c
+++ b/gcc/testsuite/c-c++-common/pr51628-27.c
@@ -9,4 +9,4 @@ struct C { struct B b; };
 extern struct C *p;
 
 int* g8 (void) { return &p->b.a.i; }
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/c-c++-common/pr51628-28.c b/gcc/testsuite/c-c++-common/pr51628-28.c
index 3cc1fec1f71..80d0c605670 100644
--- a/gcc/testsuite/c-c++-common/pr51628-28.c
+++ b/gcc/testsuite/c-c++-common/pr51628-28.c
@@ -11,9 +11,9 @@ foo3 (struct A *p1, int *q1, int *q2, struct A *p2)
 {
   return (q1 
 	  ? &p1->i
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 	  : (q2 ? &p2->i : q2));
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
 
 int*
@@ -21,11 +21,11 @@ foo4 (struct A *p1, int **q1, int *q2, int *q3, struct A *p2)
 {
   return (q1
 	  ? (*q1 = q2, &p1->i)
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 	  : (q2
 	     ? (*q1 = &p1->i,
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 		*q2 = 2, &p2->i)
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 	     : q2));
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-29.c b/gcc/testsuite/c-c++-common/pr51628-29.c
index 94b3722d2c8..a3e77455b6b 100644
--- a/gcc/testsuite/c-c++-common/pr51628-29.c
+++ b/gcc/testsuite/c-c++-common/pr51628-29.c
@@ -12,5 +12,5 @@ int*
 g8 (void)
 {
   return &p->b.a.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-3.c b/gcc/testsuite/c-c++-common/pr51628-3.c
index 0ea94c845a0..805ce7d0509 100644
--- a/gcc/testsuite/c-c++-common/pr51628-3.c
+++ b/gcc/testsuite/c-c++-common/pr51628-3.c
@@ -13,7 +13,7 @@ extern int *x;
 extern void bar (int *);
 
 int *addr = &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 
 int *
 foo (void)
@@ -21,15 +21,15 @@ foo (void)
   struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } };
   int *p0, *p1;
   p0 = &arr[0].i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p0);
   p1 = &arr[1].i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p1);
   bar (&p.i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   x = &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   return &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-30.c b/gcc/testsuite/c-c++-common/pr51628-30.c
index 578edf4e8f9..b31e73ec036 100644
--- a/gcc/testsuite/c-c++-common/pr51628-30.c
+++ b/gcc/testsuite/c-c++-common/pr51628-30.c
@@ -12,12 +12,12 @@ int*
 foo1 (void)
 {
   return &__real(p->b.a.i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
 
 int*
 foo2 (void)
 {
   return &__imag(p->b.a.i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-31.c b/gcc/testsuite/c-c++-common/pr51628-31.c
index 9730f53f582..b2963581dcb 100644
--- a/gcc/testsuite/c-c++-common/pr51628-31.c
+++ b/gcc/testsuite/c-c++-common/pr51628-31.c
@@ -12,5 +12,5 @@ int *
 foo()
 {
   return &x.x[1];
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-32.c b/gcc/testsuite/c-c++-common/pr51628-32.c
index a62e57d5b46..52f5e543ab7 100644
--- a/gcc/testsuite/c-c++-common/pr51628-32.c
+++ b/gcc/testsuite/c-c++-common/pr51628-32.c
@@ -16,4 +16,4 @@ struct B
 struct B b;
 
 int *p = &b.ar[1].i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/c-c++-common/pr51628-33.c b/gcc/testsuite/c-c++-common/pr51628-33.c
index 0092f32202f..6b5e277b7c6 100644
--- a/gcc/testsuite/c-c++-common/pr51628-33.c
+++ b/gcc/testsuite/c-c++-common/pr51628-33.c
@@ -15,5 +15,5 @@ void
 foo (struct pair_t *p)
 {
   bar (p ? p->i : (int *) 0);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-35.c b/gcc/testsuite/c-c++-common/pr51628-35.c
index 20877792fd8..fa37d99beb7 100644
--- a/gcc/testsuite/c-c++-common/pr51628-35.c
+++ b/gcc/testsuite/c-c++-common/pr51628-35.c
@@ -12,12 +12,12 @@ long *
 foo1 (void)
 {
   return (long *) p;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
 
 long *
 foo2 (void)
 {
   return (long *) bar ();
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-4.c b/gcc/testsuite/c-c++-common/pr51628-4.c
index c4c1fb72d6d..ba88f5d0a39 100644
--- a/gcc/testsuite/c-c++-common/pr51628-4.c
+++ b/gcc/testsuite/c-c++-common/pr51628-4.c
@@ -13,7 +13,7 @@ extern int *x;
 extern void bar (int *);
 
 int *addr = &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 
 int *
 foo (void)
@@ -21,15 +21,15 @@ foo (void)
   struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } };
   int *p0, *p1;
   p0 = &arr[0].i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p0);
   p1 = &arr[1].i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p1);
   bar (&p.i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   x = &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   return &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-5.c b/gcc/testsuite/c-c++-common/pr51628-5.c
index 9d7c309a0ef..86d01e9f3b3 100644
--- a/gcc/testsuite/c-c++-common/pr51628-5.c
+++ b/gcc/testsuite/c-c++-common/pr51628-5.c
@@ -13,7 +13,7 @@ extern int *x;
 extern void bar (int *);
 
 int *addr = &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 
 int *
 foo (void)
@@ -21,15 +21,15 @@ foo (void)
   struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } };
   int *p0, *p1;
   p0 = &arr[0].i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p0);
   p1 = &arr[1].i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p1);
   bar (&p.i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   x = &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   return &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-6.c b/gcc/testsuite/c-c++-common/pr51628-6.c
index 52aa07a4cf3..e7be7fbffc5 100644
--- a/gcc/testsuite/c-c++-common/pr51628-6.c
+++ b/gcc/testsuite/c-c++-common/pr51628-6.c
@@ -13,7 +13,7 @@ extern int *x;
 extern void bar (int *);
 
 int *addr = &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 
 int *
 foo (void)
@@ -21,15 +21,15 @@ foo (void)
   struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } };
   int *p0, *p1;
   p0 = &arr[0].i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p0);
   p1 = &arr[1].i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p1);
   bar (&p.i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   x = &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   return &p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-8.c b/gcc/testsuite/c-c++-common/pr51628-8.c
index cc2dae096ae..dd4f1904c11 100644
--- a/gcc/testsuite/c-c++-common/pr51628-8.c
+++ b/gcc/testsuite/c-c++-common/pr51628-8.c
@@ -13,24 +13,24 @@ extern int *x;
 extern void bar (int *);
 
 int *addr = p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 
 int *
 foo (struct pair_t *p)
 {
   int *p0, *p1;
   p0 = p->i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p0);
   p1 = &p->i[1];
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p1);
   bar (p->i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (&p->i[2]);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   x = p->i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   return &p->i[3];
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr51628-9.c b/gcc/testsuite/c-c++-common/pr51628-9.c
index 0470aa3b93d..aa3d5292d43 100644
--- a/gcc/testsuite/c-c++-common/pr51628-9.c
+++ b/gcc/testsuite/c-c++-common/pr51628-9.c
@@ -13,24 +13,24 @@ extern int *x;
 extern void bar (int *);
 
 int *addr = p.i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 
 int *
 foo (struct pair_t *p)
 {
   int *p0, *p1;
   p0 = p->i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p0);
   p1 = &p->i[1];
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (p1);
   bar (p->i);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   bar (&p->i[2]);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   x = p->i;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   return &p->i[3];
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/c-c++-common/pr88664-2.c b/gcc/testsuite/c-c++-common/pr88664-2.c
index d2d880a66d7..9a81b751802 100644
--- a/gcc/testsuite/c-c++-common/pr88664-2.c
+++ b/gcc/testsuite/c-c++-common/pr88664-2.c
@@ -11,12 +11,12 @@ void **
 fun1 (struct data *p)
 {
   return &p->ptr;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
 
 int *
 fun2 (struct data *p, int *x)
 {
   return p ? (*x = 1, (int *) &p->ptr) : (int *) 0;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/gcc.dg/pr51628-17.c b/gcc/testsuite/gcc.dg/pr51628-17.c
index 0be95b2294e..42dc9d745dc 100644
--- a/gcc/testsuite/gcc.dg/pr51628-17.c
+++ b/gcc/testsuite/gcc.dg/pr51628-17.c
@@ -7,4 +7,4 @@ struct A {
 } __attribute__ ((packed));
 
 long* f8 (struct A *p) { return &p->i; }
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/pr51628-19.c b/gcc/testsuite/gcc.dg/pr51628-19.c
index 7ff03e85cea..91ff39abc88 100644
--- a/gcc/testsuite/gcc.dg/pr51628-19.c
+++ b/gcc/testsuite/gcc.dg/pr51628-19.c
@@ -16,11 +16,11 @@ bar (int n, int k, void *ptr)
 
   int *p0, *p1;
   p0 = p->x;
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   foo (p0);
   p1 = &p->x[1];
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
   foo (p1);
   return &p->x[1];
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/gcc.dg/pr51628-20.c b/gcc/testsuite/gcc.dg/pr51628-20.c
index bcdbff1e554..2249d85098b 100644
--- a/gcc/testsuite/gcc.dg/pr51628-20.c
+++ b/gcc/testsuite/gcc.dg/pr51628-20.c
@@ -8,4 +8,4 @@ struct C { struct B b; } __attribute__ ((packed));
 extern struct C *p;
 
 long* g8 (void) { return p; }
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/pr51628-21.c b/gcc/testsuite/gcc.dg/pr51628-21.c
index 0c7fab75d8a..f1adbe64002 100644
--- a/gcc/testsuite/gcc.dg/pr51628-21.c
+++ b/gcc/testsuite/gcc.dg/pr51628-21.c
@@ -8,4 +8,4 @@ struct C { struct B b; } __attribute__ ((packed));
 extern struct C p[];
 
 long* g8 (void) { return p; }
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/pr51628-22.c b/gcc/testsuite/gcc.dg/pr51628-22.c
index 1bd5d791639..25ac36cf0a2 100644
--- a/gcc/testsuite/gcc.dg/pr51628-22.c
+++ b/gcc/testsuite/gcc.dg/pr51628-22.c
@@ -6,4 +6,4 @@ struct B { int i; };
 struct C { struct B b; } __attribute__ ((packed));
 
 int* g4 (struct C *p) { return &p->b; }
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/pr51628-24.c b/gcc/testsuite/gcc.dg/pr51628-24.c
index 3ad99cd2f16..1e454a1dc0e 100644
--- a/gcc/testsuite/gcc.dg/pr51628-24.c
+++ b/gcc/testsuite/gcc.dg/pr51628-24.c
@@ -7,4 +7,4 @@ struct A {
 } __attribute__ ((packed));
 
 short* f2 (struct A *p) { return &p->i; }
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/pr51628-25.c b/gcc/testsuite/gcc.dg/pr51628-25.c
index 94a3a8fbaf2..f00d9b1bcac 100644
--- a/gcc/testsuite/gcc.dg/pr51628-25.c
+++ b/gcc/testsuite/gcc.dg/pr51628-25.c
@@ -6,4 +6,4 @@ struct B { int i; };
 struct C { struct B b; } __attribute__ ((packed));
 
 long* g8 (struct C *p) { return p; }
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/pr51628-34.c b/gcc/testsuite/gcc.dg/pr51628-34.c
index 51d4b26a114..0f6ae34fb96 100644
--- a/gcc/testsuite/gcc.dg/pr51628-34.c
+++ b/gcc/testsuite/gcc.dg/pr51628-34.c
@@ -9,9 +9,9 @@ baz (int x, struct S *p)
 {
   return (x
 	  ? &p->a 
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 	  : &p->b);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
 
 short *
@@ -19,7 +19,7 @@ qux (int x, struct S *p)
 {
   return (short *) (x
 		    ?  &p->a
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 		    : &p->b);
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
 }
diff --git a/gcc/testsuite/gcc.dg/pr88928.c b/gcc/testsuite/gcc.dg/pr88928.c
index c0a1f766cb0..0b6c1d70f05 100644
--- a/gcc/testsuite/gcc.dg/pr88928.c
+++ b/gcc/testsuite/gcc.dg/pr88928.c
@@ -3,4 +3,4 @@
 struct a { } __attribute__((__packed__));
 void c (struct a **);
 void d (const struct a *b) { c ((struct a **) b); }
-/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
+/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
-- 
2.20.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 2/4] testsuite: Add expected warning for packed attribute
  2020-07-20 16:31 [PATCH 0/4] testsuite: Add markers for default_packed targets Dimitar Dimitrov
  2020-07-20 16:31 ` [PATCH 1/4] testsuite: Filter unaligned pointer value warning Dimitar Dimitrov
@ 2020-07-20 16:31 ` Dimitar Dimitrov
  2020-07-20 17:54   ` Richard Sandiford
  2020-07-20 16:31 ` [PATCH 3/4] testsuite: Relax pattern to include "packed" targets Dimitar Dimitrov
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Dimitar Dimitrov @ 2020-07-20 16:31 UTC (permalink / raw)
  To: gcc-patches

Targets which pack structures by default get warnings for packed structure
attributes. This is expected, so add markers in the test cases.

gcc/testsuite/ChangeLog:

	* c-c++-common/Waddress-of-packed-member-2.c: Add dg-warning for
	ignored attribute if target is default_packed.
	* c-c++-common/Wattributes.c: Ditto.
	* c-c++-common/attr-copy.c: Ditto.
	* c-c++-common/builtin-has-attribute-4.c: Ditto.
	* c-c++-common/pr51628-29.c: Ditto.
	* c-c++-common/pr51628-30.c: Ditto.
	* c-c++-common/pr51628-32.c: Ditto.
	* gcc.dg/Wattributes-6.c: Ditto.
	* gcc.dg/attr-copy-4.c: Ditto.
	* gcc.dg/attr-copy-8.c: Ditto.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
---
 .../Waddress-of-packed-member-2.c             |  1 +
 gcc/testsuite/c-c++-common/Wattributes.c      |  2 +-
 gcc/testsuite/c-c++-common/attr-copy.c        |  1 +
 .../c-c++-common/builtin-has-attribute-4.c    |  2 +-
 gcc/testsuite/c-c++-common/pr51628-29.c       |  1 +
 gcc/testsuite/c-c++-common/pr51628-30.c       |  1 +
 gcc/testsuite/c-c++-common/pr51628-32.c       |  1 +
 gcc/testsuite/gcc.dg/Wattributes-6.c          |  2 +-
 gcc/testsuite/gcc.dg/attr-copy-4.c            |  3 ++-
 gcc/testsuite/gcc.dg/attr-copy-8.c            | 25 +++++++++++++++++++
 10 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
index 5dbcb89ffbc..802dd8156cb 100644
--- a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
+++ b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
@@ -15,6 +15,7 @@ struct s {
 struct t {
   char c;
   struct r p __attribute__((packed));
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   struct r u;
 };
 
diff --git a/gcc/testsuite/c-c++-common/Wattributes.c b/gcc/testsuite/c-c++-common/Wattributes.c
index 3f176a04660..4ad90441b4d 100644
--- a/gcc/testsuite/c-c++-common/Wattributes.c
+++ b/gcc/testsuite/c-c++-common/Wattributes.c
@@ -21,7 +21,7 @@ PackedAligned { int i; };
 struct ATTR ((aligned (2)))
 AlignedMemberPacked
 {
-  int ATTR ((packed)) i;
+  int ATTR ((packed)) i; // { dg-warning "attribute ignored" "" { target default_packed } }
 };
 
 struct ATTR ((packed))
diff --git a/gcc/testsuite/c-c++-common/attr-copy.c b/gcc/testsuite/c-c++-common/attr-copy.c
index 284088a8b97..f0db0fd1a27 100644
--- a/gcc/testsuite/c-c++-common/attr-copy.c
+++ b/gcc/testsuite/c-c++-common/attr-copy.c
@@ -21,6 +21,7 @@ struct C
 {
   char c;
   ATTR (copy ((bar (), ((struct A *)(0))[0]))) int i;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 };
 
 /* Verify the attribute has been copied.  */
diff --git a/gcc/testsuite/c-c++-common/builtin-has-attribute-4.c b/gcc/testsuite/c-c++-common/builtin-has-attribute-4.c
index ec3127794b5..3a960aae2ff 100644
--- a/gcc/testsuite/c-c++-common/builtin-has-attribute-4.c
+++ b/gcc/testsuite/c-c++-common/builtin-has-attribute-4.c
@@ -130,7 +130,7 @@ struct PackedMember
   char c;
   short s;
   int i;
-  ATTR (packed) int a[2];
+  ATTR (packed) int a[2]; /* { dg-warning "attribute ignored" "" { target default_packed } } */
 } gpak[2];
 
 void test_packed (struct PackedMember *p)
diff --git a/gcc/testsuite/c-c++-common/pr51628-29.c b/gcc/testsuite/c-c++-common/pr51628-29.c
index a3e77455b6b..1ad9a7d2d9f 100644
--- a/gcc/testsuite/c-c++-common/pr51628-29.c
+++ b/gcc/testsuite/c-c++-common/pr51628-29.c
@@ -5,6 +5,7 @@
 struct A { int i; };
 struct B { struct A a; };
 struct C { struct B b __attribute__ ((packed)); };
+/* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 
 extern struct C *p;
 
diff --git a/gcc/testsuite/c-c++-common/pr51628-30.c b/gcc/testsuite/c-c++-common/pr51628-30.c
index b31e73ec036..387fc71db13 100644
--- a/gcc/testsuite/c-c++-common/pr51628-30.c
+++ b/gcc/testsuite/c-c++-common/pr51628-30.c
@@ -5,6 +5,7 @@
 struct A { __complex int i; };
 struct B { struct A a; };
 struct C { struct B b __attribute__ ((packed)); };
+/* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 
 extern struct C *p;
 
diff --git a/gcc/testsuite/c-c++-common/pr51628-32.c b/gcc/testsuite/c-c++-common/pr51628-32.c
index 52f5e543ab7..908c0b8cbf4 100644
--- a/gcc/testsuite/c-c++-common/pr51628-32.c
+++ b/gcc/testsuite/c-c++-common/pr51628-32.c
@@ -11,6 +11,7 @@ struct B
 {
    char c;
    __attribute ((packed)) struct A ar[4];
+   /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 };
 
 struct B b;
diff --git a/gcc/testsuite/gcc.dg/Wattributes-6.c b/gcc/testsuite/gcc.dg/Wattributes-6.c
index d3dd22d85b9..4ba59bf2806 100644
--- a/gcc/testsuite/gcc.dg/Wattributes-6.c
+++ b/gcc/testsuite/gcc.dg/Wattributes-6.c
@@ -21,7 +21,7 @@ PackedAligned { int i; };
 struct ATTR ((aligned (2)))
 AlignedMemberPacked
 {
-  int ATTR ((packed)) i;
+  int ATTR ((packed)) i; // { dg-warning "attribute ignored" "" { target default_packed } }
 };
 
 struct ATTR ((packed))
diff --git a/gcc/testsuite/gcc.dg/attr-copy-4.c b/gcc/testsuite/gcc.dg/attr-copy-4.c
index 1350a35ec94..796724bb950 100644
--- a/gcc/testsuite/gcc.dg/attr-copy-4.c
+++ b/gcc/testsuite/gcc.dg/attr-copy-4.c
@@ -21,7 +21,8 @@ Assert (__alignof (struct PackedA) == __alignof (struct PackedB));
 struct PackedMember
 {
   char c;
-  ATTR ((copy ((struct PackedB*)0))) double packed_mem;
+  ATTR ((copy ((struct PackedB*)0))) double packed_mem; 
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 };
 
 Assert (__alignof (struct PackedMember) == 1);
diff --git a/gcc/testsuite/gcc.dg/attr-copy-8.c b/gcc/testsuite/gcc.dg/attr-copy-8.c
index c75d9e5c98c..7195f6b19f8 100644
--- a/gcc/testsuite/gcc.dg/attr-copy-8.c
+++ b/gcc/testsuite/gcc.dg/attr-copy-8.c
@@ -21,41 +21,66 @@ extern B *pb;
 typedef struct C
 {
   ATTR (copy ((struct A *)0)) short m_pa_0;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy ((struct A *)(1, 0))) int m_pa_1_0;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy ((struct A *)(0, 1))) long m_pa_0_1;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 
   ATTR (copy (*(struct A *)0)) short m_xpa_0;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (*(struct A *)(1, 0))) int m_xpa_1_0;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (*(struct A *)(0, 1))) long m_xpa_0_1;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 
   ATTR (copy (((struct A *)0)[0])) short m_arpa_0;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (((struct A *)(1, 0))[0])) int m_arpa_1_0;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (((struct A *)(0, 1))[0])) long m_arpa_0_1;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 
   /* Also exercise COMPONENT_REF, ARRAY_REF, and INDIRECT_REF.  */
   ATTR (copy (a)) short m_ra;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (b.a)) int m_rb_a;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (b.pa)) long m_rb_pa;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 
   ATTR (copy (&a)) short m_ara;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (&b.a)) int m_arb_a;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (*b.pa)) long m_xb_pa;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (b.pa[0])) long m_arb_pa;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 
   ATTR (copy (*pa)) short m_xpa;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (pa[0])) short m_arpa;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 
   ATTR (copy (ab[0].a)) int m_arab_a;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (ab[1].pa)) long m_arab_pa;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (*ab[2].pa)) int m_xarab_pa;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (ab[3].pa->bf)) unsigned int m_arab_pa_bf: 1;
 
   ATTR (copy (pb->a)) int m_pb_a;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (pb->pa)) long m_pb_pa;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (*pb->pa)) int m_xpb_pa;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
   ATTR (copy (pb->pa->bf)) unsigned int m_pb_pa_bf: 1;
 
   ATTR (aligned (4), copy ((struct A *)(0))) short m_a4_pa_0;
+  /* { dg-warning "attribute ignored" "" { target default_packed } .-1 } */
 } C;
 
 
-- 
2.20.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 3/4] testsuite: Relax pattern to include "packed" targets
  2020-07-20 16:31 [PATCH 0/4] testsuite: Add markers for default_packed targets Dimitar Dimitrov
  2020-07-20 16:31 ` [PATCH 1/4] testsuite: Filter unaligned pointer value warning Dimitar Dimitrov
  2020-07-20 16:31 ` [PATCH 2/4] testsuite: Add expected warning for packed attribute Dimitar Dimitrov
@ 2020-07-20 16:31 ` Dimitar Dimitrov
  2020-07-20 17:56   ` Richard Sandiford
  2020-07-20 16:31 ` [PATCH 4/4] testsuite: Add default_packed filters Dimitar Dimitrov
  2020-07-21 15:58 ` [PATCH 0/4] testsuite: Add markers for default_packed targets Dimitar Dimitrov
  4 siblings, 1 reply; 10+ messages in thread
From: Dimitar Dimitrov @ 2020-07-20 16:31 UTC (permalink / raw)
  To: gcc-patches

The actual warning message depends on the default alignment of the
target. With this update the test correctly passes on AVR and PRU
targets.

gcc/testsuite/ChangeLog:

	* gcc.dg/pr53037-1.c: Relax warning pattern.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
---
 gcc/testsuite/gcc.dg/pr53037-1.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/pr53037-1.c b/gcc/testsuite/gcc.dg/pr53037-1.c
index 3ea5ae6a34e..b4e9049c746 100644
--- a/gcc/testsuite/gcc.dg/pr53037-1.c
+++ b/gcc/testsuite/gcc.dg/pr53037-1.c
@@ -40,7 +40,7 @@ struct foo5
 {
   int i1;
   int x __attribute__((warn_if_not_aligned(16))); /* { dg-warning "'x' offset 4 in 'struct foo5' isn't aligned to 16" } */
-}; /* { dg-warning "alignment 4 of 'struct foo5' is less than 16" } */
+}; /* { dg-warning "alignment .* of 'struct foo5' is less than 16" } */
 
 struct foo6
 {
@@ -73,7 +73,7 @@ union bar3
 {
   int i1;
   int x __attribute__((warn_if_not_aligned(16))); 
-}; /* { dg-warning "alignment 4 of 'union bar3' is less than 16" } */
+}; /* { dg-warning "alignment .* of 'union bar3' is less than 16" } */
 
 union bar4
 {
-- 
2.20.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 4/4] testsuite: Add default_packed filters
  2020-07-20 16:31 [PATCH 0/4] testsuite: Add markers for default_packed targets Dimitar Dimitrov
                   ` (2 preceding siblings ...)
  2020-07-20 16:31 ` [PATCH 3/4] testsuite: Relax pattern to include "packed" targets Dimitar Dimitrov
@ 2020-07-20 16:31 ` Dimitar Dimitrov
  2020-07-20 17:57   ` Richard Sandiford
  2020-07-21 15:58 ` [PATCH 0/4] testsuite: Add markers for default_packed targets Dimitar Dimitrov
  4 siblings, 1 reply; 10+ messages in thread
From: Dimitar Dimitrov @ 2020-07-20 16:31 UTC (permalink / raw)
  To: gcc-patches

Fix test cases assumptions that target has alignment constraints.

gcc/testsuite/ChangeLog:

	* gcc.dg/attr-copy-4.c: Unpacked may still have alignment of 1
	on targets with default_packed.
	* gcc.dg/c11-align-9.c: Remove AVR target filter and replace
	with default_packed filter.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
---
 gcc/testsuite/gcc.dg/attr-copy-4.c | 1 +
 gcc/testsuite/gcc.dg/c11-align-9.c | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/attr-copy-4.c b/gcc/testsuite/gcc.dg/attr-copy-4.c
index 796724bb950..01fae3f78d4 100644
--- a/gcc/testsuite/gcc.dg/attr-copy-4.c
+++ b/gcc/testsuite/gcc.dg/attr-copy-4.c
@@ -32,6 +32,7 @@ extern const struct PackedA packed;
 
 struct Unpacked { int i; char c; };
 Assert (__alignof (struct Unpacked) > 1);
+/* { dg-error "size of array .* is negative" "" { target default_packed } .-1 } */
 
 /* Verify that copying the packed attribute to the declaration
    of an object is ignored with a warning.  (There should be
diff --git a/gcc/testsuite/gcc.dg/c11-align-9.c b/gcc/testsuite/gcc.dg/c11-align-9.c
index 3c9cf55756e..6a0d4248f1b 100644
--- a/gcc/testsuite/gcc.dg/c11-align-9.c
+++ b/gcc/testsuite/gcc.dg/c11-align-9.c
@@ -2,8 +2,8 @@
    are at least some alignment constraints), case of compound literals.  */
 /* { dg-do compile } */
 /* { dg-options "-std=c11 -pedantic-errors" } */
-/* { dg-skip-if "no alignment constraints" { "avr-*-*" } } */
 
 #include <stddef.h>
 
-max_align_t *p = &(_Alignas (_Alignof (char)) max_align_t) { 1 }; /* { dg-error "reduce alignment" } */
+max_align_t *p = &(_Alignas (_Alignof (char)) max_align_t) { 1 };
+/* { dg-error "reduce alignment" "" { target { ! default_packed } } .-1 } */
-- 
2.20.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/4] testsuite: Filter unaligned pointer value warning
  2020-07-20 16:31 ` [PATCH 1/4] testsuite: Filter unaligned pointer value warning Dimitar Dimitrov
@ 2020-07-20 17:51   ` Richard Sandiford
  0 siblings, 0 replies; 10+ messages in thread
From: Richard Sandiford @ 2020-07-20 17:51 UTC (permalink / raw)
  To: Dimitar Dimitrov; +Cc: gcc-patches

Dimitar Dimitrov <dimitar@dinux.eu> writes:
> Targets which pack structures by default will not get warnings about
> unaligned access to structure members.
>
> gcc/testsuite/ChangeLog:
>
> 	* c-c++-common/Waddress-of-packed-member-1.c: Filter dg-warning
> 	for targets who pack by default.
> 	* c-c++-common/Waddress-of-packed-member-2.c: Ditto.
> 	* c-c++-common/pr51628-13.c: Ditto.
> 	* c-c++-common/pr51628-15.c: Ditto.
> 	* c-c++-common/pr51628-16.c: Ditto.
> 	* c-c++-common/pr51628-26.c: Ditto.
> 	* c-c++-common/pr51628-27.c: Ditto.
> 	* c-c++-common/pr51628-28.c: Ditto.
> 	* c-c++-common/pr51628-29.c: Ditto.
> 	* c-c++-common/pr51628-3.c: Ditto.
> 	* c-c++-common/pr51628-30.c: Ditto.
> 	* c-c++-common/pr51628-31.c: Ditto.
> 	* c-c++-common/pr51628-32.c: Ditto.
> 	* c-c++-common/pr51628-33.c: Ditto.
> 	* c-c++-common/pr51628-35.c: Ditto.
> 	* c-c++-common/pr51628-4.c: Ditto.
> 	* c-c++-common/pr51628-5.c: Ditto.
> 	* c-c++-common/pr51628-6.c: Ditto.
> 	* c-c++-common/pr51628-8.c: Ditto.
> 	* c-c++-common/pr51628-9.c: Ditto.
> 	* c-c++-common/pr88664-2.c: Ditto.
> 	* gcc.dg/pr51628-17.c: Ditto.
> 	* gcc.dg/pr51628-19.c: Ditto.
> 	* gcc.dg/pr51628-20.c: Ditto.
> 	* gcc.dg/pr51628-21.c: Ditto.
> 	* gcc.dg/pr51628-22.c: Ditto.
> 	* gcc.dg/pr51628-24.c: Ditto.
> 	* gcc.dg/pr51628-25.c: Ditto.
> 	* gcc.dg/pr51628-34.c: Ditto.
> 	* gcc.dg/pr88928.c: Ditto.
>
> Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>

OK, thanks.

For avoidance of doubt, it's not likely that people will remember
to add this target selector to new tests, so keeping the testsuite
clean will be an ongoing problem for people who test the affected
targets.  Adding missing selectors would qualify as obvious though.

Richard

> ---
>  .../Waddress-of-packed-member-1.c             | 48 +++++++++----------
>  .../Waddress-of-packed-member-2.c             | 36 +++++++-------
>  gcc/testsuite/c-c++-common/pr51628-13.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-15.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-16.c       |  4 +-
>  gcc/testsuite/c-c++-common/pr51628-26.c       |  6 +--
>  gcc/testsuite/c-c++-common/pr51628-27.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-28.c       | 10 ++--
>  gcc/testsuite/c-c++-common/pr51628-29.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-3.c        | 12 ++---
>  gcc/testsuite/c-c++-common/pr51628-30.c       |  4 +-
>  gcc/testsuite/c-c++-common/pr51628-31.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-32.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-33.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-35.c       |  4 +-
>  gcc/testsuite/c-c++-common/pr51628-4.c        | 12 ++---
>  gcc/testsuite/c-c++-common/pr51628-5.c        | 12 ++---
>  gcc/testsuite/c-c++-common/pr51628-6.c        | 12 ++---
>  gcc/testsuite/c-c++-common/pr51628-8.c        | 14 +++---
>  gcc/testsuite/c-c++-common/pr51628-9.c        | 14 +++---
>  gcc/testsuite/c-c++-common/pr88664-2.c        |  4 +-
>  gcc/testsuite/gcc.dg/pr51628-17.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-19.c             |  6 +--
>  gcc/testsuite/gcc.dg/pr51628-20.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-21.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-22.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-24.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-25.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-34.c             |  8 ++--
>  gcc/testsuite/gcc.dg/pr88928.c                |  2 +-
>  30 files changed, 117 insertions(+), 117 deletions(-)
>
> diff --git a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
> index afad603dfa2..95a376664da 100644
> --- a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
> +++ b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-1.c
> @@ -52,28 +52,28 @@ void foo (void)
>    f0 = *&__real__ t0.f;        /* { dg-bogus "may result in an unaligned pointer value" } */
>    f0 = *&__imag__ t0.f;        /* { dg-bogus "may result in an unaligned pointer value" } */
>    i1 = (&t0.c, (int*) 0);      /* { dg-bogus "may result in an unaligned pointer value" } */
> -  t2 = (struct t**) t10;     /* { dg-warning "may result in an unaligned pointer value" } */
> -  t2 = (struct t**) t100;    /* { dg-warning "may result in an unaligned pointer value" } */
> -  t2 = (struct t**) t1;      /* { dg-warning "may result in an unaligned pointer value" } */
> -  t2 = (struct t**) bar();   /* { dg-warning "may result in an unaligned pointer value" } */
> -  t2 = (struct t**) baz();   /* { dg-warning "may result in an unaligned pointer value" } */
> -  t2 = (struct t**) bazz();  /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = &t0.b;                /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = &t1->b;               /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = &t10[0].b;            /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = t0.d;                 /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = t1->d;                /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = t10[0].d;             /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = (int*) &t10[0].e[0];  /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = (int*) t10[0].e;      /* { dg-warning "may result in an unaligned pointer value" } */
> -  i2 = &t10[0].e[0];         /* { dg-warning "may result in an unaligned pointer value" } */
> -  i2 = t10[0].e;             /* { dg-warning "may result in an unaligned pointer value" } */
> -  i2 = &*&t0.c;              /* { dg-warning "may result in an unaligned pointer value" } */
> -  i2 = &*&*&t0.c;            /* { dg-warning "may result in an unaligned pointer value" } */
> -  f1 = &__real__ t0.f;       /* { dg-warning "may result in an unaligned pointer value" } */
> -  f1 = &__imag__ t0.f;       /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = (0, (int*) &t0.c);    /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = (int*) (0, &t0.c);    /* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = (0, (int*)(0, &t0.c));/* { dg-warning "may result in an unaligned pointer value" } */
> -  i1 = (int*)(0, 1, (void*)(2, 3, (int*)(4, 5, &t0.c)));/* { dg-warning "may result in an unaligned pointer value" } */
> +  t2 = (struct t**) t10;     /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  t2 = (struct t**) t100;    /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  t2 = (struct t**) t1;      /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  t2 = (struct t**) bar();   /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  t2 = (struct t**) baz();   /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  t2 = (struct t**) bazz();  /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = &t0.b;                /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = &t1->b;               /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = &t10[0].b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = t0.d;                 /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = t1->d;                /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = t10[0].d;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = (int*) &t10[0].e[0];  /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = (int*) t10[0].e;      /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i2 = &t10[0].e[0];         /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i2 = t10[0].e;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i2 = &*&t0.c;              /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i2 = &*&*&t0.c;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  f1 = &__real__ t0.f;       /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  f1 = &__imag__ t0.f;       /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = (0, (int*) &t0.c);    /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = (int*) (0, &t0.c);    /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = (0, (int*)(0, &t0.c));/* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i1 = (int*)(0, 1, (void*)(2, 3, (int*)(4, 5, &t0.c)));/* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
> index 65ec5140c9c..5dbcb89ffbc 100644
> --- a/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
> +++ b/gcc/testsuite/c-c++-common/Waddress-of-packed-member-2.c
> @@ -24,24 +24,24 @@ int *i0;
>  
>  void foo (void)
>  {
> -  i0 = s0.p.a;               /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = t0.p.a;               /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = s0.p.b[0];            /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = t0.p.b[0];            /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = &s0.p.a[0];           /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = &t0.p.a[0];           /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = &s0.p.b[0][0];        /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = &t0.p.b[0][0];        /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = *s0.p.b;              /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = *t0.p.b;              /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = &**s0.p.b;            /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = &**t0.p.b;            /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = **&s0.p.b;            /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = **&t0.p.b;            /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = &*s0.p.a;             /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = &*t0.p.a;             /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = *&s0.p.a;             /* { dg-warning "may result in an unaligned pointer value" } */
> -  i0 = *&t0.p.a;             /* { dg-warning "may result in an unaligned pointer value" } */
> +  i0 = s0.p.a;               /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = t0.p.a;               /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = s0.p.b[0];            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = t0.p.b[0];            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = &s0.p.a[0];           /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = &t0.p.a[0];           /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = &s0.p.b[0][0];        /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = &t0.p.b[0][0];        /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = *s0.p.b;              /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = *t0.p.b;              /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = &**s0.p.b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = &**t0.p.b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = **&s0.p.b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = **&t0.p.b;            /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = &*s0.p.a;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = &*t0.p.a;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = *&s0.p.a;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
> +  i0 = *&t0.p.a;             /* { dg-warning "may result in an unaligned pointer value" ""  { target { ! default_packed } } } */
>    i0 = t0.u.a;                 /* { dg-bogus "may result in an unaligned pointer value" } */
>    i0 = t0.u.b[0];              /* { dg-bogus "may result in an unaligned pointer value" } */
>    i0 = &t0.u.a[0];             /* { dg-bogus "may result in an unaligned pointer value" } */
> diff --git a/gcc/testsuite/c-c++-common/pr51628-13.c b/gcc/testsuite/c-c++-common/pr51628-13.c
> index 0edd5e7f84d..b77e16c408f 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-13.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-13.c
> @@ -6,4 +6,4 @@ struct B { int i; };
>  struct C { struct B b; } __attribute__ ((packed));
>  
>  int* h4 (struct C *p) { return &p->b.i; }
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/c-c++-common/pr51628-15.c b/gcc/testsuite/c-c++-common/pr51628-15.c
> index bcac6d70ad5..2ce3406481f 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-15.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-15.c
> @@ -10,5 +10,5 @@ int*
>  f (struct A *p, int *q)
>  {
>    return q ? q : &p->i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-16.c b/gcc/testsuite/c-c++-common/pr51628-16.c
> index cd502fe76b8..b02cd8df1fc 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-16.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-16.c
> @@ -8,6 +8,6 @@ struct B {
>  } b;
>  
>  int *p = (int*)&b.a.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  int *q = (int*)&b.a;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/c-c++-common/pr51628-26.c b/gcc/testsuite/c-c++-common/pr51628-26.c
> index 2042379860a..5ca381dba5d 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-26.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-26.c
> @@ -15,19 +15,19 @@ void
>  foo1 (void)
>  {
>    addr = (i = -1, &p.i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
>  
>  void
>  foo2 (void)
>  {
>    addr = (i = -1, j = -2, &p.i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
>  
>  void
>  foo3 (void)
>  {
>    addr = (i = -1, (j = -2, &p.i));
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-27.c b/gcc/testsuite/c-c++-common/pr51628-27.c
> index 9ae1efd7afb..016a68f6549 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-27.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-27.c
> @@ -9,4 +9,4 @@ struct C { struct B b; };
>  extern struct C *p;
>  
>  int* g8 (void) { return &p->b.a.i; }
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/c-c++-common/pr51628-28.c b/gcc/testsuite/c-c++-common/pr51628-28.c
> index 3cc1fec1f71..80d0c605670 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-28.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-28.c
> @@ -11,9 +11,9 @@ foo3 (struct A *p1, int *q1, int *q2, struct A *p2)
>  {
>    return (q1 
>  	  ? &p1->i
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  	  : (q2 ? &p2->i : q2));
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
>  
>  int*
> @@ -21,11 +21,11 @@ foo4 (struct A *p1, int **q1, int *q2, int *q3, struct A *p2)
>  {
>    return (q1
>  	  ? (*q1 = q2, &p1->i)
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  	  : (q2
>  	     ? (*q1 = &p1->i,
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  		*q2 = 2, &p2->i)
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  	     : q2));
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-29.c b/gcc/testsuite/c-c++-common/pr51628-29.c
> index 94b3722d2c8..a3e77455b6b 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-29.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-29.c
> @@ -12,5 +12,5 @@ int*
>  g8 (void)
>  {
>    return &p->b.a.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-3.c b/gcc/testsuite/c-c++-common/pr51628-3.c
> index 0ea94c845a0..805ce7d0509 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-3.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-3.c
> @@ -13,7 +13,7 @@ extern int *x;
>  extern void bar (int *);
>  
>  int *addr = &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  
>  int *
>  foo (void)
> @@ -21,15 +21,15 @@ foo (void)
>    struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } };
>    int *p0, *p1;
>    p0 = &arr[0].i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p0);
>    p1 = &arr[1].i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p1);
>    bar (&p.i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    x = &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    return &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-30.c b/gcc/testsuite/c-c++-common/pr51628-30.c
> index 578edf4e8f9..b31e73ec036 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-30.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-30.c
> @@ -12,12 +12,12 @@ int*
>  foo1 (void)
>  {
>    return &__real(p->b.a.i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
>  
>  int*
>  foo2 (void)
>  {
>    return &__imag(p->b.a.i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-31.c b/gcc/testsuite/c-c++-common/pr51628-31.c
> index 9730f53f582..b2963581dcb 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-31.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-31.c
> @@ -12,5 +12,5 @@ int *
>  foo()
>  {
>    return &x.x[1];
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-32.c b/gcc/testsuite/c-c++-common/pr51628-32.c
> index a62e57d5b46..52f5e543ab7 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-32.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-32.c
> @@ -16,4 +16,4 @@ struct B
>  struct B b;
>  
>  int *p = &b.ar[1].i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/c-c++-common/pr51628-33.c b/gcc/testsuite/c-c++-common/pr51628-33.c
> index 0092f32202f..6b5e277b7c6 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-33.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-33.c
> @@ -15,5 +15,5 @@ void
>  foo (struct pair_t *p)
>  {
>    bar (p ? p->i : (int *) 0);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-35.c b/gcc/testsuite/c-c++-common/pr51628-35.c
> index 20877792fd8..fa37d99beb7 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-35.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-35.c
> @@ -12,12 +12,12 @@ long *
>  foo1 (void)
>  {
>    return (long *) p;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
>  
>  long *
>  foo2 (void)
>  {
>    return (long *) bar ();
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-4.c b/gcc/testsuite/c-c++-common/pr51628-4.c
> index c4c1fb72d6d..ba88f5d0a39 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-4.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-4.c
> @@ -13,7 +13,7 @@ extern int *x;
>  extern void bar (int *);
>  
>  int *addr = &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  
>  int *
>  foo (void)
> @@ -21,15 +21,15 @@ foo (void)
>    struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } };
>    int *p0, *p1;
>    p0 = &arr[0].i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p0);
>    p1 = &arr[1].i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p1);
>    bar (&p.i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    x = &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    return &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-5.c b/gcc/testsuite/c-c++-common/pr51628-5.c
> index 9d7c309a0ef..86d01e9f3b3 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-5.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-5.c
> @@ -13,7 +13,7 @@ extern int *x;
>  extern void bar (int *);
>  
>  int *addr = &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  
>  int *
>  foo (void)
> @@ -21,15 +21,15 @@ foo (void)
>    struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } };
>    int *p0, *p1;
>    p0 = &arr[0].i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p0);
>    p1 = &arr[1].i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p1);
>    bar (&p.i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    x = &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    return &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-6.c b/gcc/testsuite/c-c++-common/pr51628-6.c
> index 52aa07a4cf3..e7be7fbffc5 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-6.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-6.c
> @@ -13,7 +13,7 @@ extern int *x;
>  extern void bar (int *);
>  
>  int *addr = &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  
>  int *
>  foo (void)
> @@ -21,15 +21,15 @@ foo (void)
>    struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } };
>    int *p0, *p1;
>    p0 = &arr[0].i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p0);
>    p1 = &arr[1].i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p1);
>    bar (&p.i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    x = &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    return &p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-8.c b/gcc/testsuite/c-c++-common/pr51628-8.c
> index cc2dae096ae..dd4f1904c11 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-8.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-8.c
> @@ -13,24 +13,24 @@ extern int *x;
>  extern void bar (int *);
>  
>  int *addr = p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  
>  int *
>  foo (struct pair_t *p)
>  {
>    int *p0, *p1;
>    p0 = p->i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p0);
>    p1 = &p->i[1];
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p1);
>    bar (p->i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (&p->i[2]);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    x = p->i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    return &p->i[3];
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr51628-9.c b/gcc/testsuite/c-c++-common/pr51628-9.c
> index 0470aa3b93d..aa3d5292d43 100644
> --- a/gcc/testsuite/c-c++-common/pr51628-9.c
> +++ b/gcc/testsuite/c-c++-common/pr51628-9.c
> @@ -13,24 +13,24 @@ extern int *x;
>  extern void bar (int *);
>  
>  int *addr = p.i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  
>  int *
>  foo (struct pair_t *p)
>  {
>    int *p0, *p1;
>    p0 = p->i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p0);
>    p1 = &p->i[1];
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (p1);
>    bar (p->i);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    bar (&p->i[2]);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    x = p->i;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    return &p->i[3];
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/c-c++-common/pr88664-2.c b/gcc/testsuite/c-c++-common/pr88664-2.c
> index d2d880a66d7..9a81b751802 100644
> --- a/gcc/testsuite/c-c++-common/pr88664-2.c
> +++ b/gcc/testsuite/c-c++-common/pr88664-2.c
> @@ -11,12 +11,12 @@ void **
>  fun1 (struct data *p)
>  {
>    return &p->ptr;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
>  
>  int *
>  fun2 (struct data *p, int *x)
>  {
>    return p ? (*x = 1, (int *) &p->ptr) : (int *) 0;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/gcc.dg/pr51628-17.c b/gcc/testsuite/gcc.dg/pr51628-17.c
> index 0be95b2294e..42dc9d745dc 100644
> --- a/gcc/testsuite/gcc.dg/pr51628-17.c
> +++ b/gcc/testsuite/gcc.dg/pr51628-17.c
> @@ -7,4 +7,4 @@ struct A {
>  } __attribute__ ((packed));
>  
>  long* f8 (struct A *p) { return &p->i; }
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/gcc.dg/pr51628-19.c b/gcc/testsuite/gcc.dg/pr51628-19.c
> index 7ff03e85cea..91ff39abc88 100644
> --- a/gcc/testsuite/gcc.dg/pr51628-19.c
> +++ b/gcc/testsuite/gcc.dg/pr51628-19.c
> @@ -16,11 +16,11 @@ bar (int n, int k, void *ptr)
>  
>    int *p0, *p1;
>    p0 = p->x;
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    foo (p0);
>    p1 = &p->x[1];
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>    foo (p1);
>    return &p->x[1];
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/gcc.dg/pr51628-20.c b/gcc/testsuite/gcc.dg/pr51628-20.c
> index bcdbff1e554..2249d85098b 100644
> --- a/gcc/testsuite/gcc.dg/pr51628-20.c
> +++ b/gcc/testsuite/gcc.dg/pr51628-20.c
> @@ -8,4 +8,4 @@ struct C { struct B b; } __attribute__ ((packed));
>  extern struct C *p;
>  
>  long* g8 (void) { return p; }
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/gcc.dg/pr51628-21.c b/gcc/testsuite/gcc.dg/pr51628-21.c
> index 0c7fab75d8a..f1adbe64002 100644
> --- a/gcc/testsuite/gcc.dg/pr51628-21.c
> +++ b/gcc/testsuite/gcc.dg/pr51628-21.c
> @@ -8,4 +8,4 @@ struct C { struct B b; } __attribute__ ((packed));
>  extern struct C p[];
>  
>  long* g8 (void) { return p; }
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/gcc.dg/pr51628-22.c b/gcc/testsuite/gcc.dg/pr51628-22.c
> index 1bd5d791639..25ac36cf0a2 100644
> --- a/gcc/testsuite/gcc.dg/pr51628-22.c
> +++ b/gcc/testsuite/gcc.dg/pr51628-22.c
> @@ -6,4 +6,4 @@ struct B { int i; };
>  struct C { struct B b; } __attribute__ ((packed));
>  
>  int* g4 (struct C *p) { return &p->b; }
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/gcc.dg/pr51628-24.c b/gcc/testsuite/gcc.dg/pr51628-24.c
> index 3ad99cd2f16..1e454a1dc0e 100644
> --- a/gcc/testsuite/gcc.dg/pr51628-24.c
> +++ b/gcc/testsuite/gcc.dg/pr51628-24.c
> @@ -7,4 +7,4 @@ struct A {
>  } __attribute__ ((packed));
>  
>  short* f2 (struct A *p) { return &p->i; }
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/gcc.dg/pr51628-25.c b/gcc/testsuite/gcc.dg/pr51628-25.c
> index 94a3a8fbaf2..f00d9b1bcac 100644
> --- a/gcc/testsuite/gcc.dg/pr51628-25.c
> +++ b/gcc/testsuite/gcc.dg/pr51628-25.c
> @@ -6,4 +6,4 @@ struct B { int i; };
>  struct C { struct B b; } __attribute__ ((packed));
>  
>  long* g8 (struct C *p) { return p; }
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
> diff --git a/gcc/testsuite/gcc.dg/pr51628-34.c b/gcc/testsuite/gcc.dg/pr51628-34.c
> index 51d4b26a114..0f6ae34fb96 100644
> --- a/gcc/testsuite/gcc.dg/pr51628-34.c
> +++ b/gcc/testsuite/gcc.dg/pr51628-34.c
> @@ -9,9 +9,9 @@ baz (int x, struct S *p)
>  {
>    return (x
>  	  ? &p->a 
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  	  : &p->b);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
>  
>  short *
> @@ -19,7 +19,7 @@ qux (int x, struct S *p)
>  {
>    return (short *) (x
>  		    ?  &p->a
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  		    : &p->b);
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
>  }
> diff --git a/gcc/testsuite/gcc.dg/pr88928.c b/gcc/testsuite/gcc.dg/pr88928.c
> index c0a1f766cb0..0b6c1d70f05 100644
> --- a/gcc/testsuite/gcc.dg/pr88928.c
> +++ b/gcc/testsuite/gcc.dg/pr88928.c
> @@ -3,4 +3,4 @@
>  struct a { } __attribute__((__packed__));
>  void c (struct a **);
>  void d (const struct a *b) { c ((struct a **) b); }
> -/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */
> +/* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/4] testsuite: Add expected warning for packed attribute
  2020-07-20 16:31 ` [PATCH 2/4] testsuite: Add expected warning for packed attribute Dimitar Dimitrov
@ 2020-07-20 17:54   ` Richard Sandiford
  0 siblings, 0 replies; 10+ messages in thread
From: Richard Sandiford @ 2020-07-20 17:54 UTC (permalink / raw)
  To: Dimitar Dimitrov; +Cc: gcc-patches

Dimitar Dimitrov <dimitar@dinux.eu> writes:
> Targets which pack structures by default get warnings for packed structure
> attributes. This is expected, so add markers in the test cases.
>
> gcc/testsuite/ChangeLog:
>
> 	* c-c++-common/Waddress-of-packed-member-2.c: Add dg-warning for
> 	ignored attribute if target is default_packed.
> 	* c-c++-common/Wattributes.c: Ditto.
> 	* c-c++-common/attr-copy.c: Ditto.
> 	* c-c++-common/builtin-has-attribute-4.c: Ditto.
> 	* c-c++-common/pr51628-29.c: Ditto.
> 	* c-c++-common/pr51628-30.c: Ditto.
> 	* c-c++-common/pr51628-32.c: Ditto.
> 	* gcc.dg/Wattributes-6.c: Ditto.
> 	* gcc.dg/attr-copy-4.c: Ditto.
> 	* gcc.dg/attr-copy-8.c: Ditto.

OK, thanks.  I wondered whether we should handle this in prune.exp,
but there's no precedent that I can see for doing that based on
target selectors.  The number of affected tests is also pretty small,
so it might not have been worth it anyway.

Thanks,
Richard

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/4] testsuite: Relax pattern to include "packed" targets
  2020-07-20 16:31 ` [PATCH 3/4] testsuite: Relax pattern to include "packed" targets Dimitar Dimitrov
@ 2020-07-20 17:56   ` Richard Sandiford
  0 siblings, 0 replies; 10+ messages in thread
From: Richard Sandiford @ 2020-07-20 17:56 UTC (permalink / raw)
  To: Dimitar Dimitrov; +Cc: gcc-patches

Dimitar Dimitrov <dimitar@dinux.eu> writes:
> The actual warning message depends on the default alignment of the
> target. With this update the test correctly passes on AVR and PRU
> targets.
>
> gcc/testsuite/ChangeLog:
>
> 	* gcc.dg/pr53037-1.c: Relax warning pattern.
>
> Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
> ---
>  gcc/testsuite/gcc.dg/pr53037-1.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.dg/pr53037-1.c b/gcc/testsuite/gcc.dg/pr53037-1.c
> index 3ea5ae6a34e..b4e9049c746 100644
> --- a/gcc/testsuite/gcc.dg/pr53037-1.c
> +++ b/gcc/testsuite/gcc.dg/pr53037-1.c
> @@ -40,7 +40,7 @@ struct foo5
>  {
>    int i1;
>    int x __attribute__((warn_if_not_aligned(16))); /* { dg-warning "'x' offset 4 in 'struct foo5' isn't aligned to 16" } */
> -}; /* { dg-warning "alignment 4 of 'struct foo5' is less than 16" } */
> +}; /* { dg-warning "alignment .* of 'struct foo5' is less than 16" } */
>  
>  struct foo6
>  {
> @@ -73,7 +73,7 @@ union bar3
>  {
>    int i1;
>    int x __attribute__((warn_if_not_aligned(16))); 
> -}; /* { dg-warning "alignment 4 of 'union bar3' is less than 16" } */
> +}; /* { dg-warning "alignment .* of 'union bar3' is less than 16" } */

Better to use [0-9]+, and change the quoting to {…} rather than "…"
so that there's no need to add backslashes for the [ and ].

OK with that change, thanks.

Richard

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 4/4] testsuite: Add default_packed filters
  2020-07-20 16:31 ` [PATCH 4/4] testsuite: Add default_packed filters Dimitar Dimitrov
@ 2020-07-20 17:57   ` Richard Sandiford
  0 siblings, 0 replies; 10+ messages in thread
From: Richard Sandiford @ 2020-07-20 17:57 UTC (permalink / raw)
  To: Dimitar Dimitrov; +Cc: gcc-patches

Dimitar Dimitrov <dimitar@dinux.eu> writes:
> Fix test cases assumptions that target has alignment constraints.
>
> gcc/testsuite/ChangeLog:
>
> 	* gcc.dg/attr-copy-4.c: Unpacked may still have alignment of 1
> 	on targets with default_packed.
> 	* gcc.dg/c11-align-9.c: Remove AVR target filter and replace
> 	with default_packed filter.

OK, thanks.

Richard

>
> Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
> ---
>  gcc/testsuite/gcc.dg/attr-copy-4.c | 1 +
>  gcc/testsuite/gcc.dg/c11-align-9.c | 4 ++--
>  2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.dg/attr-copy-4.c b/gcc/testsuite/gcc.dg/attr-copy-4.c
> index 796724bb950..01fae3f78d4 100644
> --- a/gcc/testsuite/gcc.dg/attr-copy-4.c
> +++ b/gcc/testsuite/gcc.dg/attr-copy-4.c
> @@ -32,6 +32,7 @@ extern const struct PackedA packed;
>  
>  struct Unpacked { int i; char c; };
>  Assert (__alignof (struct Unpacked) > 1);
> +/* { dg-error "size of array .* is negative" "" { target default_packed } .-1 } */
>  
>  /* Verify that copying the packed attribute to the declaration
>     of an object is ignored with a warning.  (There should be
> diff --git a/gcc/testsuite/gcc.dg/c11-align-9.c b/gcc/testsuite/gcc.dg/c11-align-9.c
> index 3c9cf55756e..6a0d4248f1b 100644
> --- a/gcc/testsuite/gcc.dg/c11-align-9.c
> +++ b/gcc/testsuite/gcc.dg/c11-align-9.c
> @@ -2,8 +2,8 @@
>     are at least some alignment constraints), case of compound literals.  */
>  /* { dg-do compile } */
>  /* { dg-options "-std=c11 -pedantic-errors" } */
> -/* { dg-skip-if "no alignment constraints" { "avr-*-*" } } */
>  
>  #include <stddef.h>
>  
> -max_align_t *p = &(_Alignas (_Alignof (char)) max_align_t) { 1 }; /* { dg-error "reduce alignment" } */
> +max_align_t *p = &(_Alignas (_Alignof (char)) max_align_t) { 1 };
> +/* { dg-error "reduce alignment" "" { target { ! default_packed } } .-1 } */

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/4] testsuite: Add markers for default_packed targets
  2020-07-20 16:31 [PATCH 0/4] testsuite: Add markers for default_packed targets Dimitar Dimitrov
                   ` (3 preceding siblings ...)
  2020-07-20 16:31 ` [PATCH 4/4] testsuite: Add default_packed filters Dimitar Dimitrov
@ 2020-07-21 15:58 ` Dimitar Dimitrov
  4 siblings, 0 replies; 10+ messages in thread
From: Dimitar Dimitrov @ 2020-07-21 15:58 UTC (permalink / raw)
  To: gcc-patches, Richard Sandiford

On Mon, 20 July 2020 г. 19:31:02 EEST Dimitar Dimitrov wrote:
> Hi,
> 
> I'm sending a few minor testsuite updates to add markers for targets using
> packed structures by default. From those targets, I tested AVR and PRU. I
> don't have setup to test cris and m32c.
> 
> I also tested x86_64 to ensure there are neither dropped nor newly failing
> tests.
> 
> Regards,
> Dimitar
> 
> Dimitar Dimitrov (4):
>   testsuite: Filter unaligned pointer value warning
>   testsuite: Add expected warning for packed attribute
>   testsuite: Relax pattern to include "packed" targets
>   testsuite: Add default_packed filters
> 
>  .../Waddress-of-packed-member-1.c             | 48 +++++++++----------
>  .../Waddress-of-packed-member-2.c             | 37 +++++++-------
>  gcc/testsuite/c-c++-common/Wattributes.c      |  2 +-
>  gcc/testsuite/c-c++-common/attr-copy.c        |  1 +
>  .../c-c++-common/builtin-has-attribute-4.c    |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-13.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-15.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-16.c       |  4 +-
>  gcc/testsuite/c-c++-common/pr51628-26.c       |  6 +--
>  gcc/testsuite/c-c++-common/pr51628-27.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-28.c       | 10 ++--
>  gcc/testsuite/c-c++-common/pr51628-29.c       |  3 +-
>  gcc/testsuite/c-c++-common/pr51628-3.c        | 12 ++---
>  gcc/testsuite/c-c++-common/pr51628-30.c       |  5 +-
>  gcc/testsuite/c-c++-common/pr51628-31.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-32.c       |  3 +-
>  gcc/testsuite/c-c++-common/pr51628-33.c       |  2 +-
>  gcc/testsuite/c-c++-common/pr51628-35.c       |  4 +-
>  gcc/testsuite/c-c++-common/pr51628-4.c        | 12 ++---
>  gcc/testsuite/c-c++-common/pr51628-5.c        | 12 ++---
>  gcc/testsuite/c-c++-common/pr51628-6.c        | 12 ++---
>  gcc/testsuite/c-c++-common/pr51628-8.c        | 14 +++---
>  gcc/testsuite/c-c++-common/pr51628-9.c        | 14 +++---
>  gcc/testsuite/c-c++-common/pr88664-2.c        |  4 +-
>  gcc/testsuite/gcc.dg/Wattributes-6.c          |  2 +-
>  gcc/testsuite/gcc.dg/attr-copy-4.c            |  4 +-
>  gcc/testsuite/gcc.dg/attr-copy-8.c            | 25 ++++++++++
>  gcc/testsuite/gcc.dg/c11-align-9.c            |  4 +-
>  gcc/testsuite/gcc.dg/pr51628-17.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-19.c             |  6 +--
>  gcc/testsuite/gcc.dg/pr51628-20.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-21.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-22.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-24.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-25.c             |  2 +-
>  gcc/testsuite/gcc.dg/pr51628-34.c             |  8 ++--
>  gcc/testsuite/gcc.dg/pr53037-1.c              |  4 +-
>  gcc/testsuite/gcc.dg/pr88928.c                |  2 +-
>  38 files changed, 157 insertions(+), 125 deletions(-)

I pushed all 4 changes, with the pattern and quoting update suggested by 
Richard for the third patch.


Thanks,
Dimitar





^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-07-21 15:58 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-20 16:31 [PATCH 0/4] testsuite: Add markers for default_packed targets Dimitar Dimitrov
2020-07-20 16:31 ` [PATCH 1/4] testsuite: Filter unaligned pointer value warning Dimitar Dimitrov
2020-07-20 17:51   ` Richard Sandiford
2020-07-20 16:31 ` [PATCH 2/4] testsuite: Add expected warning for packed attribute Dimitar Dimitrov
2020-07-20 17:54   ` Richard Sandiford
2020-07-20 16:31 ` [PATCH 3/4] testsuite: Relax pattern to include "packed" targets Dimitar Dimitrov
2020-07-20 17:56   ` Richard Sandiford
2020-07-20 16:31 ` [PATCH 4/4] testsuite: Add default_packed filters Dimitar Dimitrov
2020-07-20 17:57   ` Richard Sandiford
2020-07-21 15:58 ` [PATCH 0/4] testsuite: Add markers for default_packed targets Dimitar Dimitrov

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).