Main Content

MISRA C:2012 Rule 3.2

Line-splicing shall not be used in // comments

Description

Rule Definition

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

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 R2014b


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.