]> granicus.if.org Git - postgresql/commitdiff
Suppress compiler warnings in readfuncs.c.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 1 Jul 2012 02:27:49 +0000 (22:27 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 1 Jul 2012 02:27:49 +0000 (22:27 -0400)
Commit 7357558fc8866e3a449aa9473c419b593d67b5b6 introduced "(void) token;"
into the READ_TEMP_LOCALS() macro, to suppress complaints from gcc 4.6
when the value of token was not used anywhere in a particular node-read
function.  However, this just moved the warning around: inspection of
buildfarm results shows that some compilers are now complaining that token
is being read before it's set.  Revert the READ_TEMP_LOCALS() macro change
and instead put "(void) token;" into READ_NODE_FIELD(), which is the
principal culprit for cases where the warning might occur.  In principle we
might need the same in READ_BITMAPSET_FIELD() and/or READ_LOCATION_FIELD(),
but it seems unlikely that a node would consist only of such fields, so
I'll leave them alone for now.

src/backend/nodes/readfuncs.c

index 89ddf62d4dc3ca2b2b5b8d984f4db8aa4aae51e5..ff77cefd07be34dc0a3363b7b1c8db85a4691e38 100644 (file)
@@ -48,8 +48,7 @@
 /* And a few guys need only the pg_strtok support fields */
 #define READ_TEMP_LOCALS()     \
        char       *token;              \
-       int                     length;         \
-       (void) token                            /* possibly unused */
+       int                     length
 
 /* ... but most need both */
 #define READ_LOCALS(nodeTypeName)                      \
 /* Read a Node field */
 #define READ_NODE_FIELD(fldname) \
        token = pg_strtok(&length);             /* skip :fldname */ \
+       (void) token;                           /* in case not used elsewhere */ \
        local_node->fldname = nodeRead(NULL, 0)
 
 /* Read a bitmapset field */