https://gitlab.synchro.net/main/sbbs/-/commit/3f7bf07497cf854e655b17ee
Modified Files:
src/conio/x_events.c src/syncterm/telnets.c src/xpdev/genwrap.h
Log Message:
Define and use a new IGNORE_RESULT() macro
Historically, casting to void would suppress warnings about things
being unused. However, an attribute was created for functions like
realloc() where not using the result is always a bug, so when the
attribute is used, you must actually use the return value and can't
cast to void to avoid a warning.
Given this attribute, the glibc authors decided to apply it to all
the functions that usually should have their return value checked
(chdir(), write(), etc) when _FORTIFY_SOURCE is defined because if
you care about correctness enough to define _FORTIFY_SOURCE, you'll
always do something useful with these return values.
Extending the hilarity, some distros define _FORTIFY_SOURCE by
default.
The result is functions that occasionally can safely be called
regardless of the return value will throw a warning if you don't
"do something" with that return value.
Of course, you can just turn off the warnings completely with a
compiler flag, but then you lose the excellent warning about things
like realloc() that always make sense and were the original reason
for the option.
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net