MISRA C++:2023 Rule 5.13.2
Octal escape sequences, hexadecimal escape sequences and universal character names shall be terminated
Since R2024b
Description
Rule Definition
Octal escape sequences, hexadecimal escape sequences and universal character names shall be terminated. 1
Rationale
There is potential for confusion if an octal or hexadecimal escape sequence, or
universal character name is followed by other characters. For example, the character
constant '\x1f'
consists of a single character, whereas the character
constant '\x1g'
consists of the two characters '\x1'
and 'g'
. The manner in which multicharacter constants are represented as
integers is implementation-defined.
If every octal and hexadecimal escape sequence and universal character name in a character constant or string literal is terminated, you reduce potential confusion.
Polyspace Implementation
The rule checker reports violations when an escape sequence or universal character name is not terminated with the end-of-string literal or another escape sequence.
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 R2024b
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.