David Rowley <david.row...@2ndquadrant.com> writes: > On 8 April 2017 at 04:42, Tom Lane <t...@sss.pgh.pa.us> wrote: >> BTW, is it really true that only these two places produce such warnings >> on MSVC? I see about three dozen uses of PG_USED_FOR_ASSERTS_ONLY in our >> tree, and I'd have expected all of those places to be causing warnings on >> a compiler that doesn't have a way to understand that annotation.
> Seems that MSVC is happy once the variable is assigned, and does not > bother checking if the variable is used after being assigned, whereas, > some other compilers might see the variable as uselessly assigned. > At the moment there are no other warnings from MSVC since all the > other places the variable gets assigned a value in some code path. I wonder if we shouldn't just do RangeTblEntry *rte PG_USED_FOR_ASSERTS_ONLY; ListCell *lc; /* Should only be applied to base relations that are subqueries */ Assert(rel->relid > 0); -#ifdef USE_ASSERT_CHECKING rte = planner_rt_fetch(rel->relid, root); Assert(rte->rtekind == RTE_SUBQUERY); -#endif and eat the "useless" calculation of rte. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers