diff options
author | Martin Nowack <m.nowack@imperial.ac.uk> | 2018-09-12 14:58:11 +0000 |
---|---|---|
committer | Cristian Cadar <c.cadar@imperial.ac.uk> | 2020-02-19 12:05:22 +0000 |
commit | 9cfa329a77d3dfec4746ca307c6da1b3e904cbfa (patch) | |
tree | c9379a0ab0b5afdf740fae0a01c67bf76d061d86 /lib/Expr/ArrayExprVisitor.cpp | |
parent | 86ab439d589d0afb1b710ef58296d07a263092e3 (diff) | |
download | klee-9cfa329a77d3dfec4746ca307c6da1b3e904cbfa.tar.gz |
Use `ref<>` for UpdateNode
Remove additional reference counting as part of UpdateNodeList and UpdateNode. Simplifies code.
Diffstat (limited to 'lib/Expr/ArrayExprVisitor.cpp')
-rw-r--r-- | lib/Expr/ArrayExprVisitor.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/Expr/ArrayExprVisitor.cpp b/lib/Expr/ArrayExprVisitor.cpp index cada7867..986360f7 100644 --- a/lib/Expr/ArrayExprVisitor.cpp +++ b/lib/Expr/ArrayExprVisitor.cpp @@ -63,7 +63,7 @@ ConstantArrayExprVisitor::visitConcat(const ConcatExpr &ce) { // that is read at a symbolic index if (base->updates.root->isConstantArray() && !isa<ConstantExpr>(base->index)) { - for (const UpdateNode *un = base->updates.head; un; un = un->next) { + for (const auto *un = base->updates.head.get(); un; un = un->next.get()) { if (!isa<ConstantExpr>(un->index) || !isa<ConstantExpr>(un->value)) { incompatible = true; return Action::skipChildren(); @@ -97,7 +97,7 @@ ExprVisitor::Action ConstantArrayExprVisitor::visitRead(const ReadExpr &re) { // It is an interesting ReadExpr if it contains a concrete array // that is read at a symbolic index if (re.updates.root->isConstantArray() && !isa<ConstantExpr>(re.index)) { - for (const UpdateNode *un = re.updates.head; un; un = un->next) { + for (const auto *un = re.updates.head.get(); un; un = un->next.get()) { if (!isa<ConstantExpr>(un->index) || !isa<ConstantExpr>(un->value)) { incompatible = true; return Action::skipChildren(); @@ -132,7 +132,7 @@ ExprVisitor::Action ConstantArrayExprVisitor::visitRead(const ReadExpr &re) { ExprVisitor::Action IndexCompatibilityExprVisitor::visitRead(const ReadExpr &re) { - if (re.updates.head) { + if (!re.updates.head.isNull()) { compatible = false; return Action::skipChildren(); } else if (re.updates.root->isConstantArray() && @@ -198,13 +198,13 @@ ExprVisitor::Action ArrayReadExprVisitor::inspectRead(ref<Expr> hash, // pre(*): index is symbolic if (!isa<ConstantExpr>(re.index)) { if (readInfo.find(&re) == readInfo.end()) { - if (re.updates.root->isSymbolicArray() && !re.updates.head) { + if (re.updates.root->isSymbolicArray() && re.updates.head.isNull()) { return Action::doChildren(); } - if (re.updates.head) { + if (!re.updates.head.isNull()) { // Check preconditions on UpdateList nodes bool hasConcreteValues = false; - for (const UpdateNode *un = re.updates.head; un; un = un->next) { + for (const auto *un = re.updates.head.get(); un; un = un->next.get()) { // Symbolic case - \inv(update): index is concrete if (!isa<ConstantExpr>(un->index)) { incompatible = true; |