title: Can I use __builtin_*_overflow as += or *=?
body: <p>Is it legal to use a single variable for both source and destination of GCC's <code>__builtin_*_overflow</code> functions?</p>
  
  <p>For example, given</p>
  
  <pre><code>int a, b;
  </code></pre>
  
  <p>I would like to write a checked <code>a += b</code> as</p>
  
  <pre><code>__builtin_add_overflow(a, b, &amp;a)
  </code></pre>
  
  <p>Is this safe?</p>