From 59b8007f98eb814f6fd19455ab868ecaa07dfc0d Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Fri, 3 Jan 2014 08:41:34 +0800 Subject: [PATCH] Always set *palign in classify_x86_64_arg Set *palign for VT_BITFIELD and VT_ARRAY types in classify_x86_64_arg as else you happen to have in *palign what was already there. This can cause gfunc_call on !PE systems to consider an array as 16 bytes align and trigger the assert if the previous argument was 16 bytes aligned. --- x86_64-gen.c | 1 + 1 file changed, 1 insertion(+) diff --git a/x86_64-gen.c b/x86_64-gen.c index 09620568..2f4d8fe7 100644 --- a/x86_64-gen.c +++ b/x86_64-gen.c @@ -993,6 +993,7 @@ static X86_64_Mode classify_x86_64_arg(CType *ty, CType *ret, int *psize, int *p if (ty->t & (VT_BITFIELD|VT_ARRAY)) { *psize = 8; + *palign = 8; *reg_count = 1; ret_t = ty->t; mode = x86_64_mode_integer;