-
Notifications
You must be signed in to change notification settings - Fork 280
Closed
Description
While reviewing #6399 I wondered what is documented about it.
cbmc/src/util/simplify_utils.cpp
Line 51 in ce2680b
/// produce canonical ordering for associative and commutative binary operators |
suggests that ID_and
it is associative and commutative. However the handling of logical operations in goto_check
is asymmetric:
cbmc/src/analyses/goto_check.cpp
Line 111 in ce2680b
/// Check a logical operation: check each operand in separation while |
cbmc/src/analyses/goto_check.cpp
Line 1607 in ce2680b
void goto_checkt::check_rec_logical_op(const exprt &expr, guardt &guard) |
These were refactoring made in https://github.com/diffblue/cbmc/pull/4611/files .
This seems a bit risky as a simplify in a pass before goto_check
(for example in goto-analyzer --simplify
) can alter / break the conditions that are generated.
Metadata
Metadata
Assignees
Labels
No labels