]> granicus.if.org Git - clang/commitdiff
add utility method.
authorZhongxing Xu <xuzhongxing@gmail.com>
Tue, 30 Jun 2009 11:52:40 +0000 (11:52 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Tue, 30 Jun 2009 11:52:40 +0000 (11:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74521 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Analysis/PathSensitive/SVals.h
lib/Analysis/SVals.cpp

index 36137fb117b36cd376eeafbbebcd91c4a430e7c0..4bc5e27aacf058371c33b15063894743489d276a 100644 (file)
@@ -110,6 +110,8 @@ public:
   /// getAsSymbolicExpression - If this Sval wraps a symbolic expression then
   ///  return that expression.  Otherwise return NULL.
   const SymExpr *getAsSymbolicExpression() const;
+
+  const MemRegion *getAsRegion() const;
   
   void print(llvm::raw_ostream& OS) const;
   void printStdErr() const;
index 7d1850d730957404d92a335d535f43333a134c48..d711ce0a225e324a436fa2435b58ebf03efe3ef6 100644 (file)
@@ -114,6 +114,13 @@ const SymExpr *SVal::getAsSymbolicExpression() const {
   return getAsSymbol();
 }
 
+const MemRegion *SVal::getAsRegion() const {
+  if (const loc::MemRegionVal *X = dyn_cast<loc::MemRegionVal>(this))
+    return X->getRegion();
+
+  return 0;
+}
+
 bool SVal::symbol_iterator::operator==(const symbol_iterator &X) const {
   return itr == X.itr;
 }