BTW: I do stand by my original note and the warning seems reasonable. I'm curious that icc did not catch it. I wish I had a copy of Gimpel's pclint() and see what they say. As I said in my original note: while (line_skip_seperator (l)); { dimensions++; } compiles to/ becomes equiv too: while (line_skip_seperator (l)) / null statement /; dimensions++; not: while (line_skip_seperator (l)) { dimensions++; } If the code was intended to work as I mentioned, then you might consider getting rid of the redundant...
Nice catch -- always possible -- C compiler is clang Apple Version 11 ( a.k.a. LLVM see below). You might want to add a note, that it might not compiler with a clang compiler front-end. Using: sh-3.2$ make clean rm -f .o bwbasic core sh-3.2$ CC=gcc-10 sh-3.2$ export CC sh-3.2$ ./configure checking how to run the C preprocessor checking for install checking for size_t in sys/types.h checking for string.h checking for stdlib.h checking for unistd.h checking for raise creating config.status creating...
I ran into this accidently. I know its old code, but I think the compiler is on to something. If the code is as intended, then it probably needs to be reformated to be a tad more explicit as per the warning, but I'm thinking there might be something that was missed for many years.
Possibly silent but latent bug in bwb_var.c caught with a more modern compiler.