On 11/22/2016 04:25 PM, Ian Lance Taylor wrote:
The code that handles -fdump-go-spec was incorrectly trying to pad the last field of a struct/union to the alignment of the overall struct/union. That is unnecessary and incorrect, as the alignment is handled by go_force_record_alignment anyhow. It caused a compiler crash on x32 and various other 32-bit targets when generating the Go version of the libffi ffi_closure type, which is explicitly aligned to an 8 byte boundary but does not necessarily have that size. This caused PRs 78431 and 78432. Ran bootstrap and Go testsuite on x86_64-pc-linux-gnu, with x32 multilib enabled. Committed to mainline.
I'm seeing failures in the gcc.misc-tests/godump-1.c test that may be related to this change. The same failures are also reported on gcc-testresults: https://gcc.gnu.org/ml/gcc-testresults/2016-11/msg02556.html Martin