chiark / gitweb /
@@@ misc mess
[mLib] / utils / macros.3.in
index 6bb18d4ff92c56bff38c50312acce049b4d6233a..91052c293a3611fc2979f8daae967f71dfe95f35 100644 (file)
@@ -33,6 +33,8 @@
 .\" @STR
 .\" @GLUE
 .\" @STATIC_ASSERT
+.\" COMMA
+.
 .\" @ISALNUM
 .\" @ISALPHA
 .\" @ISASCII
 .\" @TOASCII
 .\" @TOLOWER
 .\" @TOUPPER
+.
 .\" @MEMCMP
 .\" @STRCMP
 .\" @STRNCMP
+.
 .\" @DISCARD
 .\" @IGNORE
+.\" @LAUNDER
+.\" @RELAX
+.
 .\" @DEPRECATED
-.\" @EXECL_LIKE
 .\" @IGNORABLE
 .\" @MUST_CHECK
 .\" @NORETURN
 .\" @PRINTF_LIKE
 .\" @SCANF_LIKE
+.\" @EXECL_LIKE
+.
 .\" @MUFFLE_WARNINGS_DECL
 .\" @MUFFLE_WARNINGS_EXPR
 .\" @MUFFLE_WARNINGS_STMT
@@ -147,7 +155,7 @@ preprocessing token.
 .PP
 The
 .B STATIC_ASSERT
-causes compilation to fail if the integer constant expression
+macro causes compilation to fail if the integer constant expression
 .I cond
 evaluates to zero.  This macro uses the C11
 .B static_assert
@@ -158,6 +166,13 @@ falls back to a somewhat ugly hack which currently ignores the
 .IR msg .
 .PP
 The
+.B COMMA
+macro expands to a comma
+.BR ` , ',
+which is useful for smuggling commas into macro arguments
+if they can't be protected by parentheses.
+.PP
+The
 .BR IS ...\&
 and
 .BR TO ...\&
@@ -201,6 +216,17 @@ The
 .B IGNORE
 macro ignores its argument, which may be an expression of any type.
 This can be useful in muffling warnings about unused variables.
+.PP
+The
+.B LAUNDER
+macro tries to confuse a compiler so that it `forgets' what it knows
+about a particular value.  This is most useful in benchmarking or
+similar applications.
+.PP
+The
+.B RELAX
+macro tries do nothing, but in a way that a compiler won't optimize
+away.
 .
 .SS Annotations
 The following annotations can be attached to function declarations and