diff options
Diffstat (limited to 'lib/Analysis/BasicStore.cpp')
-rw-r--r-- | lib/Analysis/BasicStore.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/lib/Analysis/BasicStore.cpp b/lib/Analysis/BasicStore.cpp index 8cfe7a9840..b883f88061 100644 --- a/lib/Analysis/BasicStore.cpp +++ b/lib/Analysis/BasicStore.cpp @@ -526,19 +526,15 @@ Store BasicStoreManager::getInitialStore() { if (VD->getStorageClass() == VarDecl::Static) continue; - // Only handle pointers and integers for now. - QualType T = VD->getType(); - if (Loc::IsLocType(T) || T->isIntegerType()) { - // Initialize globals and parameters to symbolic values. - // Initialize local variables to undefined. - const MemRegion *R = StateMgr.getRegion(VD); - SVal X = (VD->hasGlobalStorage() || isa<ParmVarDecl>(VD) || - isa<ImplicitParamDecl>(VD)) - ? SVal::GetRValueSymbolVal(StateMgr.getSymbolManager(), R) - : UndefinedVal(); - - St = BindInternal(St, Loc::MakeVal(R), X); - } + // Initialize globals and parameters to symbolic values. + // Initialize local variables to undefined. + const MemRegion *R = StateMgr.getRegion(VD); + SVal X = (VD->hasGlobalStorage() || isa<ParmVarDecl>(VD) || + isa<ImplicitParamDecl>(VD)) + ? SVal::GetRValueSymbolVal(StateMgr.getSymbolManager(), R) + : UndefinedVal(); + + St = BindInternal(St, Loc::MakeVal(R), X); } } return St; |