rspec/rules/S999/description.adoc

6 lines
689 B
Plaintext
Raw Normal View History

2021-01-26 14:30:57 +01:00
Unconstrained use of ``goto`` can lead to programs that are extremely difficult to comprehend and analyse. For {cpp}, it can also lead to the program exhibiting unspecified behavior.
2020-06-30 12:50:59 +02:00
2020-12-23 14:59:06 +01:00
However, in many cases a total ban on ``goto`` requires the introduction of flags to ensure correct control flow, and it is possible that these flags may themselves be less transparent than the ``goto`` they replace.
2020-06-30 12:50:59 +02:00
2020-12-23 14:59:06 +01:00
Therefore, the restricted use of ``goto`` is allowed where that use will not lead to semantics contrary to developer expectations. "Back" jumps are prohibited, since they can be used to create iterations without using the well-defined iteration statements supplied by the core language.