public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug libstdc++/109941] New: [feat req] Add an option to mark STL types as nodiscard @ 2023-05-23 12:15 roi.jacobson1 at gmail dot com 2023-05-23 12:36 ` [Bug libstdc++/109941] " de34 at live dot cn ` (4 more replies) 0 siblings, 5 replies; 6+ messages in thread From: roi.jacobson1 at gmail dot com @ 2023-05-23 12:15 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109941 Bug ID: 109941 Summary: [feat req] Add an option to mark STL types as nodiscard Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: roi.jacobson1 at gmail dot com Target Milestone: --- I would find it useful if there was a macro or some other option to mark types like std::error_code, std::errc, and std::expected as [[nodiscard]] so developers will be forced to handle the errors. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libstdc++/109941] [feat req] Add an option to mark STL types as nodiscard 2023-05-23 12:15 [Bug libstdc++/109941] New: [feat req] Add an option to mark STL types as nodiscard roi.jacobson1 at gmail dot com @ 2023-05-23 12:36 ` de34 at live dot cn 2023-05-23 12:39 ` roi.jacobson1 at gmail dot com ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: de34 at live dot cn @ 2023-05-23 12:36 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109941 Jiang An <de34 at live dot cn> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |de34 at live dot cn --- Comment #1 from Jiang An <de34 at live dot cn> --- FYI MSVC STL currently applies [[nodiscard]] to std::lock_guard and std::scoped_lock. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libstdc++/109941] [feat req] Add an option to mark STL types as nodiscard 2023-05-23 12:15 [Bug libstdc++/109941] New: [feat req] Add an option to mark STL types as nodiscard roi.jacobson1 at gmail dot com 2023-05-23 12:36 ` [Bug libstdc++/109941] " de34 at live dot cn @ 2023-05-23 12:39 ` roi.jacobson1 at gmail dot com 2023-05-23 13:24 ` redi at gcc dot gnu.org ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: roi.jacobson1 at gmail dot com @ 2023-05-23 12:39 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109941 --- Comment #2 from Roy Jacobson <roi.jacobson1 at gmail dot com> --- Right, libc++ do that as well since 2019 - https://reviews.llvm.org/D65900?id=213975. Although with the RAII classes I think you need to [[nodiscard]] the constructor which I think (?) is a compiler extension. And you're also much less likely to have false positives with that so you can actually do that unconditionally :) ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libstdc++/109941] [feat req] Add an option to mark STL types as nodiscard 2023-05-23 12:15 [Bug libstdc++/109941] New: [feat req] Add an option to mark STL types as nodiscard roi.jacobson1 at gmail dot com 2023-05-23 12:36 ` [Bug libstdc++/109941] " de34 at live dot cn 2023-05-23 12:39 ` roi.jacobson1 at gmail dot com @ 2023-05-23 13:24 ` redi at gcc dot gnu.org 2023-05-23 13:24 ` redi at gcc dot gnu.org 2023-05-23 13:31 ` roi.jacobson1 at gmail dot com 4 siblings, 0 replies; 6+ messages in thread From: redi at gcc dot gnu.org @ 2023-05-23 13:24 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109941 Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |85973 --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- That doesn't currently work with GCC, so there's not much point doing it. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85973 [Bug 85973] [[nodiscard]] on class shall emit a warning for unused anonymous variable ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libstdc++/109941] [feat req] Add an option to mark STL types as nodiscard 2023-05-23 12:15 [Bug libstdc++/109941] New: [feat req] Add an option to mark STL types as nodiscard roi.jacobson1 at gmail dot com ` (2 preceding siblings ...) 2023-05-23 13:24 ` redi at gcc dot gnu.org @ 2023-05-23 13:24 ` redi at gcc dot gnu.org 2023-05-23 13:31 ` roi.jacobson1 at gmail dot com 4 siblings, 0 replies; 6+ messages in thread From: redi at gcc dot gnu.org @ 2023-05-23 13:24 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109941 Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libstdc++/109941] [feat req] Add an option to mark STL types as nodiscard 2023-05-23 12:15 [Bug libstdc++/109941] New: [feat req] Add an option to mark STL types as nodiscard roi.jacobson1 at gmail dot com ` (3 preceding siblings ...) 2023-05-23 13:24 ` redi at gcc dot gnu.org @ 2023-05-23 13:31 ` roi.jacobson1 at gmail dot com 4 siblings, 0 replies; 6+ messages in thread From: roi.jacobson1 at gmail dot com @ 2023-05-23 13:31 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109941 --- Comment #4 from Roy Jacobson <roi.jacobson1 at gmail dot com> --- The linked bug is about nodiscard applied to the class together with ignoring temporary objects. But GCC will when the type is the return value or when the nodiscard is applied to the constructor: class [[nodiscard]] err {}; err f(); void g() { f(); // Warning emitted } struct RAII { [[nodiscard]] RAII(int x); }; void h() { RAII(0); // Warning emitted } ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-05-23 13:31 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-05-23 12:15 [Bug libstdc++/109941] New: [feat req] Add an option to mark STL types as nodiscard roi.jacobson1 at gmail dot com 2023-05-23 12:36 ` [Bug libstdc++/109941] " de34 at live dot cn 2023-05-23 12:39 ` roi.jacobson1 at gmail dot com 2023-05-23 13:24 ` redi at gcc dot gnu.org 2023-05-23 13:24 ` redi at gcc dot gnu.org 2023-05-23 13:31 ` roi.jacobson1 at gmail dot com
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).