[llvm-commits] CVS: llvm-test/MultiSource/Applications/hbd/exp.cpp

Chris Lattner lattner at cs.uiuc.edu
Fri May 13 11:14:31 PDT 2005



Changes in directory llvm-test/MultiSource/Applications/hbd:

exp.cpp updated: 1.2 -> 1.3
---
Log message:

Fix some mismatched free/delete/delete[]'s.


---
Diffs of the changes:  (+14 -14)

 exp.cpp |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)


Index: llvm-test/MultiSource/Applications/hbd/exp.cpp
diff -u llvm-test/MultiSource/Applications/hbd/exp.cpp:1.2 llvm-test/MultiSource/Applications/hbd/exp.cpp:1.3
--- llvm-test/MultiSource/Applications/hbd/exp.cpp:1.2	Fri May 13 13:10:44 2005
+++ llvm-test/MultiSource/Applications/hbd/exp.cpp	Fri May 13 13:14:14 2005
@@ -97,7 +97,7 @@
         killexp(exp2);
         o = new char[strlen(e2) + 3];
         sprintf(o, "(%s)", e2);
-        delete e2;
+        delete [] e2;
       } else {
         o = new char[strlen(type2str[e->type]) + 3];
         sprintf(o, "(%s)", type2str[e->type]);
@@ -110,14 +110,14 @@
       sprintf(s, "%s(%s)", o, e1);
     else
       sprintf(s, "%s%s", o, e1);
-    killexp(exp1); delete e1; delete o;
+    killexp(exp1); delete [] e1; free(o);
     return s;
   case POSTUNARY:
     exp1->numrefs += numrefs-1;
     e1 = exp1->toString(0); o = op2str[e->op];
     s = new char[5 + strlen(o) + strlen(e1)];
     sprintf(s, (op_prec[exp1->e->op] < (op_prec[e->op] + 0))?"(%s)%s":"%s%s", e1, o);
-    killexp(exp1); delete e1;
+    killexp(exp1); delete [] e1;
     return s;
   case BINARY:
     exp1->numrefs += numrefs-1;
@@ -129,8 +129,8 @@
       (op_prec[exp1->e->op] < (op_prec[e->op] + 0))?"(%s)":"%s",
       o, (op_prec[exp2->e->op] < (op_prec[e->op] + 0))?"(%s)":"%s");
     s = new char[strlen(t1) + strlen(e1) + strlen(e2) - 3];
-    sprintf(s, t1, e1, e2); delete t1;
-    killexp(exp1); killexp(exp2); delete e1; delete e2;
+    sprintf(s, t1, e1, e2); delete [] t1;
+    killexp(exp1); killexp(exp2); delete [] e1; delete [] e2;
     return s;
   case TERNARY:
     exp1->numrefs += numrefs-1; exp2->numrefs += numrefs-1; exp3->numrefs += numrefs-1;
@@ -142,38 +142,38 @@
       o, (op_prec[exp2->e->op] < (op_prec[e->op] + 0))?"(%s)":"%s",
       o2, (op_prec[exp3->e->op] < (op_prec[e->op] + 0))?"(%s)":"%s");
     s = new char[strlen(t1) + strlen(e1) + strlen(e2) + strlen(e3) - 5];
-    sprintf(s, t1, e1, e2, e3); delete t1;
+    sprintf(s, t1, e1, e2, e3); delete [] t1;
     killexp(exp1); killexp(exp2); killexp(exp3);
-    delete e1; delete e2; delete e3;
+    delete [] e1; delete [] e2; delete [] e3;
     return s;
   case FUNCTIONCALL:
     t1 = new char[256];
     exp1->numrefs += numrefs-1;
     e1 = exp1->toString(0); sizestr = strlen(e1) + 3;
     sprintf(t1, "%s(", e1);
-    killexp(exp1); delete e1;
+    killexp(exp1); delete [] e1;
     i = numexps;
     if (i) {
       while (--i) {
         explist[i]->numrefs += numrefs-1;
         e1 = explist[i]->toString(0); strcat(t1, e1); sizestr += strlen(e1) + 2;
-        killexp(explist[i]); delete e1; strcat(t1, ", ");
+        killexp(explist[i]); delete [] e1; strcat(t1, ", ");
       }
       explist[0]->numrefs += numrefs-1;
       e1 = explist[0]->toString(0); strcat(t1, e1); sizestr += strlen(e1);
-      killexp(explist[0]); delete e1;
+      killexp(explist[0]); delete [] e1;
     }
     strcat(t1,")");
     s = new char[sizestr];
     strcpy(s, t1);
-    delete t1;
+    delete [] t1;
     return s;
   case ARRAYACCESS:
     exp1->numrefs += numrefs-1; exp2->numrefs += numrefs-1;
     e1 = exp1->toString(0); e2 = exp2->toString(0);
     s = new char[strlen(e1) + strlen(e2) + 3];
     sprintf(s, "%s[%s]", e1, e2);
-    killexp(exp1); killexp(exp2); delete e1; delete e2;
+    killexp(exp1); killexp(exp2); delete [] e1; delete [] e2;
     return s;
   case BRANCH:
 //    if ((unsigned)e->op > minpc) {
@@ -200,14 +200,14 @@
 //      s = new char[strlen(e1) + 21];
 //      sprintf(s, "if (%s) goto label%d", e1, branch_pc);
 //    }
-    killexp(exp1); delete e1;
+    killexp(exp1); delete [] e1;
     return s;
   case SWITCH:
     exp1->numrefs += numrefs-1;
     e1 = exp1->toString(0);
     s = new char[strlen(e1) + 29];
     sprintf(s, "switch (%s) default: label%d", e1, default_pc);
-    killexp(exp1); delete e1;
+    killexp(exp1); delete [] e1;
     return s;
   default:
     fprintf(stderr, "Error converting expressions to strings. %d\n", e->et);






More information about the llvm-commits mailing list