Main Content

MISRA C:2023 Rule 3.2

Line-splicing shall not be used in // comments

Since R2024a

Description

Rule Definition

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

Rationale

Line-splicing occurs when the \ character is immediately followed by a new-line character. Line splicing is used for statements that span multiple lines.

If you use line-splicing in a // comment, the following line can become part of the comment. In most cases, the \ is spurious and can cause unintentional commenting out of code.

Polyspace Implementation

Polyspace checks if the character \ is the last character of a comment starting with //.

Troubleshooting

If you expect a rule violation but do not see it, refer to Diagnose Why Coding Standard Violations Do Not Appear as Expected.

Examples

expand all

#include <stdbool.h>

extern _Bool b;

void func ( void )
{
    unsigned short x = 0;   // Non-compliant - Line-splicing \
    if ( b )
    {
        ++b;      
    }
}

Because of line-splicing, the statement if ( b ) is a part of the previous // comment. Therefore, the statement b++ always executes, making the if block redundant.

Check Information

Group: Comments
Category: Required
AGC Category: Required

Version History

Introduced in R2024a