diff mbox series

[2/4] testsuite: Add expected warning for packed attribute

Message ID 20200720163106.27849-3-dimitar@dinux.eu
State New
Headers show
Series testsuite: Add markers for default_packed targets | expand

Commit Message

Dimitar Dimitrov July 20, 2020, 4:31 p.m. UTC
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(-)

Comments

Richard Sandiford July 20, 2020, 5:54 p.m. UTC | #1
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
diff mbox series

Patch

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;