https://gcc.gnu.org/g:7e88a1a34aae0abd3019423d3ceae045c9931adb

commit r15-2606-g7e88a1a34aae0abd3019423d3ceae045c9931adb
Author: Dimitar Dimitrov <dimi...@dinux.eu>
Date:   Tue Jul 30 23:08:38 2024 +0300

    testsuite: Add filters for default_packed targets [PR116155]
    
    A few recent C++ test cases are assuming non-zero structure field
    padding.  Consequently they fail for targets defaulting to packed
    structure layout.  Fix by adding the necessary DejaGnu filters.
    
    There are no test result changes for x86_64-pc-linux-gnu:
      $ dg-cmp-results.sh -v -v "" pre-g++.sum post-g++.sum
      -> No differences.
    
    The tests for pru-unknown-elf changed from FAIL to UNSUPPORTED.
    
            PR testsuite/116155
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/abi/nsdmi-aggr1a.C: Disable test for effective
            default_packed targets.
            * g++.dg/abi/nullptr-align2.C: Ignore warning for default_packed
            targets.
            * g++.dg/cpp1z/aligned-new9.C: Disable test for effective
            default_packed targets.
            * g++.dg/cpp2a/bit-cast5.C: Ignore dg-error for default_packed
            targets.
            * g++.dg/pr53037-1.C: Match any default packing value.
            * g++.dg/warn/Wpadded-1.C: Ignore warning for default_packed
            targets.
    
    Signed-off-by: Dimitar Dimitrov <dimi...@dinux.eu>

Diff:
---
 gcc/testsuite/g++.dg/abi/nsdmi-aggr1a.C   | 2 +-
 gcc/testsuite/g++.dg/abi/nullptr-align2.C | 2 +-
 gcc/testsuite/g++.dg/cpp1z/aligned-new9.C | 2 +-
 gcc/testsuite/g++.dg/cpp2a/bit-cast5.C    | 6 +++---
 gcc/testsuite/g++.dg/pr53037-1.C          | 4 ++--
 gcc/testsuite/g++.dg/warn/Wpadded-1.C     | 2 +-
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/gcc/testsuite/g++.dg/abi/nsdmi-aggr1a.C 
b/gcc/testsuite/g++.dg/abi/nsdmi-aggr1a.C
index e7a509dbc858..90526e894b33 100644
--- a/gcc/testsuite/g++.dg/abi/nsdmi-aggr1a.C
+++ b/gcc/testsuite/g++.dg/abi/nsdmi-aggr1a.C
@@ -1,5 +1,5 @@
 // PR c++/103681
-// { dg-do compile { target c++11 } }
+// { dg-do compile { target { { c++11 } && { ! default_packed } } } }
 // { dg-additional-options "-fabi-version=0 -Wabi=16" }
 
 struct A {
diff --git a/gcc/testsuite/g++.dg/abi/nullptr-align2.C 
b/gcc/testsuite/g++.dg/abi/nullptr-align2.C
index 66a90119a15e..0f18a9185d1a 100644
--- a/gcc/testsuite/g++.dg/abi/nullptr-align2.C
+++ b/gcc/testsuite/g++.dg/abi/nullptr-align2.C
@@ -16,5 +16,5 @@ struct B
 struct C
 {
   char c;
-  decltype(nullptr) n;         // { dg-warning "alignment" }
+  decltype(nullptr) n;         // { dg-warning "alignment" "" { target { ! 
default_packed } } }
 };
diff --git a/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C 
b/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C
index dc5cff6ea0c1..001139009328 100644
--- a/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C
+++ b/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C
@@ -1,5 +1,5 @@
 // PR c++/102071
-// { dg-do run { target c++17 } }
+// { dg-do run  { target { { c++17 } && { ! default_packed } } } }
 // { dg-additional-options -faligned-new=2 }
 // { dg-xfail-run-if "AIX operator new" { powerpc-ibm-aix* } }
 
