From: Zhongxing Xu Date: Thu, 9 Apr 2009 06:32:20 +0000 (+0000) Subject: clean up code with new API. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6782f75fd0028f28292620c09c3b912be749762d;p=clang clean up code with new API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68693 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp index 5d1834f929..1f7f5fb4d0 100644 --- a/lib/Analysis/CFRefCount.cpp +++ b/lib/Analysis/CFRefCount.cpp @@ -1789,28 +1789,12 @@ void CFRefCount::EvalSummary(ExplodedNodeSet& Dst, if (Loc::IsLocType(FT) || (FT->isIntegerType() && FT->isScalarType())) { - // Tag the symbol with the field decl so that we generate - // a unique symbol. - SymbolRef NewSym = - Eng.getSymbolManager().getConjuredSymbol(*I, FT, Count, FD); - - // Create a region. - // FIXME: How do we handle 'typedefs' in TypeViewRegions? - // e.g.: - // typedef struct *s foo; - // - // ((foo) x)->f vs. x->f - // - // The cast will add a ViewTypeRegion. Probably RegionStore - // needs to reason about typedefs explicitly when binding - // fields and elements. - // const FieldRegion* FR = MRMgr.getFieldRegion(FD, R); - - state = state.BindLoc(Loc::MakeVal(FR), - Loc::IsLocType(FT) - ? cast(loc::SymbolVal(NewSym)) - : cast(nonloc::SymbolVal(NewSym))); + + SVal V = SVal::GetConjuredSymbolVal(Eng.getSymbolManager(), + Eng.getStoreManager().getRegionManager(), *I, FT, Count); + + state = state.BindLoc(Loc::MakeVal(FR), V); } } }