Compile warnings under -DMEMORY_CONTEXT_CHECKING and no assertions
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
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)