[cfe-commits] r110317 - /cfe/trunk/lib/Checker/GRExprEngine.cpp

Ted Kremenek kremenek at apple.com
Thu Aug 5 08:08:39 PDT 2010


I have reverted this.  This is definitely should not be an assertion.  Not all of the checkers will be evaluated if one of them generates a sink node.   The fact that this assertion doesn't trigger on our test cases means that there is a bug in the caching logic.  We probably need to bail out of the above loop when one of the ExplodedNodeSets becomes empty.  We don't want to creates a new checker set unless all of the checkers have evaluated; otherwise we won't know if we are leaving some checkers out just because one generated (and only generated) a sink node.

On Aug 5, 2010, at 12:38 AM, Zhongxing Xu wrote:

> Author: zhongxingxu
> Date: Thu Aug  5 02:38:23 2010
> New Revision: 110317
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=110317&view=rev
> Log:
> Turn the predicate into an assertion. When could the unequal case happen?
> 
> Modified:
>    cfe/trunk/lib/Checker/GRExprEngine.cpp
> 
> Modified: cfe/trunk/lib/Checker/GRExprEngine.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/GRExprEngine.cpp?rev=110317&r1=110316&r2=110317&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Checker/GRExprEngine.cpp (original)
> +++ cfe/trunk/lib/Checker/GRExprEngine.cpp Thu Aug  5 02:38:23 2010
> @@ -237,8 +237,10 @@
>   // If we built NewCO, check if we called all the checkers.  This is important
>   // so that we know that we accurately determined the entire set of checkers
>   // that responds to this callback.
> -  if (NewCO.get() && checkersEvaluated == Checkers.size())
> +  if (NewCO.get()) { 
> +    assert(checkersEvaluated == Checkers.size());
>     CO_Ref = NewCO.take();
> +  }
> 
>   // Don't autotransition.  The CheckerContext objects should do this
>   // automatically.
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits





More information about the cfe-commits mailing list