Skip to content

"ensures" clause of function template not supplied to Alt-Ergo

ID0002034: This issue was created automatically from Mantis Issue 2034. Further discussion may take place here.


Id Project Category View Due Date Updated
ID0002034 Frama-Clang Plug-in > clang public 2014-12-15 2015-02-15
Reporter Jochen Assigned To virgile Resolution open
Priority normal Severity minor Reproducibility always
Platform frama-c-Neon-20140301+dev-stance OS - OS Version xubuntu-cfe13.10
Product Version - Target Version - Fixed in Version -

Description :

Running "frama-c -wp 411.cpp" generates, from the "assert" in line 12, an unprovable obligation (for Alt-Ergo), viz: "goal main_assert: forall i : int. is_sint32(i) -> (1 = i)", see line 570 of file "main_assert_Alt-Ergo.mlw".

If the function "nop" is made a non-template function (by uncommenting the typedef in line 4, and commenting-out the "template" prefix in line 7), the obligation reads "goal main_assert: forall i : int. (2 = (2 * i)) -> is_sint32(i) -> (1 = i)", and is proven without problems by Alt-Ergo.

Attachments

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information