As N2417 (a proposal for C2x that was not accepted) suggests.
This syntax is very informative, and also, if used by library
implementers, can improve static analysis.
Since it is backwards compatible with pointer syntax, we can do
this. Also, the reason for not being accepted, as Jens noted,
was incompatibility with C++. But IMO, that's not something that
we should care too much. Users of other languages should know
what to expect when reading C code, and are expected to know C/C++
incompatibilities.
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Cc: Jens Gustedt <jens.gustedt@loria.fr>
Cc: Glibc <libc-alpha@sourceware.org>
.B #include <time.h>
.PP
.BI "char *asctime(const struct tm *" tm );
-.BI "char *asctime_r(const struct tm *restrict " tm ", char *restrict " buf );
+.BI "char *asctime_r(const struct tm *restrict " tm ,
+.BI " char " buf "[restrict 26]);"
.PP
.BI "char *ctime(const time_t *" timep );
-.BI "char *ctime_r(const time_t *restrict " timep ", char *restrict " buf );
+.BI "char *ctime_r(const time_t *restrict " timep ,
+.BI " char " buf "[restrict 26]);"
.PP
.BI "struct tm *gmtime(const time_t *" timep );
.BI "struct tm *gmtime_r(const time_t *restrict " timep ,