]> granicus.if.org Git - clang/commitdiff
Simplify more code by using SVal::getAsSymbol() instead of
authorTed Kremenek <kremenek@apple.com>
Mon, 30 Mar 2009 18:45:36 +0000 (18:45 +0000)
committerTed Kremenek <kremenek@apple.com>
Mon, 30 Mar 2009 18:45:36 +0000 (18:45 +0000)
loc::SymbolVal/nonloc::SymbolVal probing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68049 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/GRState.cpp

index 7399ad4e220407e4a4452aa075e99dcdb377e0ec..82cb1f24c41dace1074e5fa2c2bbb94efbe21f10 100644 (file)
@@ -243,12 +243,9 @@ bool ScanReachableSymbols::scan(nonloc::CompoundVal val) {
 bool ScanReachableSymbols::scan(SVal val) {
   if (loc::MemRegionVal *X = dyn_cast<loc::MemRegionVal>(&val))
     return scan(X->getRegion());
-    
-  if (loc::SymbolVal *X = dyn_cast<loc::SymbolVal>(&val))
-    return visitor.VisitSymbol(X->getSymbol());
-  
-  if (nonloc::SymbolVal *X = dyn_cast<nonloc::SymbolVal>(&val))
-    return visitor.VisitSymbol(X->getSymbol());
+
+  if (SymbolRef Sym = val.getAsSymbol())
+    return visitor.VisitSymbol(Sym);
   
   if (nonloc::CompoundVal *X = dyn_cast<nonloc::CompoundVal>(&val))
     return scan(*X);
@@ -304,12 +301,9 @@ bool GRStateManager::isEqual(const GRState* state, Expr* Ex,
   if (nonloc::ConcreteInt* X = dyn_cast<nonloc::ConcreteInt>(&V))
     return X->getValue() == Y;
     
-  if (nonloc::SymbolVal* X = dyn_cast<nonloc::SymbolVal>(&V))
-    return ConstraintMgr->isEqual(state, X->getSymbol(), Y);
-  
-  if (loc::SymbolVal* X = dyn_cast<loc::SymbolVal>(&V))
-    return ConstraintMgr->isEqual(state, X->getSymbol(), Y);
-  
+  if (SymbolRef Sym = V.getAsSymbol())
+    return ConstraintMgr->isEqual(state, Sym, Y);
+
   return false;
 }