https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425
pskocik at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pskocik at gmail dot com --- Comment #38 from pskocik at gmail dot com --- I like this behavior. I use (void) casts to suppress warnings about unused parameters and variables, but I'd rather suppressing WUR weren't that simple because of functions whose return result represents an allocated resource (allocated memory, FILE, filedescriptor, etc.), in which case the suppression is in 99% cases erroneous. Of course, WUR is also useful as an aid in enforcing consistent error checking but a codebase using WUR like that might as well define an custom IGNORE macro (which assigns the result to a properly typed temporary and then voids it) and make sure such a macro only works on return values which are truly safe to ignore (e.g., rather than returning plain int, long, etc., you might return struct ignorable_int { int ignorable_retval; };, struct ignorable_long { long ignorable_retval; }, etc. and have your ignore macro try and access the specifically named member). (An ability to directly attach WUR to such types, which clang has gcc currently doesn't (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94379), would also go nicely with this un-void-able WURs feature (although WURs are void-able on clang)).