From 28084420fed1f833da04a6f69380c276c9431cff Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Sat, 29 Apr 2017 21:23:43 +0200 Subject: Fix char bitfields corner case See testcase. --- tccgen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tccgen.c') diff --git a/tccgen.c b/tccgen.c index 2cdb4f1..d558ff8 100644 --- a/tccgen.c +++ b/tccgen.c @@ -3387,7 +3387,7 @@ static void struct_layout(CType *type, AttributeDef *ad) int ofs = (c * 8 + bit_pos) % (typealign * 8); int ofs2 = ofs + bit_size + (typealign * 8) - 1; if (bit_size == 0 || - (typealign != 1 && + ((typealign != 1 || size == 1) && (ofs2 / (typealign * 8)) > (size/typealign))) { c = (c + ((bit_pos + 7) >> 3) + typealign - 1) & -typealign; bit_pos = 0; -- cgit v1.3.1