nir: Fix qsort comparator function

`pred` is a pointer, for sufficiently large numbers these
being cast to int were both > 0 regardless of the order
of `data1` and `data2`.

Fixes: 523a28d3fe ("nir: add an instruction set API")

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19539>
(cherry picked from commit c987a727a76eda1feada07e2eca6a5597dbddd93)
This commit is contained in:
Alex Brachet 2022-07-19 19:54:04 +00:00 committed by Dylan Baker
parent 0971b56a90
commit 9005854510
2 changed files with 2 additions and 2 deletions

View File

@ -679,7 +679,7 @@
"description": "nir: Fix qsort comparator function",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "523a28d3fe0dd371ae01b7353f263a6541480d89"
},

View File

@ -212,7 +212,7 @@ cmp_phi_src(const void *data1, const void *data2)
{
nir_phi_src *src1 = *(nir_phi_src **)data1;
nir_phi_src *src2 = *(nir_phi_src **)data2;
return src1->pred - src2->pred;
return src1->pred > src2->pred ? 1 : (src1->pred == src2->pred ? 0 : -1);
}
static uint32_t