warn_unused_results

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема warn_unused_results
Дата
Msg-id e3753562-99cd-b65f-5aca-687dfd1ec2fc@2ndquadrant.com
обсуждение исходный текст
Ответы Re: warn_unused_results  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: warn_unused_results  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-hackers
Forgetting to assign the return value of list APIs such as lappend() is 
a perennial favorite.  The compiler can help point out such mistakes. 
GCC has an attribute warn_unused_results.  Also C++ has standardized 
this under the name "nodiscard", and C has a proposal to do the same 
[0].  In my patch I call the symbol pg_nodiscard, so that perhaps in a 
distant future one only has to do s/pg_nodiscard/nodiscard/ or something 
similar.  Also, the name is short enough that it doesn't mess up the 
formatting of function declarations too much.

I have added pg_nodiscard decorations to all the list functions where I 
found it sensible, as well as repalloc() for good measure, since 
realloc() is usually mentioned as an example where this function 
attribute is useful.

I have found two places in the existing code where this creates 
warnings.  Both places are correct as is, but make assumptions about the 
internals of the list APIs and it seemed better just to fix the warning 
than to write a treatise about why it's correct as is.


[0]: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2051.pdf

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Dilip Kumar
Дата:
Сообщение: Re: [HACKERS] Custom compression methods
Следующее
От: Amit Langote
Дата:
Сообщение: Re: partition routing layering in nodeModifyTable.c