Clean up compiler warnings from unused variables with asserts disabled
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 21 Mar 2012 21:30:14 +0000 (23:30 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 21 Mar 2012 21:33:10 +0000 (23:33 +0200)
For those variables only used when asserts are enabled, use a new
macro PG_USED_FOR_ASSERTS_ONLY, which expands to
__attribute__((unused)) when asserts are not enabled.

15 files changed:
src/backend/access/hash/hashovfl.c
src/backend/executor/execCurrent.c
src/backend/executor/nodeMaterial.c
src/backend/executor/nodeSetOp.c
src/backend/executor/nodeWorktablescan.c
src/backend/libpq/be-fsstubs.c
src/backend/libpq/pqcomm.c
src/backend/optimizer/path/costsize.c
src/backend/parser/analyze.c
src/backend/storage/file/fd.c
src/backend/storage/lmgr/predicate.c
src/backend/storage/lmgr/proc.c
src/backend/utils/adt/selfuncs.c
src/bin/psql/psqlscan.l
src/include/c.h

index 130c29616cd0d3c946e8a72e8e55086bea51d969..96dabdb48ae689d3fc551cb6a3d854f3c5e7e8a1 100644 (file)
@@ -391,7 +391,7 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf,
    uint32      ovflbitno;
    int32       bitmappage,
                bitmapbit;
-   Bucket      bucket;
+   Bucket      bucket PG_USED_FOR_ASSERTS_ONLY;
 
    /* Get information from the doomed page */
    _hash_checkpage(rel, ovflbuf, LH_OVERFLOW_PAGE);
index b07161fba433e97e5f97dbe9de388a6fee8dbef0..03790bbe066fb26c8107ef64bcfbf05b13de5690 100644 (file)
@@ -151,7 +151,7 @@ execCurrentOf(CurrentOfExpr *cexpr,
    {
        ScanState  *scanstate;
        bool        lisnull;
-       Oid         tuple_tableoid;
+       Oid         tuple_tableoid PG_USED_FOR_ASSERTS_ONLY;
        ItemPointer tuple_tid;
 
        /*
index b320b545aa1e4eb11854f26ffdda65d10a5c4e94..06137c6ba80bd0e8235bc352f8df22d60c8be60f 100644 (file)
@@ -66,7 +66,7 @@ ExecMaterial(MaterialState *node)
             * Allocate a second read pointer to serve as the mark. We know it
             * must have index 1, so needn't store that.
             */
-           int         ptrno;
+           int         ptrno PG_USED_FOR_ASSERTS_ONLY;
 
            ptrno = tuplestore_alloc_read_pointer(tuplestorestate,
                                                  node->eflags);
index 7fa5730b10b84996b0d0fc06419f6e1d79cf4c95..85590445ccc9faf5231562a152fed5d35843da39 100644 (file)
@@ -344,7 +344,7 @@ setop_fill_hash_table(SetOpState *setopstate)
    SetOp      *node = (SetOp *) setopstate->ps.plan;
    PlanState  *outerPlan;
    int         firstFlag;
-   bool        in_first_rel;
+   bool        in_first_rel PG_USED_FOR_ASSERTS_ONLY;
 
    /*
     * get state info from node
index e2f3dd4d2e23dfe992dd6b3e837c148de586744a..9ada6809f9334d4094bc19758aaf8bde5558983d 100644 (file)
@@ -30,7 +30,6 @@ static TupleTableSlot *
 WorkTableScanNext(WorkTableScanState *node)
 {
    TupleTableSlot *slot;
-   EState     *estate;
    Tuplestorestate *tuplestorestate;
 
    /*
@@ -48,8 +47,7 @@ WorkTableScanNext(WorkTableScanState *node)
     * worktable.  Therefore, we don't need a private read pointer for the
     * tuplestore, nor do we need to tell tuplestore_gettupleslot to copy.
     */
-   estate = node->ss.ps.state;
-   Assert(ScanDirectionIsForward(estate->es_direction));
+   Assert(ScanDirectionIsForward(node->ss.ps.state->es_direction));
 
    tuplestorestate = node->rustate->working_table;
 
index b864c868f2bdbf06a48ed44b859fdc3fdb5031d1..6f7e474f675485766c7ffca7312d0f1e0adbb83d 100644 (file)
@@ -378,7 +378,7 @@ lo_import_internal(text *filename, Oid lobjOid)
 {
    File        fd;
    int         nbytes,
-               tmp;
+               tmp PG_USED_FOR_ASSERTS_ONLY;
    char        buf[BUFSIZE];
    char        fnamebuf[MAXPGPATH];
    LargeObjectDesc *lobj;
index 35812f4491113770f6713b04be3307d3b58de301..2082e3d4f6f97314c35cdca4b8f62c08083c13e4 100644 (file)
@@ -1373,7 +1373,7 @@ fail:
 void
 pq_putmessage_noblock(char msgtype, const char *s, size_t len)
 {
-   int         res;
+   int         res PG_USED_FOR_ASSERTS_ONLY;
    int         required;
 
    /*
index 24c853d47ef1aabb95156f90be4a8f3ea3d4995e..9cae27b99eb253362fddf6ec00e6f736a5243c52 100644 (file)
@@ -3583,7 +3583,7 @@ void
 set_subquery_size_estimates(PlannerInfo *root, RelOptInfo *rel)
 {
    PlannerInfo *subroot = rel->subroot;
-   RangeTblEntry *rte;
+   RangeTblEntry *rte PG_USED_FOR_ASSERTS_ONLY;
    ListCell   *lc;
 
    /* Should only be applied to base relations that are subqueries */
index 3329e9c964548e40a84397e8c26135f1cae74c58..485d686b058f1281abb4a10f4e3f821483f3a05f 100644 (file)
@@ -1588,7 +1588,7 @@ transformSetOperationTree(ParseState *pstate, SelectStmt *stmt,
        /* Process leaf SELECT */
        Query      *selectQuery;
        char        selectName[32];
-       RangeTblEntry *rte;
+       RangeTblEntry *rte PG_USED_FOR_ASSERTS_ONLY;
        RangeTblRef *rtr;
        ListCell   *tl;
 
index 52d9b6da940cf406f404d364ba1e1cd8634b9e06..8f442f0a7f81745c55a9fdae66737f088515d300 100644 (file)
@@ -685,7 +685,7 @@ LruInsert(File file)
        /* seek to the right position */
        if (vfdP->seekPos != (off_t) 0)
        {
-           off_t       returnValue;
+           off_t       returnValue PG_USED_FOR_ASSERTS_ONLY;
 
            returnValue = lseek(vfdP->fd, vfdP->seekPos, SEEK_SET);
            Assert(returnValue != (off_t) -1);
index 08fb69c32e5ccd393afd1333cb32fe460e77cbfd..1001ed2a17143843aa9aff09eb03e842df301a96 100644 (file)
@@ -2013,7 +2013,7 @@ RestoreScratchTarget(bool lockheld)
 static void
 RemoveTargetIfNoLongerUsed(PREDICATELOCKTARGET *target, uint32 targettaghash)
 {
-   PREDICATELOCKTARGET *rmtarget;
+   PREDICATELOCKTARGET *rmtarget PG_USED_FOR_ASSERTS_ONLY;
 
    Assert(LWLockHeldByMe(SerializablePredicateLockListLock));
 
@@ -2074,7 +2074,7 @@ DeleteChildTargetLocks(const PREDICATELOCKTARGETTAG *newtargettag)
        {
            uint32      oldtargettaghash;
            LWLockId    partitionLock;
-           PREDICATELOCK *rmpredlock;
+           PREDICATELOCK *rmpredlock PG_USED_FOR_ASSERTS_ONLY;
 
            oldtargettaghash = PredicateLockTargetTagHashCode(&oldtargettag);
            partitionLock = PredicateLockHashPartitionLock(oldtargettaghash);
@@ -2227,7 +2227,7 @@ DecrementParentLocks(const PREDICATELOCKTARGETTAG *targettag)
    {
        uint32      targettaghash;
        LOCALPREDICATELOCK *parentlock,
-                  *rmlock;
+                  *rmlock PG_USED_FOR_ASSERTS_ONLY;
 
        parenttag = nexttag;
        targettaghash = PredicateLockTargetTagHashCode(&parenttag);
index 2196f514d8f7ba01a5c4017ba12f3b15426115f1..2926c159bdce303834a45cf3f706c01d55ebb451 100644 (file)
@@ -808,7 +808,7 @@ static void
 AuxiliaryProcKill(int code, Datum arg)
 {
    int         proctype = DatumGetInt32(arg);
-   PGPROC     *auxproc;
+   PGPROC     *auxproc PG_USED_FOR_ASSERTS_ONLY;
 
    Assert(proctype >= 0 && proctype < NUM_AUXILIARY_PROCS);
 
index 7662b31729bb966e7cc7a94636f6ca36e2788f30..ced40484c4a6f00914be869aa112005e6546544c 100644 (file)
@@ -3874,7 +3874,7 @@ convert_string_datum(Datum value, Oid typid)
    {
        char       *xfrmstr;
        size_t      xfrmlen;
-       size_t      xfrmlen2;
+       size_t      xfrmlen2 PG_USED_FOR_ASSERTS_ONLY;
 
        /*
         * Note: originally we guessed at a suitable output buffer size, and
@@ -6408,7 +6408,7 @@ btcostestimate(PG_FUNCTION_ARGS)
        RestrictInfo *rinfo = (RestrictInfo *) lfirst(lcc);
        Expr       *clause;
        Node       *leftop,
-                  *rightop;
+                  *rightop PG_USED_FOR_ASSERTS_ONLY;
        Oid         clause_op;
        int         op_strategy;
        bool        is_null_op = false;
index a27bcd1ba731d7d62b2e5a0a75ce44695d7deb26..1208c8f475cac29ff38016d0ef867682e9a3a7d9 100644 (file)
@@ -1474,7 +1474,7 @@ psql_scan_slash_option(PsqlScanState state,
                       bool semicolon)
 {
    PQExpBufferData mybuf;
-   int         lexresult;
+   int         lexresult PG_USED_FOR_ASSERTS_ONLY;
    char        local_quote;
 
    /* Must be scanning already */
index 82acd14a9b4709fcfca778521b21018ce96c33b4..96375ab567c339f19924d1a15e9a26ad214b6d57 100644 (file)
@@ -710,6 +710,18 @@ typedef NameData *Name;
 #define STATUS_WAITING         (2)
 
 
+/*
+ * Append PG_USED_FOR_ASSERTS_ONLY to definitions of variables that are only
+ * used in assert-enabled builds, to avoid compiler warnings about unused
+ * variables in assert-disabled builds.
+ */
+#ifdef USE_ASSERT_CHECKING
+#define PG_USED_FOR_ASSERTS_ONLY
+#else
+#define PG_USED_FOR_ASSERTS_ONLY __attribute__((unused))
+#endif
+
+
 /* gettext domain name mangling */
 
 /*