From: Ted Kremenek Date: Mon, 25 Feb 2008 18:56:23 +0000 (+0000) Subject: Fixed bug in RemoveDeadBindings when performing the mark-and-sweep over the X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=29db75ceec7a6c726fc95245f9522a4dba72299a;p=clang Fixed bug in RemoveDeadBindings when performing the mark-and-sweep over the symbolic store: VarDecl's inserted into the sweep may not always bind to anything; handle this special case just like bindings to uninitialized values. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47550 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Analysis/ValueState.cpp b/Analysis/ValueState.cpp index 3cbcd88d25..75f719ae6a 100644 --- a/Analysis/ValueState.cpp +++ b/Analysis/ValueState.cpp @@ -95,11 +95,9 @@ ValueStateManager::RemoveDeadBindings(ValueState St, Stmt* Loc, if (V->getType()->isPointerType()) { - RVal X = GetRVal(St, lval::DeclVal(cast(V))); + RVal X = GetRVal(St, lval::DeclVal(cast(V))); - assert (!X.isUnknown()); - - if (X.isUninit()) + if (X.isUnknownOrUninit()) continue; LVal LV = cast(X);