Convert use of loc::SymbolVal and nonloc::SymbolVal to V.getAsSymbol(). This
also makes this code more correct as it transparently handles SVals that wrapped
TypedViewRegions(SymbolicRegions).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68048 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/BugReporter.cpp b/lib/Analysis/BugReporter.cpp
index f5ba327..a240062 100644
--- a/lib/Analysis/BugReporter.cpp
+++ b/lib/Analysis/BugReporter.cpp
@@ -537,18 +537,11 @@
                        PathDiagnostic& pd, BugReporter& br)
     : Sym(sym), PrevSt(prevst), S(s), VMgr(vmgr), Pred(pred), PD(pd), BR(br) {}
                         
-  bool HandleBinding(StoreManager& SMgr, Store store,
-                     const MemRegion* R, SVal V) {
+  bool HandleBinding(StoreManager& SMgr, Store store, const MemRegion* R,
+                     SVal V) {
 
-    SymbolRef ScanSym = 0;
-    
-    if (loc::SymbolVal* SV = dyn_cast<loc::SymbolVal>(&V))
-      ScanSym = SV->getSymbol();
-    else if (nonloc::SymbolVal* SV = dyn_cast<nonloc::SymbolVal>(&V))
-      ScanSym = SV->getSymbol();
-    else
-      return true;
-    
+    SymbolRef ScanSym = V.getAsSymbol();
+
     if (ScanSym != Sym)
       return true;