aboutsummaryrefslogtreecommitdiff
path: root/tccgen.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2017-04-29 21:23:43 +0200
committerMichael Matz <matz@suse.de>2017-04-29 21:25:31 +0200
commit28084420fed1f833da04a6f69380c276c9431cff (patch)
tree07ea58a262c7f570e7c586645e22707c2ae06a57 /tccgen.c
parent76e16465bfce78a2a7bbe54470723fe4d640e1e4 (diff)
downloadtinycc-28084420fed1f833da04a6f69380c276c9431cff.tar.gz
tinycc-28084420fed1f833da04a6f69380c276c9431cff.tar.bz2
Fix char bitfields corner case
See testcase.
Diffstat (limited to 'tccgen.c')
-rw-r--r--tccgen.c2
1 files changed, 1 insertions, 1 deletions
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;