The ANSI C standard defines free as not returning a value;
therefore, the function prototype for free is declared with
a return type of void. However, since a free can fail, and
since previous versions of the C RTL have declared free
to return an int, the implementation of free does return 0 on
success and -1 on failure.