Add pg_nodiscard decorations to Bitmapset functions - Mailing list pgsql-hackers

From Jan Nidzwetzki
Subject Add pg_nodiscard decorations to Bitmapset functions
Date
Msg-id 2020a70e-76f3-4661-afa6-82c2639251c2@planetscale.com
Whole thread
List pgsql-hackers
Hi Hackers,

The functions in bitmapset.h that return a Bitmapset * either build a
new set or recycle their input, so ignoring the return value is always a
bug.

Commit c617aea6acd introduced the macro pg_nodiscard, which generates a
compiler warning when the result of a function call is ignored. The List
functions in pg_list.h have the same requirement, and commit a378ba49a5c
added pg_nodiscard to most of them.

However, bitmapset.h was never adjusted. The attached patch adds
pg_nodiscard to all functions there that return a Bitmapset *.

This patch does not make REALLOCATE_BITMAPSETS redundant.
REALLOCATE_BITMAPSETS reallocates the set on every modification, so a
stale pointer to the old set is likely to be noticed. However, only at
runtime and only in builds that enable it. pg_nodiscard catches the
simpler case of dropping the return value entirely at compile time.

Best regards
   Jan
-- 
Jan Nidzwetzki
PlanetScale Postgres Core Team

Attachment

pgsql-hackers by date:

Previous
From: Dmitry Dolgov
Date:
Subject: Re: Add ssl_(supported|shared)_groups to sslinfo
Next
From: Dmitry Dolgov
Date:
Subject: Re: Add ssl_(supported|shared)_groups to sslinfo