Main Content

MISRA C++:2023 Rule 5.7.3

Line-splicing shall not be used in // comments

Since R2024b

Description

Rule Definition

Line-splicing shall not be used in // comments.

Rationale

If your code has the character \ at the end of a single-line comment, the next line of code becomes a continuation of the comment. Ending single line comments by using the character \ can inadvertently comment-out sections of code.

Polyspace Implementation

Polyspace checks if the character \ is the last character of a C++-style comment.

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 <cstdint>

void foo()
{
  int32_t idx = 0;
  int32_t limit = 20;
  int32_t count = 20;
  ++idx; // Incrementing index before the loop starts// Requirement X\\
  for(;idx<limit;++idx)
  {
     --count;
  }
}

The for loop definition is commented-out because the single-line comment ends with the character \. As a result, count is decremented only once, perhaps inadvertently. The checker flags this issue by highlighting the character \ in the single-line comment.

Check Information

Group: Lexical Conventions
Category: Required

Version History

Introduced in R2024b