[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