Main Content

MISRA C:2012 Rule 6.1

Bit-fields shall only be declared with an appropriate type

Description

Rule Definition

Bit-fields shall only be declared with an appropriate type.

Rationale

Using int for a bit-field type is implementation-defined because bit-fields of type int can be either signed or unsigned.

The use of enum, short char, or any other type of bit-field is not permitted in C90 because the behavior is undefined.

In C99, the implementation can potentially define other integer types that are permitted in bit-field declarations.

Polyspace Implementation

The checker flags data types for bit-fields other than these allowed types:

  • C90: signed int or unsigned int (or typedef-s that resolve to these types)

  • C99: signed int, unsigned int or _Bool (or typedef-s that resolve to these types)

The results depend on the version of the C standard used in the analysis. See C standard version (-c-version).

Troubleshooting

If you expect a rule violation but do not see it, refer to Diagnose Why Coding Standard Violations Do Not Appear as Expected.

Check Information

Group: Types
Category: Required
AGC Category: Required

Version History

Introduced in R2014b