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