On 26.04.20 14:20, Jakub Jelinek wrote: > Hi! > > The following patch fixes the C++14 vs. C++17 ABI passing incompatibility > on s390x-linux. > > Bootstrapped/regtested on s390x-linux without and with the patch, the > difference being: > -FAIL: tmpdir-g++.dg-struct-layout-1/t032 cp_compat_x_alt.o-cp_compat_y_tst.o > execute > FAIL: tmpdir-g++.dg-struct-layout-1/t032 cp_compat_x_tst.o-cp_compat_y_alt.o > execute > -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_alt.o-cp_compat_y_alt.o > execute > FAIL: tmpdir-g++.dg-struct-layout-1/t055 cp_compat_x_alt.o-cp_compat_y_tst.o > execute > -FAIL: tmpdir-g++.dg-struct-layout-1/t055 cp_compat_x_tst.o-cp_compat_y_alt.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_alt.o-cp_compat_y_alt.o > execute > -FAIL: tmpdir-g++.dg-struct-layout-1/t056 cp_compat_x_alt.o-cp_compat_y_tst.o > execute > FAIL: tmpdir-g++.dg-struct-layout-1/t056 cp_compat_x_tst.o-cp_compat_y_alt.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_alt.o-cp_compat_y_alt.o > execute > -FAIL: tmpdir-g++.dg-struct-layout-1/t057 cp_compat_x_alt.o-cp_compat_y_tst.o > execute > FAIL: tmpdir-g++.dg-struct-layout-1/t057 cp_compat_x_tst.o-cp_compat_y_alt.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_alt.o-cp_compat_y_alt.o > execute > FAIL: tmpdir-g++.dg-struct-layout-1/t058 cp_compat_x_alt.o-cp_compat_y_tst.o > execute > -FAIL: tmpdir-g++.dg-struct-layout-1/t058 cp_compat_x_tst.o-cp_compat_y_alt.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_alt.o-cp_compat_y_alt.o > execute > FAIL: tmpdir-g++.dg-struct-layout-1/t059 cp_compat_x_alt.o-cp_compat_y_tst.o > execute > -FAIL: tmpdir-g++.dg-struct-layout-1/t059 cp_compat_x_tst.o-cp_compat_y_alt.o > execute > -FAIL: tmpdir-g++.dg-struct-layout-1/t059 cp_compat_x_tst.o-cp_compat_y_tst.o > execute > when performing ALT_CXX_UNDER_TEST=g++ testing with a system GCC 10 compiler > from a week ago. So, the alt vs. alt FAILs are all expected (we know before > this patch there is an ABI incompatibility) and some alt vs. tst (or tst vs. > alt) FAILs too - that depends on if the particular x or y test is compiled > with -std=c++14 or -std=c++17 - if x_tst is compiled with -std=c++14 and > y_alt is compiled with -std=c++17, then it should FAIL, similarly if x_alt > is compiled with -std=c++17 and y_tst is compiled with -std=c++14. > > Ok for trunk? Or do you want -Wpsabi warning too (seems s390 backend > doesn't have any -Wpsabi warnings or informs yet)? > > 2020-04-22 Jakub Jelinek <ja...@redhat.com> > > PR target/94704 > * config/s390/s390.c (s390_function_arg_vector, > s390_function_arg_float): Ignore cxx17_empty_base_field_p fields.
Ok. Thanks for doing this! We probably have to look into providing a -Wpsabi warning as well. Andreas