On 5/28/26 06:32, oltolm wrote:
On x86_64-w64-mingw32, PR target/54412 is triggered when GCC creates
under-aligned stack storage for AVX values that are passed, returned or
materialized indirectly.
Add coverage for the original by-value cases, for isolated hidden sret
allocation, for callee-side by-reference parameter setup, for the reduced
real-world C++ temporary-slot reproducer, and for an aligned(64) AVX512
case.
FYI the new set of patches caused a build error:
../../gcc/gcc/function.cc: In function ‘void assign_parm_setup_reg(assign_parm_data_all*, tree, assign_parm_data_one*)’:
../../gcc/gcc/function.cc:3396:21: error: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Werror=sign-compare]
3396 | if (align > MAX_SUPPORTED_STACK_ALIGNMENT
I missed pushing one of the patches earlier for adding the testcases,
but by the time I realized and pushed it, I saw you sent a new version.
Please rebase against the master branch, thanks.