From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1734) id 289503858D34; Fri, 5 Apr 2024 17:44:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 289503858D34 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1712339056; bh=tiu8hdGQz6cvGLcpMChn97ZkAsucVFwLNIKuVHyvlCc=; h=From:To:Subject:Date:From; b=C0uZv+nl6AkDDcKyPlqrcb7rGYNYjMCgglfGRahgik32Tpf6aQQZ4tQtzy3JVwlP3 C8a7Qb/r1lR/wK5WF+I+xeaJPZbQdNd1owwEo/LQ3IuEkfrxrHx79M+LhLT4qUJF72 A5OidP9779pdwk/eOJ+2jeEjjtELLwHOWVABw+BI= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Marek Polacek To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-9815] c++: add fixed test [PR91079] X-Act-Checkin: gcc X-Git-Author: Marek Polacek X-Git-Refname: refs/heads/trunk X-Git-Oldrev: e7d015b2506a1d9e84d9f7182e42e097147527e1 X-Git-Newrev: 2b2d3a135a43cbafadd8957e0b2543f38c390437 Message-Id: <20240405174416.289503858D34@sourceware.org> Date: Fri, 5 Apr 2024 17:44:16 +0000 (GMT) List-Id: https://gcc.gnu.org/g:2b2d3a135a43cbafadd8957e0b2543f38c390437 commit r14-9815-g2b2d3a135a43cbafadd8957e0b2543f38c390437 Author: Marek Polacek Date: Fri Apr 5 13:40:33 2024 -0400 c++: add fixed test [PR91079] Fixed by r12-2975. PR c++/91079 DR 1881 gcc/testsuite/ChangeLog: * g++.dg/ext/is_std_layout5.C: New test. Diff: --- gcc/testsuite/g++.dg/ext/is_std_layout5.C | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gcc/testsuite/g++.dg/ext/is_std_layout5.C b/gcc/testsuite/g++.dg/ext/is_std_layout5.C new file mode 100644 index 00000000000..875f3c0948d --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/is_std_layout5.C @@ -0,0 +1,13 @@ +// PR c++/91079 +// DR 1881 - Standard-layout classes and unnamed bit-fields +// { dg-do compile { target c++11 } } + +struct A { int a : 4; }; +struct B : A { int b : 3; }; +static_assert(__is_standard_layout(A), ""); +static_assert(!__is_standard_layout(B), ""); + +struct C { int : 0; }; +struct D : C { int : 0; }; +static_assert(__is_standard_layout(C), ""); +static_assert(!__is_standard_layout(D), "");