MISRA C++:2008 Rule 2-13-3
A "U" suffix shall be applied to all octal or hexadecimal integer literals of unsigned type
Description
Rule Definition
A "U" suffix shall be applied to all octal or hexadecimal integer literals of unsigned type.1
Rationale
The signedness of a constant is determined from:
Value of the constant.
Base of the constant: octal, decimal or hexadecimal.
Size of the various types.
Any suffixes used.
Unless you use a suffix u
or U
,
another developer looking at your code cannot determine easily whether a constant is
signed or unsigned.
Polyspace Implementation
Polyspace® reports a violation of this rule if an unsigned octal or hexadecimal constant
does not have the suffix U
.
To check for violations of this rule correctly, specify your compiler and target. See:
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
Check Information
Group: Lexical Conventions |
Category: Required |
Version History
Introduced in R2013b
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.