On 23.06.26 16:12, Tom Lane wrote:
+1 for improving this --- I was annoyed about it just yesterday
with respect to resowner.c. It looks to me like just about every
single instance of "for (int ..." in that file is wrong because
what's being compared to is unsigned. I see that your patch gets
a couple of those places, but only a couple, which makes me wonder
what -Wsign-compare is checking exactly.
I see several instances like
for (int idx = 0; idx < owner->narr; idx++)
where narr is of type uint8. Since uint8 is of lower rank than int, it
gets converted to int for the comparison operator, and then there is no
more type mismatch. So that would appear to be why the warning doesn't
trigger for these.