aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.c
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2017-06-07 22:09:16 +0100
committerGinger Bill <bill@gingerbill.org>2017-06-07 22:09:16 +0100
commit574b82c0c7e266bcd1bc16ee709d32936625cf46 (patch)
tree2490104e638424a41d86d37395aefc99a00e5451 /src/check_expr.c
parentf60c772c11154d16c12d30a7f19c2c2e07068642 (diff)
v0.3.0
Diffstat (limited to 'src/check_expr.c')
-rw-r--r--src/check_expr.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/check_expr.c b/src/check_expr.c
index 75d38f4fc..1ed7378e5 100644
--- a/src/check_expr.c
+++ b/src/check_expr.c
@@ -2643,6 +2643,14 @@ bool check_is_castable_to(Checker *c, Operand *operand, Type *y) {
return true;
}
+ if (is_type_bit_field_value(src) && is_type_integer(dst)) {
+ return true;
+ }
+
+ if (is_type_bit_field_value(src) && is_type_boolean(dst)) {
+ return src->BitFieldValue.bits == 1;
+ }
+
// Cast between pointers
if (is_type_pointer(src) && is_type_pointer(dst)) {
Type *s = base_type(type_deref(src));