https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64798
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- __BIGGEST_ALIGNMENT__ has nothing to do with alignment of malloc returned memory. The union I've mentioned is a reasonable guess (something actually mandated by the standard), glibc right now guarantees 2 * sizeof (void *) (which is wrong for ppc32). For malloc alignment, we've added an attribute for that, but glibc maintainers haven't added it to their headers :( and obviously other libcs neither.