From: Morten Welinder Date: Tue, 06 Dec 2005 21:19:21 GMT Subject: type_size_sort Message-ID: <118833cc0512061319l3726fdfbs8286e7b3f5ab0713@mail.gmail.com> 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.