[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/rte/mul.c (with preprocessing)
[rte] annotating function main
tests/rte/mul.c:22:[rte] warning: signed overflow assert broken: 0xffff*0xffff ≤ 2147483647
tests/rte/mul.c:25:[rte] warning: signed overflow assert broken: 0xffff*0x8001 ≤ 2147483647
/* Generated by Frama-C */
int main(void)
{
  int __retres;
  int x;
  int y;
  int z;
  unsigned int ux;
  unsigned int uy;
  unsigned int uz;
  x = 0;
  y = 0;
  z = 0;
  ux = (unsigned int)0;
  uy = (unsigned int)0;
  uz = (unsigned int)0;
  uz = ux * uy;
  /*@ assert rte: signed_overflow: -2147483648 ≤ x*y; */
  /*@ assert rte: signed_overflow: x*y ≤ 2147483647; */
  z = x * y;
  /*@ assert rte: signed_overflow: -2147483648 ≤ 0x1000*y; */
  /*@ assert rte: signed_overflow: 0x1000*y ≤ 2147483647; */
  z = 0x1000 * y;
  /*@ assert rte: signed_overflow: -2147483648 ≤ x*0x1000; */
  /*@ assert rte: signed_overflow: x*0x1000 ≤ 2147483647; */
  z = x * 0x1000;
  /*@ assert rte: signed_overflow: -2147483648 ≤ (int)(-0x1000)*y; */
  /*@ assert rte: signed_overflow: (int)(-0x1000)*y ≤ 2147483647; */
  z = -0x1000 * y;
  /*@ assert rte: signed_overflow: -2147483648 ≤ x*(int)(-0x1000); */
  /*@ assert rte: signed_overflow: x*(int)(-0x1000) ≤ 2147483647; */
  z = x * -0x1000;
  /*@ assert rte: signed_overflow: -2147483648 ≤ (int)(-1)*y; */
  z = -1 * y;
  z = x * 1;
  z = 1 * y;
  /*@ assert rte: signed_downcast: (unsigned int)x*0xffffffff ≤ 2147483647;
  */
  z = (int)((unsigned int)x * 0xffffffff);
  /*@ assert rte: signed_overflow: 0xffff*0xffff ≤ 2147483647; */
  z = 0xffff * 0xffff;
  z = 0xffff * 0x7fff;
  z = 0xffff * 0x8000;
  /*@ assert rte: signed_overflow: 0xffff*0x8001 ≤ 2147483647; */
  z = 0xffff * 0x8001;
  __retres = 0;
  return __retres;
}


