title: Is the following an undefined behavior? i = func(i)
body: <p>I know that <code>i=i++;</code> is an undefined behavior, because <code>i</code> is changed twice before the sequence point <code>;</code>.</p>
  
  <p>But I don't know if the compiler guarantees the case as below is not an undefined behavior:</p>
  
  <pre><code>int func(int &amp;i)
  {
      i++;
      return i;
  }
  
  int i = 1;
  i = func(i);
  </code></pre>