<div dir="ltr">On Mon, Jul 10, 2017 at 11:13 AM, David Majnemer <span dir="ltr"><<a href="mailto:david.majnemer@gmail.com" target="_blank">david.majnemer@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="gmail-h5"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>5. Subs and shifts<br></div><div>int neg101_sub_shifty(int x, int y) {<br>  int r = (x - y) >> 31;<br></div></div></blockquote><div><br></div></div></div><div>What if x is INT_MIN and y is greater than zero? Won't r be poison?</div><span class="gmail-"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>  r += (unsigned)(y - x) >> 31;<br></div></div></blockquote><div><br></div></span><div>Ditto with respect to y being INT_MIN and x greater than zero.</div></div></div></div></blockquote><div><br></div><div>Oops - yes. Ignore this option. When I initially modelled this case in Alive, I only checked that the 'sub nsw' form could be transformed into a form with cmp/select rather than the other way around:<br><a href="http://rise4fun.com/Alive/SKBN">http://rise4fun.com/Alive/SKBN</a><br></div><div><br> </div></div></div></div>