Re: [HACKERS] Compiler warning in costsize.c
От | Tom Lane |
---|---|
Тема | Re: [HACKERS] Compiler warning in costsize.c |
Дата | |
Msg-id | 20257.1491825923@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: [HACKERS] Compiler warning in costsize.c (David Rowley <david.rowley@2ndquadrant.com>) |
Ответы |
Re: [HACKERS] Compiler warning in costsize.c
Re: [HACKERS] Compiler warning in costsize.c |
Список | pgsql-hackers |
David Rowley <david.rowley@2ndquadrant.com> writes: > On 8 April 2017 at 04:42, Tom Lane <tgl@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 aresubqueries */ 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
В списке pgsql-hackers по дате отправления: