Re: for loop variable fixes

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: for loop variable fixes
Date: 2026-07-11 14:38:47
Message-ID: 690a2546-e981-4b8b-b4e0-270542f51c9d@eisentraut.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 23.06.26 16:12, Tom Lane wrote:
> Peter Eisentraut <peter(at)eisentraut(dot)org> writes:
>> I have noticed that many for loops have loop variables whose type
>> doesn't match the upper-bound condition. Meaning, if you have
>> for (i = 0; i < foo; i++)
>> then the type of i should ordinarily be the same as the type of foo.
>
> +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.
>
>> As far as I can tell, none of of these are current bugs, but this is the
>> kind of thing that sets bad precedents and could lead to truncated
>> values or unintended overflows etc. in the future.
>
> Right. For resowner.c, I don't think the compared-to values can
> actually reach INT_MAX, but that doesn't make this good code.

This has been committed.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2026-07-11 14:52:05 Re: Update our timezone code to IANA tzcode2026b
Previous Message ZizhuanLiu X-MAN 2026-07-11 14:28:02 Re: support create index on virtual generated column.