Re: [PATCH] rs6000: Fix C++14 vs. C++17 ABI bug on powerpc64le [PR94707]

2020-04-23 Thread Segher Boessenkool
Hi! On Thu, Apr 23, 2020 at 10:06:16AM +0200, Jakub Jelinek wrote: > > Is there no way to describe this without referring to "c++17" (or even > > "base field")? It's a pretty gross abstraction violation. > > I'm afraid it is desirable to talk about c++17 and base field, otherwise > it won't be c

Re: [PATCH] rs6000: Fix C++14 vs. C++17 ABI bug on powerpc64le [PR94707]

2020-04-23 Thread Jakub Jelinek via Gcc-patches
On Wed, Apr 22, 2020 at 05:10:56PM -0500, Segher Boessenkool wrote: > > PR target/94707 > > * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Add > > CXX17_EMPTY_BASE_SEEN argument. Pass it to recursive calls. > > Ignore cxx17_empty_base_field_p fields after setting > >

Re: [PATCH] rs6000: Fix C++14 vs. C++17 ABI bug on powerpc64le [PR94707]

2020-04-22 Thread Segher Boessenkool
Hi! On Wed, Apr 22, 2020 at 03:11:48PM +0200, Jakub Jelinek wrote: > The problem is that the presence or absence of the C++17 > artificial empty base fields, which have non-zero TYPE_SIZE, but zero > DECL_SIZE, change the ABI decisions, if it is present (-std=c++17), the type > might not be consid

Re: [PATCH] rs6000: Fix C++14 vs. C++17 ABI bug on powerpc64le [PR94707]

2020-04-22 Thread Bill Schmidt via Gcc-patches
On 4/22/20 11:49 AM, Jakub Jelinek wrote: On Wed, Apr 22, 2020 at 11:24:09AM -0500, Bill Schmidt wrote: Hm, but this patch violates the ELFv2 ABI as written. The ABI includes: "Floating-point and vector aggregates that contain padding words and integer fields with a width of 0 should not be tr

Re: [PATCH] rs6000: Fix C++14 vs. C++17 ABI bug on powerpc64le [PR94707]

2020-04-22 Thread Jakub Jelinek via Gcc-patches
On Wed, Apr 22, 2020 at 11:24:09AM -0500, Bill Schmidt wrote: > Hm, but this patch violates the ELFv2 ABI as written. The ABI includes: > > "Floating-point and vector aggregates that contain padding words and > integer fields with a width of 0 should not be treated as homogeneous > aggregates."

Re: [PATCH] rs6000: Fix C++14 vs. C++17 ABI bug on powerpc64le [PR94707]

2020-04-22 Thread Bill Schmidt via Gcc-patches
On 4/22/20 8:11 AM, Jakub Jelinek via Gcc-patches wrote: Hi! As mentioned in the PR and on IRC, the recently added struct-layout-1.exp new tests FAIL on powerpc64le-linux (among other targets). FAIL: tmpdir-g++.dg-struct-layout-1/t032 cp_compat_x_tst.o-cp_compat_y_tst.o execute FAIL: tmpdir-g++

[PATCH] rs6000: Fix C++14 vs. C++17 ABI bug on powerpc64le [PR94707]

2020-04-22 Thread Jakub Jelinek via Gcc-patches
Hi! As mentioned in the PR and on IRC, the recently added struct-layout-1.exp new tests FAIL on powerpc64le-linux (among other targets). 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/t058 cp_compat_x_tst.o-cp_compat_y_tst.