about summary refs log tree commit diff homepage
path: root/unittests/Expr
diff options
context:
space:
mode:
authorDan Liew <delcypher@gmail.com>2015-12-18 12:48:18 +0000
committerDan Liew <delcypher@gmail.com>2015-12-18 12:48:18 +0000
commit535be01be5ab33a0e7106e2d5511bba2797d1ed0 (patch)
tree026a4f1b16c1996755954f7824e0d10f8ed0ef8e /unittests/Expr
parent7e75fa79b2e76251c2cd417a7eae8a7620b014ae (diff)
parent53ff7a002a8213a5d5e778bef2a895998d9890e1 (diff)
downloadklee-535be01be5ab33a0e7106e2d5511bba2797d1ed0.tar.gz
Merge pull request #315 from delcypher/array_leak
Try to fix leaking Array objects detected by ASan.
Diffstat (limited to 'unittests/Expr')
-rw-r--r--unittests/Expr/ExprTest.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/unittests/Expr/ExprTest.cpp b/unittests/Expr/ExprTest.cpp
index d05eb7ec..25129d8e 100644
--- a/unittests/Expr/ExprTest.cpp
+++ b/unittests/Expr/ExprTest.cpp
@@ -11,6 +11,7 @@
 #include "gtest/gtest.h"
 
 #include "klee/Expr.h"
+#include "klee/util/ArrayCache.h"
 
 using namespace klee;
 
@@ -29,9 +30,10 @@ TEST(ExprTest, BasicConstruction) {
 }
 
 TEST(ExprTest, ConcatExtract) {
-  const Array *array = Array::CreateArray("arr0", 256);
+  ArrayCache ac;
+  const Array *array = ac.CreateArray("arr0", 256);
   ref<Expr> read8 = Expr::createTempRead(array, 8);
-  const Array *array2 = Array::CreateArray("arr1", 256);
+  const Array *array2 = ac.CreateArray("arr1", 256);
   ref<Expr> read8_2 = Expr::createTempRead(array2, 8);
   ref<Expr> c100 = getConstant(100, 8);
 
@@ -81,10 +83,11 @@ TEST(ExprTest, ConcatExtract) {
 }
 
 TEST(ExprTest, ExtractConcat) {
-  const Array *array = Array::CreateArray("arr2", 256);
+  ArrayCache ac;
+  const Array *array = ac.CreateArray("arr2", 256);
   ref<Expr> read64 = Expr::createTempRead(array, 64);
 
-  const Array *array2 = Array::CreateArray("arr3", 256);
+  const Array *array2 = ac.CreateArray("arr3", 256);
   ref<Expr> read8_2 = Expr::createTempRead(array2, 8);
   
   ref<Expr> extract1 = ExtractExpr::create(read64, 36, 4);