https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509
Paul Pluzhnikov <ppluzhnikov at google dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ppluzhnikov at google dot com --- Comment #28 from Paul Pluzhnikov <ppluzhnikov at google dot com> --- Google ref: b/16983603. I wouldn't call this bug fixed. I have just found ~30 bugs in our code, where someone wrote: vector<int> v; ... v.empty(); // v.clear() was intended! No problem, I'll just add warn_unused_result to vector::empty(), right? Well, that did expose the 30 bugs above, but unfortunately I can't do that permanently, because it also exposed this false positive: assert(v.empty()); where assert in NDEBUG mode expanded into static_cast<void>(v.empty()); and triggered the warning :-( P.S. Some of the bugs I found were in parts of the code imported from open-source projects, so it's not a problem that is specific to just Google. If the assert problem could be addressed, adding warn_unused_result to trunk libstdc++ would benefit everyone.