Module Name: src
Committed By: jruoho
Date: Tue Mar 2 06:20:03 UTC 2010
Modified Files:
src/share/man/man3: __UNCONST.3
Log Message:
As per suggestions from mrg@, improve the lead paragraph and stress that
these macros are not recommended. Also remove the example as it feels a
little frivolous and takes too much space.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/share/man/man3/__UNCONST.3
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/share/man/man3/__UNCONST.3
diff -u src/share/man/man3/__UNCONST.3:1.2 src/share/man/man3/__UNCONST.3:1.3
--- src/share/man/man3/__UNCONST.3:1.2 Mon Mar 1 15:30:47 2010
+++ src/share/man/man3/__UNCONST.3 Tue Mar 2 06:20:03 2010
@@ -1,4 +1,4 @@
-.\" $NetBSD: __UNCONST.3,v 1.2 2010/03/01 15:30:47 wiz Exp $
+.\" $NetBSD: __UNCONST.3,v 1.3 2010/03/02 06:20:03 jruoho Exp $
.\"
.\" Copyright (c) 2010 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -43,40 +43,31 @@
The
.Fn __UNCONST
macro can be used to omit warnings produced by certain compilers when
-a pointer declared with the
+operating with pointers declared with the
.Em const
-type qualifier is being passed to a function without such qualifier.
+type qualifier in a context without such qualifier.
+Examples include passing a pointer declared with the
+.Em const
+qualifier to a function without such qualifier,
+and variable assignment from a
+.Em const
+pointer to a non-const pointer.
In the same vein, the
.Fn __UNVOLATILE
-macro can be used to omit warnings related to the
+macro can be used to exclude warnings related to the
.Em volatile
type qualifier.
.Sh IMPLEMENTATION NOTES
-Both macros are implemented by explicitly using
+These macros are implemented by explicitly using
.Em unsigned long
instead of
.Em intptr_t ,
a signed type guaranteed to hold a pointer.
-.Sh EXAMPLES
-The following example demonstrates a possible usage of
-.Fn __UNCONST :
-.Bd -literal -offset indent
-const char *str = "/dev/null";
-
-api_function(__UNCONST(str));
-
-\&...
-
-static void
-api_function(char *str)
-{
- \&...
-
-.Ed
.Sh SEE ALSO
.Xr cc 1
.Sh CAVEATS
-Both macros should be used with care because these can hide valid errors.
+As both macros may hide valid errors, their usage is not recommended
+unless there is a well-thought reason for a cast.
A typical use case for
.Fn __UNCONST
involve an
@@ -85,5 +76,7 @@
even if it would be appropriate.
Valid use cases of
.Fn __UNVOLATILE
-include passing a volatile pointer to
+include passing a
+.Em volatile
+pointer to
.Xr memset 3 .