| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
|
|
|
|
| |
Cmd classes but for some reason it wasn't implemented for TransferCmds
which seems a little inconsistent.
|
|
|
|
|
| |
Previously after duplication of an entire program CallCmd.Proc would
point to procedures in the old program.
|
|
|
|
|
|
| |
Absy metadata. This feature is very new so it is unlikely any out
of tree code (apart from my own) is using it so this change shouldn't
be disruptive.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a cloned Implementation.Proc would not be the same Procedure in
the TopLevelDeclarations.
The reason for this is that Procedure would be cloned twice, once
when visiting it from the TopLevelDeclarations and once when visiting
each Implementation of that Procedure's Implementation.Proc.
To fix this a Procedure is only duplicated once by caching it based
on reference value (this assumes the original Program has Procedure
and Implementation.Proc correctly resolved). This also assumes that
Procedure.Equals() and Procedure.GetHashCode() have not been overidden.
|
|
|
|
|
| |
Instead of the Duplicator maintaining state the VisitImplementation()
method computes the mapping between old and new Blocks.
|
|
|
|
|
|
|
|
|
|
|
| |
where not updated during duplication to point to duplicated BasicBlocks.
Because the lists weren't being duplicated and resolved to the new basic blocks
a duplicated Implementation pointed into Blocks in the old implementation via
GotoCmds. This is bad and is not the expected behaviour.
Now if VisitImplementation() is called during duplication GotoCmds will be
resolved to point to duplicated Blocks.
|
| |
|
| |
|
|\ |
|
| | |
|
|/
|
|
| |
converted tail recursion into a loop
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| | |
Patch by Jeroen Ketema
|
| |
| |
| |
| | |
Patch by Jeroen Ketema
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Model parser for SMT models is broken beyond repair
and this by-passes this. The code could be moved to the
model parser, but that's a refactoring for another day.
Also, the existing version already had multiple reparses
going on and this at least removes one of those.
Patch by Jeroen Ketema.
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
tests. These are really broken because Boogie just seems to hang
when they are executed. So they aren't executed right now.
I'm not sure what to do with the other .bpl files. ``schaef``
left them lying around.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Only set produce-unsat-cores in the case /explainHoudini is passed. This
allows contract inference to be used with solvers that do no support unsat
cores, as long as no explanation of the Houdini run is required.
|
| |
|
| |
|
|
|
|
| |
condition is assumed while inlining.
|
| |
|
| |
|
|
|
|
| |
changed the attribute on callee ensures to "HoudiniAssume" rather than "assume"
|