This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] fix docs for C++ warn_unused type attribute
- From: Jonathan Wakely <jwakely at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Jason Merrill <jason at redhat dot com>
- Date: Wed, 17 Feb 2016 14:49:27 +0000
- Subject: [patch] fix docs for C++ warn_unused type attribute
- Authentication-results: sourceware.org; auth=none
https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html says
that attribute((warn_unused)) is not useful for std::mutex because it
controls a resource. That's incorrect, std::mutex *is* a resource, but
it doesn't control one. In fact declaring std::mutex as a local
variable and then never using it almost certainly is a mistake,
because it won't be locked unless you use it.
A better example of a type that controls a resource would be
std::lock_guard, which you would typically construct and then never
refer to again (because everything interesting happens in the
constructor and destructor).
OK for trunk?
commit 01e62a231d9a446130fec253a2001f1e844e184c
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Feb 17 14:08:39 2016 +0000
* doc/extend.texi (C++ Attributes): Correct description of
warn_unused type attribute.
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 78017fe..476d089 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -20313,7 +20313,7 @@ types.
This attribute is appropriate for types which just represent a value,
such as @code{std::string}; it is not appropriate for types which
-control a resource, such as @code{std::mutex}.
+control a resource, such as @code{std::lock_guard}.
This attribute is also accepted in C, but it is unnecessary because C
does not have constructors or destructors.