Для некоторых плавающих стандартных программ библиотеки стандарта 2D аргумента верификация может проигнорировать аргументы функции и принять, что функция возвращает все возможные значения в своей области значений.
В этом коде первый оператор assert
верен, и второй оператор assert
является ложным. Однако, потому что верификация принимает, что fmodf
и nextafterf
возвращают полнофункциональные значения, это полагает, что операторы assert
являются ложными, но только на части возможных путей к выполнению. Поэтому User assertion
начинает работу, операторы assert
являются оранжевыми.
#include <math.h> int main() { float val1=10.0, val2=3.0,res; res = fmodf(val1/val2); assert(res==1.0); res = nextafterf(val2,val1); assert(res<3.0); }