These functions consume a source string. Document that. There's no way
to mark that they also produce a string in dst, though. That will be up
to the static analyzer to guess.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
#include <stddef.h>
#include <string.h>
+#include "attr.h"
+
+ATTR_STRING(3)
inline char *stpecpy(char *dst, char *end, const char *restrict src);
/*
* SYNOPSIS
+ * [[gnu::null_terminated_string_arg(3)]]
* char *_Nullable stpecpy(char *_Nullable dst, char end[0],
* const char *restrict src);
*
#include <string.h>
#include <sys/types.h>
+#include "attr.h"
+#include "defines.h"
#include "sizeof.h"
/*
* SYNOPSIS
+ * [[gnu::null_terminated_string_arg(2)]]
* int STRTCPY(char dst[restrict], const char *restrict src);
*
* ARGUMENTS
#define STRTCPY(dst, src) strtcpy(dst, src, NITEMS(dst))
+ATTR_STRING(2)
inline ssize_t strtcpy(char *restrict dst, const char *restrict src,
size_t dsize);