Main Content

MISRA C++:2023 Rule 9.6.1

The goto statement should not be used

Since R2024b

Description

Rule Definition

The goto statement should not be used.

Rationale

Unrestricted use of goto statements increases the complexity of the logic of a program and makes the code difficult to understand. Additionally, goto statements can introduce memory leaks or incorrectly release resources.

Polyspace Implementation

Polyspace reports a rule violation when you use a goto statement.

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

Polyspace reports a rule violation every time this code uses a goto statement.

void foo(void)
{
    int i = 0, result = 0;

label1:
    for (i; i < 5; i++) {
        if (i > 2) goto label2;     // Non-compliant
    }

label2: {
        result++;
        goto label1;                // Non-compliant
    }
}

Check Information

Group: Statements
Category: Advisory

Version History

Introduced in R2024b