diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c index b44b4ebc331fd27e33ae07b10f26752b49e20537..74bbb7af95ed4a0404cc891fed54775045d75753 100644 --- a/libasn1compiler/asn1c_constraint.c +++ b/libasn1compiler/asn1c_constraint.c @@ -505,7 +505,7 @@ emit_size_determination_code(arg_t *arg, asn1p_expr_type_e etype) { case ASN_BASIC_BIT_STRING: OUT("if(st->size > 0) {\n"); OUT("\t/* Size in bits */\n"); - OUT("\tsize = 8 * (st->size - 1) - (st->buf[0] & 0x7);\n"); + OUT("\tsize = 8 * st->size - (st->bits_unused & 0x07);\n"); OUT("} else {\n"); OUT("\tsize = 0;\n"); OUT("}\n");