[Bug libgomp/105358] [12 Regression] scan* fails on targets without aligned memory allocators.
iains at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Apr 25 09:59:46 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105358
--- Comment #3 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #2)
> Does
> --- libgomp/libgomp.h.jj 2022-01-11 23:11:23.890269075 +0100
> +++ libgomp/libgomp.h 2022-04-25 11:20:09.744103064 +0200
> @@ -717,6 +717,13 @@ struct gomp_team
> /* This barrier is used for most synchronization of the team. */
> gomp_barrier_t barrier;
>
> +#ifndef GOMP_USE_ALIGNED_WORK_SHARES
> + /* If struct gomp_work_share isn't 64-byte aligned, ensure it is
> + at least 8-byte aligned because __alignof__ (long long) is used
> + for the inline_ordered_team_ids handling. */
> + struct { } pad __attribute__((aligned (__alignof__ (long long))));
> +#endif
> +
> /* Initial work shares, to avoid allocating any gomp_work_share
> structs in the common case. */
> struct gomp_work_share work_shares[8];
> fix it?
unfortunately, no presumably the size of gomp_work_share is a multiple
of 4 bytes, whatwe need is to make the align of gomp_work_share at least
'long long'.
More information about the Gcc-bugs
mailing list