<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 Jul 4, 2014, at 1:15 , Anders Rönnholm <<a href="mailto:Anders.Ronnholm@evidente.se">Anders.Ronnholm@evidente.se</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><blockquote type="cite">Huh. So, I changed it back to the way it was:<br><br> SVal Val = State->getRawSVal(*L);<br>if (Val == S) {<br> Optional<DefinedSVal> DSV = Val.getAs<DefinedSVal>();<br>   ConstraintManager &CM = C.getConstraintManager();<br>   if (!CM.assume(State, *DSV, false))<br>     return true;<br> }<br><br>and tried running the tests. No failures. Then I flipped the "false" to "true" in the assume...and still no failures. So we must never be getting into that if-case!<br><br>What would that affect?<br><br>Jordan<br></blockquote><br><br>We don't get into the if-case because we never get a Loc from Sval therefore it always returns false and our tests are passed.<br><br>Optional<Loc> L = S.getAs<Loc>();<br>  if (!L)<br>    return false;<br></blockquote><div><br></div><div>Um. Right, we <i>shouldn't</i> get a Loc at that point. But we don't <i>need</i> a Loc. We just need whatever NonLoc symbol <i>is</i> there, and we can check to see if <i>that</i> is 0. Why did we need a Loc again?</div><div><br></div><div>Anyway, we shouldn't have features that don't show up in the tests. I think this code was <i>either</i> trying to avoid emitting duplicate messages if the denominator is known to be 0 already (which won't happen because that's a fatal error), <i>or</i> trying to avoid adding the symbol to the map if it's known <i>not</i> to be 0 (which is not what it's doing now, or at least not what it says it's doing). The latter is kind of useful but it's just optimization.</div><div><br></div><div>Jordan</div><div><br></div></div></body></html>