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 type1 .

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


1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.

The MISRA coding standards referenced in the Polyspace® Bug Finder™ documentation are from the following MISRA standards:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA C:2023

  • MISRA C++:2008

  • MISRA C++:2023

MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.