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

Reply via email to