Main Content

MISRA C++:2008 Rule 5-0-11

The plain char type shall only be used for the storage and use of character values

Description

Rule Definition

The plain char type shall only be used for the storage and use of character values.

Rationale

The signedness of plain char is implementation-defined. Because its sign is not well defined, the plain char type is not suitable to be used with numeric values. Use plain char for the storage and use of character values.

Polyspace Implementation

The checker raises a violation when a value of signed or unsigned integer type is implicitly converted to the plain char type.

Troubleshooting

If you expect a rule violation but Polyspace® does not report it, see Diagnose Why Coding Standard Violations Do Not Appear as Expected.

Examples

expand all

#include<stdint.h>
typedef  char char_t;
void foo(){
char a = 'a'; // Compliant
char_t b = '\r'; // Compliant
char_t c = 10; // Noncompliant
char d = 'd'; // Compliant
}

In this example, Polyspace flags the use of plain char for numeric data.

Check Information

Group: Expressions
Category: Required

Version History

Introduced in R2015a