[PATCH] [analyzer] Do not reinitialize static globals when the function is called more than once along a path

Ted Kremenek kremenek at apple.com
Wed Feb 6 15:21:40 PST 2013


On Feb 6, 2013, at 3:15 PM, Anna Zaks <ganna at apple.com> wrote:

> 
> Currently, we reset the static variables with initializers on every visit to the function along a path. The solution might be a bit hacky as we check if the region has been stored something other than a LazyCompoundVal to find out if the static variable has been assigned to previously.

Hi Anna,

Why not just record the initialization in a side-table in the GDM?  That seems a lot cleaner.  This patch seems to rely on all the other pieces working correctly.  It also doesn't seem correct.  A static variable for an Objective-C pointer is guaranteed to be a valid value (it is zero-initialized), even if we haven't visited the initializer yet.  For example:

  static id x;  // this is always zero-initialized

Ted
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130206/d9718e48/attachment.html>


More information about the cfe-commits mailing list