<div> </div>
<div class="gmail_quote">2011/6/2 Ted Kremenek <span dir="ltr"><<a href="mailto:kremenek@apple.com">kremenek@apple.com</a>></span><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div style="WORD-WRAP: break-word">
<div class="im">
<div>
<div>On May 30, 2011, at 10:48 PM, ียภฺ wrote:</div><br>
<blockquote type="cite"><span style="WORD-SPACING: 0px; FONT: medium Helvetica; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate">Soon i found i was wrong in step 1, i should not use any structure in checker to record path-sensitive states. So i need other ways to handle this:<br>

<ol>
<li>It seems ok that only to update LocalPathMap when end path(so we can record in GRState until the path analysis finished), but how should we take care of the dead symbols? Maybe i could keep that dead symbols instead of removing them?</li>

<li>Keep the <CE, CheckedReturnState> in GRState, so we get it over. But how to effectively keep these information.</li></ol></span><br></blockquote></div><br>
<div><br></div></div>
<div>Hi Lei,</div>
<div><br></div>
<div>Besides aggregating statistics in checkEndPath, another option is to also doing this in checkDeadSymbols.  You then don't need to worry about symbols that have been removed from GRState by the time you reach checkEndPath, since you've already done the aggregation.  Of course this influences your counting, but in all fairness we aren't enumerating all paths explicitly anyway, so your counts are directly influenced by how we explore paths, which paths are explored, and how paths are coalesced.</div>

<div><br></div><font color="#888888">
<div>Ted</div></font></div></blockquote></div>
<div> </div>
<div>
<div>Hi Ted,</div>
<div> </div>
<div>It's ok to do aggregating in checkDeadSymbols, and that's how i do in my patch. My problem is if we do so, the deadsymbols are path-related, so we must keep the statistics in GRState instead of checker itself. </div>

<div> </div>
<div>Is it ok to add some GRState like llvm::immutablemap<CE, CheckedReturnState>, without related to some symbols? Or we must keep the GRState like llvm::immutablemap<sym, llvm::DenseMap<CE, CheckedReturnState>>?<br clear="all">
<br>-- <br>Best regards!<br><br>Lei Zhang<br></div></div>