gcc 4.6 complains about these because of the new option
-Wunused-but-set-variable which comes in with -Wall, so cast them to
void, which avoids the warning.
 
        errno = 0;
        val = strtol(token, &endptr, 10);
+       (void) val;             /* avoid compiler warning if unused */
        if (endptr != token + length || errno == ERANGE
 #ifdef HAVE_LONG_INT_64
        /* if long > 32 bits, check for overflow of int4 */
 
 /* And a few guys need only the pg_strtok support fields */
 #define READ_TEMP_LOCALS() \
    char       *token;      \
-   int         length
+   int         length;     \
+   (void) token /* possibly unused */
 
 /* ... but most need both */
 #define READ_LOCALS(nodeTypeName)          \