LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

Нет, там это как раз можно. Вот например такое, тут просто проветяем, что функция всегда возвращает 1 (т.е. каст из числа из uint64_t в uint8_t равен остатку от деления на 256)

/*@ ensures \result == 1;
*/
uint8_t test_uint8_cast_mod256_eq (uint64_t a)
{
  return ((a)%256 == (uint8_t)(a));
}
http://frama-c.com/wp.html http://www.fokus.fraunhofer.de/download/acsl_by_example или вот еще. Короче, поставь и проверь

Исправление SZT, :

Нет, там это как раз можно. Вот например такое, тут просто проветяем, что функция всегда возвращает 1 (т.е. каст из числа из uint64_t в uint8_t равен остатку от деления на 256)

/*@ ensures \result == 1;
*/
uint8_t test_uint8_cast_mod256_eq (uint64_t a)
{
  return ((a)%256 == (uint8_t)(a));
}
http://frama-c.com/wp.html https://scrivito-public-cdn.s3-eu-west-1.amazonaws.com/fokus/c8efcdaac330d718... или вот еще. Короче, поставь и проверь

Исходная версия SZT, :

Нет, там это как раз можно. Вот например такое, тут просто проветяем, что функция всегда возвращает 1 (т.е. каст из числа из uint64_t в uint8_t равен остатку от деления на 256)

/*@ ensures \result == 1;
*/
uint8_t test_uint8_cast_mod256_eq (uint64_t a)
{
  return ((a)%256 == (uint8_t)(a));
}
http://frama-c.com/wp.html или вот еще. Короче, поставь и проверь