diff options
| author | Michael Matz <matz@suse.de> | 2017-04-29 21:23:43 +0200 |
|---|---|---|
| committer | Michael Matz <matz@suse.de> | 2017-04-29 21:25:31 +0200 |
| commit | 28084420fed1f833da04a6f69380c276c9431cff (patch) | |
| tree | 07ea58a262c7f570e7c586645e22707c2ae06a57 /tccgen.c | |
| parent | 76e16465bfce78a2a7bbe54470723fe4d640e1e4 (diff) | |
| download | tinycc-28084420fed1f833da04a6f69380c276c9431cff.tar.gz tinycc-28084420fed1f833da04a6f69380c276c9431cff.tar.bz2 | |
Fix char bitfields corner case
See testcase.
Diffstat (limited to 'tccgen.c')
| -rw-r--r-- | tccgen.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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; |
