>
>
>
V1074. Boundary between numeric escape …


V1074. Boundary between numeric escape sequence and string is unclear. The escape sequence ends with a letter and the next character is also a letter. Check for typos.

The analyzer has detected a suspicious situation inside a string or character literal. Here, the escape sequence with a letter at the end is not separated from the next printed letter. Such entry can lead to confusion. Perhaps, it's a typo and the literal is written incorrectly.

Look at the example:

const char *str = "start\x0end";

The null terminal, assumedly, separates the characters inside the string. However, in fact, the character with the '0xE' code follows 'start'. The 'nd' characters follow '0xE'.

To fix the problem, you can:

  • divide the string literal into several parts;
  • end a numeric escape sequence with another escape sequence.

For example, you can rewrite the code above like this:

const char *str = "start\x0" "end";

You can separate escape sequence from other parts of the string:

const char *str = "start" "\x0" "end";

Or limit it to another special character, like tab:

const char *str = "start\x0\tend";