Implemented casts for ConcreteInt and ConcreteIntLValue.
Implemented '==' and '!=' for ConcreteIntLValue.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46630 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/RValues.h b/Analysis/RValues.h
index 989c60b..c5ad8a5 100644
--- a/Analysis/RValues.h
+++ b/Analysis/RValues.h
@@ -187,6 +187,8 @@
 public:
   void print(std::ostream& Out) const;
   
+  RValue Cast(ValueManager& ValMgr, Expr* CastExpr) const;
+
   // Arithmetic operators.
   NonLValue Add(ValueManager& ValMgr, const NonLValue& RHS) const;
   NonLValue Sub(ValueManager& ValMgr, const NonLValue& RHS) const;
@@ -199,6 +201,7 @@
   NonLValue EQ(ValueManager& ValMgr, const NonLValue& RHS) const;
   NonLValue NE(ValueManager& ValMgr, const NonLValue& RHS) const;
   
+  
   // Utility methods to create NonLValues.
   static NonLValue GetValue(ValueManager& ValMgr, uint64_t X, QualType T,
                             SourceLocation Loc = SourceLocation());
@@ -223,6 +226,8 @@
 public:
   void print(std::ostream& Out) const;
   
+  RValue Cast(ValueManager& ValMgr, Expr* CastExpr) const;
+
   // Equality operators.
   NonLValue EQ(ValueManager& ValMgr, const LValue& RHS) const;
   NonLValue NE(ValueManager& ValMgr, const LValue& RHS) const;
@@ -237,8 +242,7 @@
 //  Subclasses of NonLValue.
 //==------------------------------------------------------------------------==// 
 
-enum NonLValueKind { SymbolicNonLValueKind, ConcreteIntKind,
-NumNonLValueKind };
+enum NonLValueKind { SymbolicNonLValueKind, ConcreteIntKind, NumNonLValueKind };
 
 class SymbolicNonLValue : public NonLValue {
 public:
@@ -326,9 +330,9 @@
 //  Subclasses of LValue.
 //==------------------------------------------------------------------------==// 
 
-enum LValueKind { SymbolicLValueKind, LValueDeclKind,
-ConcreteIntLValueKind, NumLValueKind };
-
+enum LValueKind { SymbolicLValueKind, LValueDeclKind, ConcreteIntLValueKind,
+                  NumLValueKind };
+  
 class SymbolicLValue : public LValue {
 public:
   SymbolicLValue(unsigned SymID)