== Why is this an issue? The values that can be represented by a signed bit field with a length of one bit may not meet developer expectations. For example, according to the C99 Standard, a single-bit signed bit-field has a single (one) sign bit and no (zero) value bits. This rule does not apply to unnamed bit fields, as their values cannot be accessed. === Noncompliant code example [source,cpp] ---- signed int f:1; // Noncompliant; there's only room here for the sign ---- === Compliant solution [source,cpp] ---- unsigned int f:1; ---- or [source,cpp] ---- signed int:1; // unnamed ---- or [source,cpp] ---- signed int f:2; ---- == Resources * MISRA C:2004, 6.5 - Bit fields of type signed int shall be at least 2 bits long * MISRA C:2012, 6.2 - Single-bit named bit fields shall not be of a signed type * MISRA {cpp}:2008, 9-6-4 - Named bit-fields with signed integer type shall have a length of more than one bit ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Review "X" declaration sign and size. ''' == Comments And Links (visible only on this page) === is duplicated by: S1010 === on 9 Dec 2014, 20:58:20 Evgeny Mandrikov wrote: \[~ann.campbell.2] could you please verify this description, which was built as a combination of MISRA C:2012 and MISRA {cpp}2008? === on 14 Dec 2014, 22:51:08 Evgeny Mandrikov wrote: \[~ann.campbell.2] I was expecting that you'll also specify SQALE model and other parameters, but ok... === on 15 Dec 2014, 14:58:47 Ann Campbell wrote: Sorry [~evgeny.mandrikov], I didn't notice the lack of SQALE &etc. I'll pay more attention next time. endif::env-github,rspecator-view[]