static int type_size_sort(const struct object_entry *a, const struct
object_entry *b)
{
...
return a < b ? -1 : (a > b);
}
This does not look valid. the standard says you must not depend on the
location:
[#4] When the same objects (consisting of size bytes,
irrespective of their current positions in the array) are
passed more than once to the comparison function, the
results shall be consistent with one another. That is, for
qsort they shall define a total ordering on the array, and
for bsearch the same object shall always compare the same
way with the key.
M.