Обсуждение: Uninitialized-variable warnings in nbtinsert.c
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
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
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