summaryrefslogtreecommitdiffstats
path: root/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java
diff options
context:
space:
mode:
authorElliott Baron <ebaron@fedoraproject.org>2009-10-12 20:37:13 -0400
committerElliott Baron <ebaron@fedoraproject.org>2009-10-12 20:37:13 -0400
commit306422deda74c5a120771f42e70422f77efcd640 (patch)
tree6ad062db01d908c314d8824b3afeb8567c4c68da /org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java
parent18360ea0c9cd1fce259ba7cf6824b48736334c4f (diff)
downloadcodan-306422deda74c5a120771f42e70422f77efcd640.tar.gz
codan-306422deda74c5a120771f42e70422f77efcd640.tar.xz
codan-306422deda74c5a120771f42e70422f77efcd640.zip
Transition for branching complete; execution state made of CNF clauses of variable assignments & branch conditions; errors reported.
* org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionState.java: Use Clause class. * org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionStateClause.java: New file. * org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/PropertyState.java: Take optional name arg. * org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java: New copy method. * org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/VariableAssignmentVisitor.java: New file. * org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java: See commit message. * org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/FunctionNameParser.java: Use IASTNode.
Diffstat (limited to 'org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java')
-rw-r--r--org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java b/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java
index 0907ce5..ad932ac 100644
--- a/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java
+++ b/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java
@@ -11,6 +11,7 @@
package org.eclipse.cdt.codan.extension;
import java.util.Collections;
+import java.util.HashSet;
import java.util.Set;
public class SymbolicState {
@@ -37,4 +38,24 @@ public class SymbolicState {
public void setPropertyStates(Set<PropertyState> ps) {
propertyStates = ps;
}
+
+ public SymbolicState copy() {
+ Set<PropertyState> ps = new HashSet<PropertyState>(propertyStates);
+ ExecutionState es = new ExecutionState();
+ for (ExecutionStateClause cl : executionState.getClauses()) {
+ es.addClause(cl);
+ }
+ return new SymbolicState(ps, es);
+ }
+
+ @Override
+ public String toString() {
+ StringBuffer buf = new StringBuffer();
+ buf.append("[");
+ buf.append(propertyStates);
+ buf.append(", ");
+ buf.append(executionState);
+ buf.append("]");
+ return buf.toString();
+ }
}