[cfe-dev] Process in UncheckedReturn
章磊
ioripolo at gmail.com
Wed Jun 1 19:04:38 PDT 2011
2011/6/2 Ted Kremenek <kremenek at apple.com>
> On May 30, 2011, at 10:48 PM, 章磊 wrote:
>
> 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:
>
> 1. 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?
> 2. Keep the <CE, CheckedReturnState> in GRState, so we get it over. But
> how to effectively keep these information.
>
>
>
>
> Hi Lei,
>
> 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.
>
> Ted
>
Hi Ted,
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.
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>>?
--
Best regards!
Lei Zhang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110602/762ff7f0/attachment.html>
More information about the cfe-dev
mailing list