If we are talking about the standard free
function then its prototype is
void free(void *ptr);
Therefore the cast is completely useless.
Now some speculation.
The author might have forgotten to include the stdlib.h
header declaring this prototype, so the compiler is assuming the return type of it as int
. Now during static analysis of this code the compiler was warning about the unused return value of what it thinks to be a non-void
function. Such a warnings are usually silenced by adding the cast to void
.