]> granicus.if.org Git - clang/commitdiff
Implemented "print" method for ValueState.
authorTed Kremenek <kremenek@apple.com>
Tue, 4 Mar 2008 18:30:35 +0000 (18:30 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 4 Mar 2008 18:30:35 +0000 (18:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47894 91177308-0d34-0410-b5e6-96231b3b80d8

Analysis/ValueState.cpp
include/clang/Analysis/PathSensitive/ValueState.h

index dac921103027cfa70896379cbb50aa65b31393b4..388dba67dae2e0ca1d3dbbd3eaac3f6727e950d7 100644 (file)
@@ -486,16 +486,22 @@ ValueState* ValueStateManager::getPersistentState(ValueState& State) {
 }
 
 void ValueState::printDOT(std::ostream& Out) const {
+  print(Out, "\\l", "\\|");
+}
+
+void ValueState::print(std::ostream& Out,
+                       const char* nl,
+                       const char* sep) const {
 
   // Print Variable Bindings
-  Out << "Variables:\\l";
+  Out << "Variables:" << nl;
   
   bool isFirst = true;
   
   for (vb_iterator I = vb_begin(), E = vb_end(); I != E; ++I) {        
     
     if (isFirst) isFirst = false;
-    else Out << "\\l";
+    else Out << nl;
     
     Out << ' ' << I.getKey()->getName() << " : ";
     I.getData().print(Out);
@@ -508,10 +514,10 @@ void ValueState::printDOT(std::ostream& Out) const {
   for (seb_iterator I = seb_begin(), E = seb_end(); I != E; ++I) {        
     
     if (isFirst) {
-      Out << "\\l\\lSub-Expressions:\\l";
+      Out << nl << nl << "Sub-Expressions:" << nl;
       isFirst = false;
     }
-    else { Out << "\\l"; }
+    else { Out << nl; }
     
     Out << " (" << (void*) I.getKey() << ") ";
     I.getKey()->printPretty(Out);
@@ -526,10 +532,10 @@ void ValueState::printDOT(std::ostream& Out) const {
   for (beb_iterator I = beb_begin(), E = beb_end(); I != E; ++I) {      
 
     if (isFirst) {
-      Out << "\\l\\lBlock-level Expressions:\\l";
+      Out << nl << nl << "Block-level Expressions:" << nl;
       isFirst = false;
     }
-    else { Out << "\\l"; }
+    else { Out << nl; }
     
     Out << " (" << (void*) I.getKey() << ") ";
     I.getKey()->printPretty(Out);
@@ -541,12 +547,12 @@ void ValueState::printDOT(std::ostream& Out) const {
   
   if (!ConstEq.isEmpty()) {
   
-    Out << "\\l\\|'==' constraints:";
+    Out << nl << sep << "'==' constraints:";
   
     for (ConstEqTy::iterator I = ConstEq.begin(),
                              E = ConstEq.end();   I!=E; ++I) {
       
-      Out << "\\l $" << I.getKey()
+      Out << nl << " $" << I.getKey()
           << " : "   << I.getData()->toString();
     }
   }
@@ -555,12 +561,12 @@ void ValueState::printDOT(std::ostream& Out) const {
     
   if (!ConstNotEq.isEmpty()) {
   
-    Out << "\\l\\|'!=' constraints:";
+    Out << nl << sep << "'!=' constraints:";
   
     for (ConstNotEqTy::iterator I  = ConstNotEq.begin(),
                                 EI = ConstNotEq.end();   I != EI; ++I) {
     
-      Out << "\\l $" << I.getKey() << " : ";
+      Out << nl << " $" << I.getKey() << " : ";
       isFirst = true;
     
       IntSetTy::iterator J = I.getData().begin(), EJ = I.getData().end();      
index fd0b1ef1b0c23948ef0be6e7e330a2a99598aa83..73c4706db172ac57b2948d10330ab13d662eff78 100644 (file)
@@ -133,10 +133,13 @@ public:
   typedef ConstEqTy::iterator ce_iterator;
   ce_iterator ce_begin() const { return ConstEq.begin(); }
   ce_iterator ce_end() const { return ConstEq.end(); }
+
+  void print(std::ostream& Out,
+             const char* nl = "\n",
+             const char* sep = "") const;
   
-  void printDOT(std::ostream& Out) const;
-  void print(std::ostream& Out) const;
   void printStdErr() const { print(*llvm::cerr); }  
+  void printDOT(std::ostream& Out) const;
 };  
   
 template<> struct GRTrait<ValueState*> {