Possibly wrong verdict for benchmark c/busybox-1.22.0/wc-2.c

In benchmark c/busybox-1.22.0/wc-2.c the expected verdict for property unreach-call is said to be false according to busybox-1.22.0/wc-2.yml, but it should probably be true.

The reasoning is the following: In line 1132 the variable u becomes 0 and it gets increased by 1 with each loop iteration. The variable u never has it's address taken and there are no jumps to the body of this loop, so the only line where u is changed is 1148. When u increases from 4 to 5, the loop will break and reach_error() will never be called.

This is a snippet from the benchmark:

      u = (unsigned int)0;
      while((_Bool)1)
      {
        if(!((print_type & (unsigned int)(1 << u)) == 0u))
        {
          printf(s, pcounts[(signed long int)u]);
          s = " %9u";
        }

        if((signed long int)u < 5l)
          (void)0;

        else
          /* assertion (signed long int)u < 5l */
          {reach_error();}
        totals[(signed long int)u] = totals[(signed long int)u] + pcounts[(signed long int)u];
        u = u + 1u;
        if(!(u < 5u))
          break;

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