On Tue, 22 Jan 2019, Richard Earnshaw (lists) wrote: > This patch, for gcc 8/9 is a mitigation patch for PR target/88469 where > gcc-6/7/8 miscompile a structure whose alignment is dominated by a > 64-bit bitfield member. Since the PCS rules for such a type must ignore > any overalignment of the base type we cannot address this by simply > adding a larger alignment to the class. The simplest fix, therefore, is > to insert a dummy field that has 64-bit alignment. Although that field > is never used, it does fix the overall alignment of the class at the > expense of adding an extra dword of data on ARM systems (I've bounded > the range of GCC versions that will lead to this mitigation, so only a > stage-1 gcc-9 will see the impact of this change - though gcc-8 will see > this in full). > > OK for trunk/gcc-8?
Can you place some aligned attribute on the struct instead? > PR target/88469 > * profile-count.h (profile_count): Add dummy file with 64-bit alignment > on arm-based systems using gcc-6/7/8. > > -- Richard Biener <rguent...@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)