Re: Compile warnings in dbcommands.c building with meson

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Aleksander Alekseev <aleksander(at)timescale(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Compile warnings in dbcommands.c building with meson
Date: 2024-01-11 17:00:42
Message-ID: CABUevExvCEu2imDJOrJJksiP0+nFK-a3xKh-AWKv0=L8xrze-w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Jan 10, 2024 at 1:16 PM Aleksander Alekseev
<aleksander(at)timescale(dot)com> wrote:
>
> Hi,
>
> > When building current head on debian bullseye I get this compile warning:
> >
> > In file included from ../src/backend/commands/dbcommands.c:20:
> > ../src/backend/commands/dbcommands.c: In function ‘createdb’:
> > ../src/include/postgres.h:104:9: warning: ‘src_hasloginevt’ may be
> > used uninitialized in this function [-Wmaybe-uninitialized]
> > 104 | return (Datum) (X ? 1 : 0);
> > | ^~~~~~~~~~~~~~~~~~~
> > ../src/backend/commands/dbcommands.c:683:8: note: ‘src_hasloginevt’
> > was declared here
> > 683 | bool src_hasloginevt;
> > | ^~~~~~~~~~~~~~~
> >
> >
> > I only get this when building with meson, not when building with
> > autotools. AFAICT, I have the same config:
> >
> > ./configure --enable-debug --enable-depend --with-python
> > --enable-cassert --with-openssl --enable-tap-tests --with-icu
> >
> > vs
> >
> > meson setup build -Ddebug=true -Dpython=true -Dcassert=true
> > -Dssl=openssl -Dtap-test=true -Dicu=enabled -Dnls=disabled
> >
> >
> > in both cases the compiler is:
> > gcc (Debian 10.2.1-6) 10.2.1 20210110
>
> Seems to me that the compiler is not smart enough to process:
>
> ```
> if (!get_db_info(dbtemplate, ShareLock,
> &src_dboid, &src_owner, &src_encoding,
> &src_istemplate, &src_allowconn, &src_hasloginevt,
> &src_frozenxid, &src_minmxid, &src_deftablespace,
> &src_collate, &src_ctype, &src_iculocale,
> &src_icurules, &src_locprovider,
> &src_collversion))
> ereport(ERROR, ...
> ```
>
> Should we just silence the warning like this - see attachment? I don't
> think createdb() is called that often to worry about slight
> performance change, if there is any.

Certainly looks that way, but I'm curious as to why nobody else has seen this..

That said, it appears to be gone in current master. Even though
nothing changed in that file. Must've been some transient effect,
that somehow didn't get blown away by doing a clean....

--
Magnus Hagander
Me: https://www.hagander.net/
Work: https://www.redpill-linpro.com/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2024-01-11 17:37:58 Re: Stack overflow issue
Previous Message Yura Sokolov 2024-01-11 16:58:50 Suggest two small improvements for PITR.