printtup.c: error: ‘VARSIZE_ANY’ makes pointer from integer when USE_VALGRIND is defined

Started by Dmitry Mityugov8 months ago2 messageshackers
Jump to latest
#1Dmitry Mityugov
d.mityugov@postgrespro.ru

When USE_VALGRIND is defined, compilation started to fail with this
error message (-Werror is used; without it, a warning is observed
instead):

printtup.c:353:95: error: passing argument 1 of ‘VARSIZE_ANY’ makes
pointer from integer without a cast [-Wint-conversion]

Not sure if this is the best fix, but it silences the warning, and is
based on other recently introduced fixes:

diff --git a/src/backend/access/common/printtup.c 
b/src/backend/access/common/printtup.c
index 830a3d883aa..6d3045e2332 100644
--- a/src/backend/access/common/printtup.c
+++ b/src/backend/access/common/printtup.c
@@ -350,7 +350,7 @@ printtup(TupleTableSlot *slot, DestReceiver *self)
          */
         if (thisState->typisvarlena)
             VALGRIND_CHECK_MEM_IS_DEFINED(DatumGetPointer(attr),
-                                         VARSIZE_ANY(attr));
+                                         
VARSIZE_ANY(DatumGetPointer(attr)));

if (thisState->format == 0)
{

I'm attaching a patch.

Best regards,
Dmitry

Attachments:

0001-Use-DatumGetPointer-in-VALGRIND_CHECK_MEM_IS_DEFINED.patchtext/x-diff; name=0001-Use-DatumGetPointer-in-VALGRIND_CHECK_MEM_IS_DEFINED.patchDownload+1-2
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dmitry Mityugov (#1)
Re: printtup.c: error: ‘VARSIZE_ANY’ makes pointer from integer when USE_VALGRIND is defined

Dmitry Mityugov <d.mityugov@postgrespro.ru> writes:

When USE_VALGRIND is defined, compilation started to fail with this
error message (-Werror is used; without it, a warning is observed
instead):
printtup.c:353:95: error: passing argument 1 of ‘VARSIZE_ANY’ makes
pointer from integer without a cast [-Wint-conversion]

Thanks for the report, but I already fixed this a couple hours ago.

regards, tom lane