title: MISRA C 2012 Rule 15.4 and replacing goto's with break's
body: <p>Regarding to MISRA C 2012 rule 15.4 - &quot;There should be no more than one break or goto statement used to terminate any iteration statement.&quot; - is this example correct? Can anyone confirm this with some tool (MISRA checker)?</p>
  <pre><code>do {
      retval = do_smth();
      if (retval != OK) {
          break;
      }
  
      retval = do_smth2();
      if (retval != OK) {
          break;
      }
  
      retval = do_smth3();
  } while (0u);
  </code></pre>
  <p>This is just a concept, but what I am trying here is to replace cascade of <code>goto</code> (unfortunately banned in this case) with cascade of <code>break</code>. My point is that <code>do { } while(0u);</code> is not an iteration statement.<br />
  What you think?</p>