As Shmuel reported in <https://gcc.gnu.org/ml/gcc-help/2017-03/msg00009.html>,
on x86-64 small structures in automatic storage are aligned to 16 bytes.
This seems to be because of a mix-up between bits and bytes in the i386
target code.
* config/i386/i386.c (ix86_local_alignment): Align most aggregates
of 16 bytes and more to 16 bytes, not those of 16 bits and more.
From-SVN: r245949
+2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/i386/i386.c (ix86_local_alignment): Align most aggregates
+ of 16 bytes and more to 16 bytes, not those of 16 bits and more.
+
2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR c/79855
!= TYPE_MAIN_VARIANT (va_list_type_node)))
&& TYPE_SIZE (type)
&& TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
- && wi::geu_p (TYPE_SIZE (type), 16)
+ && wi::geu_p (TYPE_SIZE (type), 128)
&& align < 128)
return 128;
}