Обсуждение: Uninitialized-variable warnings in nbtinsert.c

Поиск
Список
Период
Сортировка

Uninitialized-variable warnings in nbtinsert.c

От
Tom Lane
Дата:
I scraped the buildfarm's compiler warnings today, as I do from
time to time, and I noticed that half a dozen animals that normally
don't report any uninitialized-variable warnings are complaining
about "curitup" in _bt_doinsert.  We traditionally ignore such warnings
from compilers that have demonstrated track records of being stupid
about it, but when a reasonably modern compiler shows such a warning
I think we ought to suppress it.  Right now the counts of
uninitialized-variable warnings in HEAD builds are

      1 calliphoridae
      1 chipmunk
      1 coypu
      1 culicidae
      2 curculio
      1 frogfish
     25 locust
     24 prairiedog

(curculio is additionally whining about "curitemid" in the same function.)
So you can see that this one issue has greatly expanded the set of
compilers that are unhappy.  I can see their point too -- it requires
some study to be sure we are assigning curitup before dereferencing it.

The simplest fix would be to just initialize curitup to NULL in its
declaration.  But perhaps there's a better way.

            regards, tom lane



Re: Uninitialized-variable warnings in nbtinsert.c

От
Peter Geoghegan
Дата:
On Sat, Jun 13, 2020 at 9:17 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I scraped the buildfarm's compiler warnings today, as I do from
> time to time, and I noticed that half a dozen animals that normally
> don't report any uninitialized-variable warnings are complaining
> about "curitup" in _bt_doinsert.

(Clearly you meant _bt_check_unique(), not _bt_doinsert().)

> The simplest fix would be to just initialize curitup to NULL in its
> declaration.  But perhaps there's a better way.

Thanks for bringing this to my attention. I'll push a commit that
initializes curitup shortly, targeting both the v13 branch and the
master branch.

-- 
Peter Geoghegan



Re: Uninitialized-variable warnings in nbtinsert.c

От
Tom Lane
Дата:
Peter Geoghegan <pg@bowt.ie> writes:
> On Sat, Jun 13, 2020 at 9:17 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> I scraped the buildfarm's compiler warnings today, as I do from
>> time to time, and I noticed that half a dozen animals that normally
>> don't report any uninitialized-variable warnings are complaining
>> about "curitup" in _bt_doinsert.

> (Clearly you meant _bt_check_unique(), not _bt_doinsert().)

Ah, right.  I was looking at calliphoridae's complaint when I wrote that:

In file included from
/home/andres/build/buildfarm-calliphoridae/HEAD/pgsql.build/../pgsql/src/backend/access/nbtree/nbtinsert.c:18:
/home/andres/build/buildfarm-calliphoridae/HEAD/pgsql.build/../pgsql/src/backend/access/nbtree/nbtinsert.c: In function
\xe2\x80\x98_bt_doinsert\xe2\x80\x99:

but it must have inlined some stuff first.  (A lot of the other
complainers are fingering inline functions in nbtree.h, which
is even less helpful.)

> Thanks for bringing this to my attention. I'll push a commit that
> initializes curitup shortly, targeting both the v13 branch and the
> master branch.

Thanks!

            regards, tom lane