title: int(int(-2)/unsigned(2)) = 2147483647 no warning
body: <p>I have a code similar to this: </p>
  
  <pre><code>template&lt;typename Ta, typename Tb&gt; Ta doStuff(Ta a, Tb b)
  {
      ...
      return a/b;
  }
  </code></pre>
  
  <p>As the title says such code would return wrong values with Ta=int Tb=unsigned.</p>
  
  <p>Is there a way to get a warning by g++ for this case ?</p>