C and C++


LANG.STRUCT.GOTO : Goto Statement

Summary

The code contains a goto statement.

This class is a strict superset of Backwards goto and of Label Not in Enclosing Block.

Properties

Class Name Goto Statement
Significance style
Mnemonic LANG.STRUCT.GOTO
Categories
MisraC2023 MisraC2023:15.1 The goto statement should not be used
Misra2012 Misra2012:15.1 The goto statement should not be used
Misra2004 Misra2004:14.4 The goto statement shall not be used
AUTOSARC++14 AUTOSARC++14:A6-6-1 The goto statement shall not be used.
MisraC++2023 MisraC++2023:9.6.1 The goto statement should not be used
CWE CWE:710 Improper Adherence to Coding Standards
JSF++ JSF++:189 The goto statement shall not be used.
POW10 POW10:1 Restrict to simple control flow constructs.
JPL JPL:11 Do not use goto, setjmp or longjmp.
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Goto Statement"

Example

void lang_struct_goto(int a){
    int x = a;
    mylab : x += 5;
    if (x < 10){
        goto mylab;    /* 'Goto Statement' warning issued here*/
    }
}

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.