Skip to content

Commit 9af79ce

Browse files
committed
bool in bitfield
#210
1 parent d7a3c47 commit 9af79ce

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

src/cc/frontend/type.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ static size_t calc_bitfield_size(StructInfo *sinfo, int *pi, size_t size, size_t
6666
size_t remain = size % align;
6767
if (remain == 0) {
6868
kind = minfo->type->fixnum.kind;
69-
if (kind == FX_ENUM)
69+
if (kind > FX_LLONG)
7070
kind = FX_INT;
7171
} else {
7272
// Detect LSB.

tests/valtest.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "alloca.h"
22
#include "limits.h"
33
#include "stdarg.h"
4+
#include "stdbool.h"
45
#include "stddef.h" // offsetof
56
#include "stdint.h"
67
#include "stdio.h"
@@ -1777,6 +1778,17 @@ TEST(bitfield) {
17771778
} s = {5};
17781779
EXPECT_FALSE(-1 > s.x);
17791780
}
1781+
1782+
{
1783+
struct {
1784+
_Bool f : 1;
1785+
_Bool t : 1;
1786+
} s = {
1787+
false, true,
1788+
};
1789+
EXPECT("bool bitfield: false", false, s.f);
1790+
EXPECT("bool bitfield: true", true, s.t);
1791+
}
17801792
}
17811793
#endif
17821794

0 commit comments

Comments
 (0)