Compile warnings under -DMEMORY_CONTEXT_CHECKING and no assertions

Started by Michael Paquier4 days ago2 messageshackers
Jump to latest
#1Michael Paquier
michael@paquier.xyz

Hi all,

When using -DMEMORY_CONTEXT_CHECKING, (also enforced by
-DUSE_VALGRIND), I am getting a couple of compiler warnings when
building without assertions:
aset.c: In function ‘AllocSetCheck’:
aset.c:1686:25: warning: variable ‘total_allocated’ set but not used
[-Wunused-but-set-variable=]
1686 | Size total_allocated = 0;
| ^~~~~~~~~~~~~~~
bump.c: In function ‘BumpCheck’:
bump.c:772:25: warning: variable ‘total_allocated’ set but not used
[-Wunused-but-set-variable=]
772 | Size total_allocated = 0;
| ^~~~~~~~~~~~~~~
generation.c: In function ‘GenerationCheck’:
generation.c:1137:25: warning: variable ‘total_allocated’ set but not
used [-Wunused-but-set-variable=]
1137 | Size total_allocated = 0;
| ^~~~~~~~~~~~~~~
slab.c: In function ‘SlabCheck’:
slab.c:1041:33: warning: variable ‘nblocks’ set but not used
[-Wunused-but-set-variable=]
1041 | int nblocks = 0;
| ^~~~~~~

All these ought to be marked with a PG_USED_FOR_ASSERTS_ONLY. Not
sure why nobody has seen that yet? I am using a gcc 16.1.1, nothing
fancy AFAIK.

Regards,
--
Michael

Attachments:

assert-only.patchtext/plain; charset=us-asciiDownload+4-4
#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Michael Paquier (#1)
Re: Compile warnings under -DMEMORY_CONTEXT_CHECKING and no assertions

On 2026-Jun-20, Michael Paquier wrote:

Hi all,

When using -DMEMORY_CONTEXT_CHECKING, (also enforced by
-DUSE_VALGRIND), I am getting a couple of compiler warnings when
building without assertions:

All these ought to be marked with a PG_USED_FOR_ASSERTS_ONLY. Not
sure why nobody has seen that yet? I am using a gcc 16.1.1, nothing
fancy AFAIK.

I saw this a few days ago too when testing for f50c329f538f, when
enabling MEMORY_CONTEXT_CHECKING independently (without USE_VALGRIND and
without USE_ASSERTIONS), and in that case, I even saw a compile failure
in bump.c. That requires a messier, uglier patch than what you have
here. I staged something but I thought it warranted more polish before
posting. I don't have it in this computer ATM sadly.

--
Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
"Industry suffers from the managerial dogma that for the sake of stability
and continuity, the company should be independent of the competence of
individual employees." (E. Dijkstra)