Hi!

On Mon, Feb 06, 2023 at 02:26:01PM +0000, Jonathan Wakely via Gcc-patches wrote:
> With the recent change to deprecate std::aligned_storage and
> std::aligned_union we need to adjust some tests that now fail with
> -std=c++23.

The g++.dg/warn/Wstrict-aliasing-bogus-union-2.C test is also affected:
PASS: g++.dg/warn/Wstrict-aliasing-bogus-union-2.C  -std=gnu++2b  (test for 
bogus messages, line 12)
FAIL: g++.dg/warn/Wstrict-aliasing-bogus-union-2.C  -std=gnu++2b (test for 
excess errors)
Excess errors:
.../gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-union-2.C:8:8: warning: 
'template<long unsigned int _Len, long unsigned int _Align> struct 
std::aligned_storage' is deprecated [-Wdeprecated-declarations]

The following patch adds dg-warning for it.

Tested on x86_64-linux -m32/-m64 with GXX_TESTSUITE_STDS=98,11,14,17,20,2b ,
committed to trunk as obvious.

2023-02-07  Jakub Jelinek  <ja...@redhat.com>

        * g++.dg/warn/Wstrict-aliasing-bogus-union-2.C: Expect
        -Wdeprecated warning for C++23.

--- gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-union-2.C.jj       
2020-01-12 11:54:37.286400238 +0100
+++ gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-union-2.C  2023-02-07 
10:21:47.616642483 +0100
@@ -5,7 +5,7 @@
 
 struct foo
 {
-  std::aligned_storage<sizeof(long), alignof(long)>::type raw;
+  std::aligned_storage<sizeof(long), alignof(long)>::type raw; /* { dg-warning 
"deprecated" "" { target c++23 } } */
 
   long& cooked()
     {

        Jakub

Reply via email to