Skip to content

Conversation

@FrNecas
Copy link

@FrNecas FrNecas commented Oct 23, 2021

This PR introduces 3 more SV-comp related fixes:

  • fix for gcc preprocessing which caused compilation error on some occassions (fixes floats/* tests)
  • fix for unwinder assertion hoisting with multiple loops (fixes loops/* incorrect true results from past years)
    • not sure if this doesn't break anything, regression tests are passing, I am currently running loops benchmarks where I'd expect the most trouble (will let you know when these finish). Though I guess to be 100% confident, we will have to submit and compare with the past pre-runs
  • fix for overflow shift left assertion hoisting hack, ID_overflow_shl is no longer produced, check if it contains overflowing shift left manually (fixes incorrect true bitvector overflow tests).

I am not sure what's the best way to merge it, maybe rebase through Github rather than merging to avoid merge commit? Or simply cherry-pick my commits to your branch...

viktormalik and others added 6 commits October 15, 2021 14:06
CBMC has changed the representation of numerical values in
constant_expr (at least for array sizes) - instead of base 2, it now
uses base 16.

We have to fix this in our assertion that limits the size of arrays in
competition mode due to solver unsoundness that appears for arrays of
size >=50000.
For now, we disable memcpy as it is implemented via a CBMC built-in
operation that we do not support in 2LS, yet.
If there are multiple loops in the program, the assertions after the
loops are reachable only if both of the loops exit their execution.
Previously, exiting the first loop was sufficient due to the disjunction
making the analysis unsound (producing incorrect true results in some
cases, including SV-comp benchmarks).

Signed-off-by: František Nečas <[email protected]>
The format of the guard changed making the hack not work and causing
incorrect true results in bitvector category in SV-comp due to the
hoisted assertion being added. Fix this hack.

Signed-off-by: František Nečas <[email protected]>
@FrNecas
Copy link
Author

FrNecas commented Oct 24, 2021

The submodule will also have to be updated, see the last commit in peterschrammel/cbmc#27

@viktormalik
Copy link
Owner

Merged into diffblue#157 manually, closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants