CWE-1075

Unconditional Control Flow Transfer outside of Switch Block. [Complexity-Issues, Improper-Adherence-To-Coding-Standards]

Required inputs: IR

The product performs unconditional control transfer (such as a "goto") in code outside of a branching structure such as a switch block.

This issue makes it more difficult to maintain the product, which indirectly affects security by making it more difficult or time-consuming to find and/or fix vulnerabilities. It also might make it easier to introduce vulnerabilities.

Excerpts from CWE [https://cwe.mitre.org], Copyright (C) 2006-2026, the MITRE Corporation. See section 9.4. "3rd-Party Licenses" in the documentation for full details.

Possible Messages

Key

Text

Severity

Disabled

unconditional

The software performs unconditional control transfer (such as a “goto”) in code outside of a branching structure such as a switch block.

None

False

Options

branching_structures

branching_structures : set[bauhaus.ir.PIR_Class_Name] = {'Switch_Statement'}

Branching structures inside of which unconditional control flow should be allowed
 

control_transfer_statements

control_transfer_statements : set[bauhaus.ir.PIR_Class_Name] = {'Goto_Statement'}

Statements to consider as unconditional control flow transfers