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

            Bug ID: 94704
           Summary: [8/9/10 Regression] class with empty base passed
                    incorrectly with -std=c++17 on s390x/s390
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ABI, wrong-code
          Severity: blocker
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org, ktkachov at gcc dot gnu.org,
                    matmal01 at gcc dot gnu.org, mpolacek at gcc dot gnu.org,
                    rearnsha at gcc dot gnu.org, redi at gcc dot gnu.org,
                    rguenth at gcc dot gnu.org, rsandifo at gcc dot gnu.org
        Depends on: 94383
  Target Milestone: ---
            Target: aarch64-*-linux

+++ This bug was initially created as a clone of Bug #94383 +++

In https://gcc.gnu.org/pipermail/gcc-testresults/2020-April/559424.html
I see
FAIL: tmpdir-g++.dg-struct-layout-1/t032 cp_compat_x_tst.o-cp_compat_y_tst.o
execute 
FAIL: tmpdir-g++.dg-struct-layout-1/t055 cp_compat_x_tst.o-cp_compat_y_tst.o
execute 
FAIL: tmpdir-g++.dg-struct-layout-1/t056 cp_compat_x_tst.o-cp_compat_y_tst.o
execute 
FAIL: tmpdir-g++.dg-struct-layout-1/t057 cp_compat_x_tst.o-cp_compat_y_tst.o
execute 
FAIL: tmpdir-g++.dg-struct-layout-1/t058 cp_compat_x_tst.o-cp_compat_y_tst.o
execute 
FAIL: tmpdir-g++.dg-struct-layout-1/t059 cp_compat_x_tst.o-cp_compat_y_tst.o
execute 
That suggests similar ABI bug as on aarch64 (PR94383), where the presence or
absence of C++17 empty base artificial FIELD_DECL affects the argument passing
(or return?).
One should be able to do
make check-g++ RUNTESTFLAGS='--target_board=unix/-DDBG struct-layout-1.exp'
to get more information into the log file which exact tests fail, from that
number one can look up in gcc/testsuite/g++/g++.dg-struct-layout-1 subdir of
the build directory t032_test.h etc. the T(...) line with the reported
number(s),
and one should be able to remove all but the chosen one T(...) line from the
file to see a minimized testcase (+ preprocess to better see how exactly the
structure looks like).


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94383
[Bug 94383] [8/9/10 Regression] class with empty base passed incorrectly with
-std=c++17 on aarch64

Reply via email to