diff --git a/gcc/testsuite/g++.dg/cpp2a/bit-cast5.C 
b/gcc/testsuite/g++.dg/cpp2a/bit-cast5.C
index 9d536d159840..5d0d2b3e1b8d 100644
--- a/gcc/testsuite/g++.dg/cpp2a/bit-cast5.C
+++ b/gcc/testsuite/g++.dg/cpp2a/bit-cast5.C
@@ -21,7 +21,7 @@ f2 ()
 {
   A a;
   a.a = 1; a.b = 2; a.c = 3; a.e = 4; a.f = 5;
-  C b = __builtin_bit_cast (C, a);     // { dg-error "'__builtin_bit_cast' 
accessing uninitialized byte at offset 3" }
+  C b = __builtin_bit_cast (C, a);     // { dg-error "'__builtin_bit_cast' 
accessing uninitialized byte at offset 3" "" { target { ! default_packed } } }
   return false;
 }
 
@@ -48,7 +48,7 @@ f5 ()
 {
   D a;
   a.b = 1;
-  E b = __builtin_bit_cast (E, a);     // { dg-error "'__builtin_bit_cast' 
accessing uninitialized byte at offset 3" }
+  E b = __builtin_bit_cast (E, a);     // { dg-error "'__builtin_bit_cast' 
accessing uninitialized byte at offset 3" "" { target { ! default_packed } } }
   return false;
 }
 
@@ -57,7 +57,7 @@ f6 ()
 {
   D a;
   a.c = 1;
-  E b = __builtin_bit_cast (E, a);     // { dg-error "'__builtin_bit_cast' 
accessing uninitialized byte at offset 2" }
+  E b = __builtin_bit_cast (E, a);     // { dg-error "'__builtin_bit_cast' 
accessing uninitialized byte at offset 2" "" { target { ! default_packed } } }
   return false;
 }
 
diff --git a/gcc/testsuite/g++.dg/pr53037-1.C b/gcc/testsuite/g++.dg/pr53037-1.C
index a3d8f99b54e2..b8948c016118 100644
--- a/gcc/testsuite/g++.dg/pr53037-1.C
+++ b/gcc/testsuite/g++.dg/pr53037-1.C
@@ -35,7 +35,7 @@ struct foo4
   __u64 x;
 } __attribute__((aligned(8)));
 
-struct foo5 /* { dg-warning "alignment 4 of 'foo5' is less than 16" } */
+struct foo5 /* { dg-warning "alignment \[0-9\]+ of 'foo5' is less than 16" } */
 {
   int i1;
   int x __attribute__((warn_if_not_aligned(16))); /* { dg-warning "'foo5::x' 
offset 4 in 'foo5' isn't aligned to 16" } */
@@ -68,7 +68,7 @@ union bar2
   __u64 x;
 } __attribute__((aligned(8)));
 
-union bar3 /* { dg-warning "alignment 4 of 'bar3' is less than 16" } */
+union bar3 /* { dg-warning "alignment \[0-9\]+ of 'bar3' is less than 16" } */
 {
   int i1;
   int x __attribute__((warn_if_not_aligned(16))); 
diff --git a/gcc/testsuite/g++.dg/warn/Wpadded-1.C 
b/gcc/testsuite/g++.dg/warn/Wpadded-1.C
index af375a4d055d..e5bb6b9ab3ac 100644
--- a/gcc/testsuite/g++.dg/warn/Wpadded-1.C
+++ b/gcc/testsuite/g++.dg/warn/Wpadded-1.C
@@ -3,7 +3,7 @@
 // { dg-options "-Wpadded" }
 
 template <class> struct A;
-template <typename> struct B { // { dg-warning "padding struct size to 
alignment boundary" }
+template <typename> struct B { // { dg-warning "padding struct size to 
alignment boundary"  "" { target { ! default_packed } } }
   long long _M_off;
   char _M_state;
 };

Reply via email to