<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 11, 2013, at 2:55 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk">richard@metafoo.co.uk</a>> wrote:</div><br><blockquote type="cite"><div class="gmail_quote"><div>There are two different kinds of overflow that can happen in a case expression:</div><div>
<br></div><div>1) An overflow occurs while evaluating the case value:</div><div><br></div><div>switch (n)</div><div>  case 123456 * 123456:</div><div><br></div><div>2) An overflow occurs while converting the evaluated case value to the promoted type of the switch expression:</div>
<div><br></div><div>int n = /*...*/;</div><div>switch (n)</div><div>  case 1ULL << 45:</div><div><br></div><div>For situation (1), it doesn't seem pertinent that this is happening within a case expression; we should warn no matter where it happens; this is the focus of PR2729. (2) should already be being checked by the call to ConvertIntegerToTypeWarnOnOverflow.</div></div></blockquote><div><br></div>This Patch checks and warns for overflow.</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">       </span></div></body></html>