<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 13-apr-10, at 12:01, bearophile wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Fawzi Mohamed:<br><blockquote type="cite">I guess that I am missing something obvious, so I don't see the reason &nbsp;<br></blockquote><blockquote type="cite">for range propagation, but maybe I am not the only one, so thanks for &nbsp;<br></blockquote><blockquote type="cite">an explanation...<br></blockquote><br>Range propagation can improve the situation a little, so it's not bad. But it can't replace proper integral overflows. You need integral overflows at runtime.<br></div></blockquote><div><br></div>integral overflow are helpful only if you have automatic conversion to a larger type, but that breaks the compile time knowledge of the size of such an integer, so that you have to assume that it might need to be pushed to the heap.</div><div>Yes you might use some tricks (like using size_t.sizeof*8-1 bits, or a pointer to spare some place), but I don't think that D wants to go that way for the basic integers...</div><div><br></div><div><blockquote type="cite"><div><font class="Apple-style-span" color="#000000"><br></font>Bye,<br>bearophile<br></div></blockquote></div><br></body></html>