https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102024

--- Comment #19 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:568377743e22c1377d0aaa1ac9113da3ff1b6bd4

commit r12-7798-g568377743e22c1377d0aaa1ac9113da3ff1b6bd4
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Mar 24 12:25:15 2022 +0100

    testsuite: Add compat.exp testcase for most common zero width bitfld ABI
passing [PR102024]

    On Tue, Mar 22, 2022 at 05:51:58PM +0100, Jakub Jelinek via Gcc wrote:
    > I guess it would be nice to include the testcases we are talking about,
    > like { float x; int : 0; float y; } and { float x; int : 0; } and
    > { int : 0; float x; } into compat.exp testsuite so that we see ABI
    > differences in compat testing.

    Here is a patch that does that.  It uses the struct-layout-1* framework,
    but isn't generated because we don't want in this case pseudo-random
    structure layouts, but particular ones we know cause or could cause
problems
    on some targets.  If other problematic cases are discovered, we can add
    further ones.

    Tested on x86_64-linux with:
    make check-gcc check-g++ RUNTESTFLAGS='ALT_CC_UNDER_TEST=gcc
ALT_CXX_UNDER_TEST=g++ compat.exp=pr102*'
    and with
    make check-gcc check-g++ RUNTESTFLAGS='compat.exp=pr102*'
    The former as expected has:
    FAIL: gcc.dg/compat/pr102024 c_compat_x_tst.o-c_compat_y_alt.o execute
    FAIL: gcc.dg/compat/pr102024 c_compat_x_alt.o-c_compat_y_tst.o execute
    fails because on x86_64 we've changed the C ABI but kept the C++ ABI here.
    E.g. on rs6000 it should be the g++.dg such tests to fail (all assuming
    the alt gcc/g++ is GCC 4.5 through 11).

    2022-03-24  Jakub Jelinek  <ja...@redhat.com>

            PR target/102024
            * gcc.dg/compat/pr102024_main.c: New test.
            * gcc.dg/compat/pr102024_test.h: New test.
            * gcc.dg/compat/pr102024_x.c: New test.
            * gcc.dg/compat/pr102024_y.c: New test.
            * g++.dg/compat/pr102024_main.C: New test.
            * g++.dg/compat/pr102024_test.h: New test.
            * g++.dg/compat/pr102024_x.C: New test.
            * g++.dg/compat/pr102024_y.C: New test.

Reply via email to