title: Why ternary operation may be undefined
body: <p>Working with GNU/GCC</p>
  <p>With this code :</p>
  <pre><code>static uint8_t write_idx=0;
  write_idx = write_idx==127 ? 0 : ++write_idx;
  </code></pre>
  <p>I get this warning :</p>
  <pre><code>warning: operation on 'write_idx' may be undefined [-Wsequence-point]
  </code></pre>
  <p>Do you know what generates this warning ?</p>
  <p>EDIT : <br></p>
  <pre><code>write_idx = write_idx==127 ? 0 : write_idx+1;
  </code></pre>
  <p>Same behaviour but no warning thanks @pmg</p>