[clang][emscripten] Reduce alignof long double from 16 to 8 bytes
authorSam Clegg <sbc@chromium.org>
Wed, 23 Jun 2021 19:02:32 +0000 (12:02 -0700)
committerSam Clegg <sbc@chromium.org>
Fri, 2 Jul 2021 18:05:40 +0000 (11:05 -0700)
commitd1a96e906cc03a95cfd41a1f22bdda92651250c7
tree27510915916c39e77f888421d9dcb00c68c62472
parent3ec88ca60b24418b2216de88fad1da4f269f6b8c
[clang][emscripten] Reduce alignof long double from 16 to 8 bytes

This means `max_align_t` is 8 bytes which also sets the alignment
malloc.  Since this is technically and ABI breaking change we have
limited to just the emscripten OS target.  It is also relatively low
import breakage since it will only effect the alignement of struct that
contai `long double`s (extremerly rare I imagine).

Emscripten's malloc implementation already use 8 byte alignement
(dlmalloc uses and alignement of 2*sizeof(void*) == 8 rather than
checking max_align_t) so will not be effected by this change.  By
bringing the ABI in line with the current malloc code this will fix
several issue we have seen in the wild.

See: https://github.com/emscripten-core/emscripten/pull/14456

Differential Revision: https://reviews.llvm.org/D104808
clang/lib/Basic/Targets/OSTargets.h