https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99306
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2021-03-01 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- __gnu_cxx::__mutex& get_mutex(unsigned char i) { // increase alignment to put each lock on a separate cache line struct alignas(64) M : __gnu_cxx::__mutex { }; static M m[mask + 1]; return m[i]; there's __BIGGEST_ALIGNMENT__ one could use as bound but that will usually be lower than the max ofile alignment and on most targets likely less than 64. That value (64) looks like it should be target dependent anyway (configury?)