pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andrew Dunstan <andrew@dunslane.net>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Fix -Wcast-function-type warnings
Date: Thu, 07 Nov 2024 23:19:39 +0000
Message-ID: <E1t9Bms-000hQW-Os@gemulon.postgresql.org> (raw)

Fix -Wcast-function-type warnings

Three groups of issues needed to be addressed:

load_external_function() and related functions returned PGFunction,
even though not necessarily all callers are looking for a function of
type PGFunction.  Since these functions are really just wrappers
around dlsym(), change to return void * just like dlsym().

In dynahash.c, we are using strlcpy() where a function with a
signature like memcpy() is expected.  This should be safe, as the new
comment there explains, but the cast needs to be augmented to avoid
the warning.

In PL/Python, methods all need to be cast to PyCFunction, per Python
API, but this now runs afoul of these warnings.  (This issue also
exists in core CPython.)

To fix the second and third case, we add a new type pg_funcptr_t that
is defined specifically so that gcc accepts it as a special function
pointer that can be cast to any other function pointer without the
warning.

Also add -Wcast-function-type to the standard warning flags, subject
to configure check.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/1e97628e-6447-b4fd-e230-d109cec2d584%402ndquadrant.com
(cherry picked from commit de8feb1f3a23465b5737e8a8c160e8ca62f61339)

Author: Peter Eisentraut <peter@eisentraut.org>
Author: Alexandra Wang <alexandra.wang.oss@gmail.com>

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/a5abacecb46358a7b771841e2ee0acbb1c353b79
Author: Peter Eisentraut <peter@eisentraut.org>

Modified Files
--------------
configure                         | 91 +++++++++++++++++++++++++++++++++++++++
configure.in                      |  2 +
src/backend/utils/fmgr/dfmgr.c    | 14 +++---
src/backend/utils/hash/dynahash.c | 11 ++++-
src/include/c.h                   |  7 +++
src/include/fmgr.h                |  6 +--
src/pl/plpython/plpy_plpymodule.c | 14 +++---
7 files changed, 127 insertions(+), 18 deletions(-)



view thread (2+ messages)

Message-ID: <E1t9Bms-000hQW-Os@gemulon.postgresql.org>
Permalink:  ../E1t9Bms-000hQW-Os@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1t9Bms-000hQW-Os@gemulon.postgresql.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: andrew@dunslane.net, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Fix -Wcast-function-type warnings
  In-Reply-To: <E1t9Bms-000hQW-Os@gemulon.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox