https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425
Roman Krotov <romato.san1337 at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |romato.san1337 at gmail dot com --- Comment #54 from Roman Krotov <romato.san1337 at gmail dot com> --- I'm also very frustrated about this behavior, but I'm not asking to **change** it. I see your point and, although I think it's severely outdated now, I respect your decision. Instead I'm offering a compromise, or to better describe it, a win-win solution. What about introducing something like `-Wno-void-unused`, which would only disable the warnings for the (void) casted calls? And I'm not asking to do it for me, or some other random dudes; do it for systemd, they are also very frustrated about this: https://github.com/systemd/systemd/blob/5a96b32dead5132ba37a8b968c59101c2aac8d23/meson.build#L400 That's because they use (void) casts very frequently: https://github.com/search?q=repo%3Asystemd%2Fsystemd+language%3AC+%22%28void%29%22&type=code You can probably say they are in the wrong by doing the bad practice and should do a macro instead. And you may be right. I really appreciate your commitment to teach people good practices, but **suggesting** them (by setting the default behavior which **recommends** the programmers to use these practices) should be enough. I don't think it's a good idea to **force** people to use them, by either spamming them with warnings (useless to them, because they already made a decision) or making them disable such warnings altogether, which could lead them to miss a bug where they forgot to use a value of a function (which they didn't cast with void). You may say it's their fault, but let me ask you a question, who is winning from the current situation? Certainly, not you, because you didn't convince them to change, instead you just made them not listen to you, see also julia-language and mpv: https://github.com/search?q=%22-Wno-unused-result%22&type=code And certainly, not them, because of the bug-risk I typed above, which is really unfortunate for such a big and widely-used project as systemd. Also, making them switch to clang (or drop gcc support) would be really bad, because nothing hurts FOSS and frustrates me in a project more than a permissive license. Eww.. Sorry, if I was a little bit harsh there, I really appreciate your contribution to FOSS and Linux development, and I would never switch to clang. Just, please note, that, again, I'm begging you to just implement a non-default switch that would make everyone's lives easier. Why "everyone's"? You see, If a new programmer encounters this "problem", they would think it's just a "gcc bug", because "clang works as expected" (and also the mentioned projects wrote like this in a comment), so they just disable the warnings altogether. Nobody won, especially the programmer. Now consider the situation where you implemented the switch, but wrote, for example, in the manpage just that "It's not recommended". Now they will be curious why, so they will try to find an answer, and the search will probably lead them to the gnu.org page which has the answer. See, how even though you might think you gave the ability to write a bad code, in reality you would give the exact point why not to use (void)? (Which they really need because other compilers/linters are trying to convince them otherwise.) Come on, at least please admit that the situation described above would still be better than today's. If you will find at least some of my points somewhat reasonable, please share my comment with the people that can help bring this improvement to life.