From 29db75ceec7a6c726fc95245f9522a4dba72299a Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Mon, 25 Feb 2008 18:56:23 +0000 Subject: [PATCH] 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 --- Analysis/ValueState.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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); -- 2.50.1