Skip to content

Float constant propagation is unsound #350

Open
@peterschrammel

Description

@peterschrammel

It does not seem to take into account the rounding mode.
Patch #349 turns it off until this gets fixed.

The problem can be reproduced as follows on this benchmark
https://raw.githubusercontent.com/sosy-lab/sv-benchmarks/master/c/floats-cbmc-regression/float-rounding1_true-unreach-call.i

goto-cc/goto-cc sv-benchmarks/c/floats-cbmc-regression/float-rounding1_true-unreach-call.i -o test.o
goto-instrument/goto-instrument test.o test.o-cp --constant-propagator --inline --add-library
cbmc/cbmc test.o-cp

** Results:
[roundingTest.assertion.1] : SUCCESS
[roundingTest.assertion.2] : FAILURE
[roundingTest.assertion.3] : SUCCESS
[roundingTest.assertion.4] : SUCCESS

vs (after turning it off)

** Results:
[roundingTest.assertion.1] : SUCCESS
[roundingTest.assertion.2] : SUCCESS
[roundingTest.assertion.3] : SUCCESS
[roundingTest.assertion.4] : SUCCESS

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions