I was at JPL when we were developing these standards. C was still pretty new there, they used FORTRAN almost exclusively before that.<p>In practice, this rule had little impact. The only time you could justify using a goto was for cleanup, and you could always end-run around the rule.<p><pre><code>    ... blah blah ...
    if (error)
       goto fail;
    ... blah blah ...
    if (error)
       goto fail;
    ... blah blah ...

  fail:
    ... cleanup ...
</code></pre>
just gets turned into<p><pre><code>  do {
    ... blah blah ...
    if (error)
        break;
    ... blah blah ...
    if (error)
        break;
    ... etc...
  } while (0);
  if (error) {
    ... cleanup ...
  }</code></pre>