use restrict everywhere it's required by c99 and/or posix 2008
to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
This commit is contained in:
parent
bac03cdde1
commit
400c5e5c83
192 changed files with 552 additions and 382 deletions
|
|
@ -5,6 +5,12 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if __STDC_VERSION__ >= 199901L
|
||||
#define __restrict restrict
|
||||
#elif !defined(__GNUC__)
|
||||
#define __restrict
|
||||
#endif
|
||||
|
||||
#undef NULL
|
||||
#ifdef __cplusplus
|
||||
#define NULL 0
|
||||
|
|
@ -21,23 +27,23 @@ extern "C" {
|
|||
|
||||
#include <bits/alltypes.h>
|
||||
|
||||
void *memcpy (void *, const void *, size_t);
|
||||
void *memcpy (void *__restrict, const void *__restrict, size_t);
|
||||
void *memmove (void *, const void *, size_t);
|
||||
void *memset (void *, int, size_t);
|
||||
int memcmp (const void *, const void *, size_t);
|
||||
void *memchr (const void *, int, size_t);
|
||||
|
||||
char *strcpy (char *, const char *);
|
||||
char *strncpy (char *, const char *, size_t);
|
||||
char *strcpy (char *__restrict, const char *__restrict);
|
||||
char *strncpy (char *__restrict, const char *__restrict, size_t);
|
||||
|
||||
char *strcat (char *, const char *);
|
||||
char *strncat (char *, const char *, size_t);
|
||||
char *strcat (char *__restrict, const char *__restrict);
|
||||
char *strncat (char *__restrict, const char *__restrict, size_t);
|
||||
|
||||
int strcmp (const char *, const char *);
|
||||
int strncmp (const char *, const char *, size_t);
|
||||
|
||||
int strcoll (const char *, const char *);
|
||||
size_t strxfrm (char *, const char *, size_t);
|
||||
size_t strxfrm (char *__restrict, const char *__restrict, size_t);
|
||||
|
||||
char *strchr (const char *, int);
|
||||
char *strrchr (const char *, int);
|
||||
|
|
@ -46,7 +52,7 @@ size_t strcspn (const char *, const char *);
|
|||
size_t strspn (const char *, const char *);
|
||||
char *strpbrk (const char *, const char *);
|
||||
char *strstr (const char *, const char *);
|
||||
char *strtok (char *, const char *);
|
||||
char *strtok (char *__restrict, const char *__restrict);
|
||||
|
||||
size_t strlen (const char *);
|
||||
|
||||
|
|
@ -59,22 +65,22 @@ char *strerror (int);
|
|||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
|
||||
|| defined(_BSD_SOURCE)
|
||||
char *strtok_r (char *, const char *, char **);
|
||||
char *strtok_r (char *__restrict, const char *__restrict, char **__restrict);
|
||||
int strerror_r (int, char *, size_t);
|
||||
char *stpcpy(char *, const char *);
|
||||
char *stpncpy(char *, const char *, size_t);
|
||||
char *stpcpy(char *__restrict, const char *__restrict);
|
||||
char *stpncpy(char *__restrict, const char *__restrict, size_t);
|
||||
size_t strnlen (const char *, size_t);
|
||||
char *strdup (const char *);
|
||||
char *strndup (const char *, size_t);
|
||||
char *strsignal(int);
|
||||
char *strerror_l (int, locale_t);
|
||||
int strcoll_l (const char *, const char *, locale_t);
|
||||
size_t strxfrm_l (char *, const char *, size_t, locale_t);
|
||||
size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t);
|
||||
#endif
|
||||
|
||||
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
|
||||
|| defined(_BSD_SOURCE)
|
||||
void *memccpy (void *, const void *, int, size_t);
|
||||
void *memccpy (void *__restrict, const void *__restrict, int, size_t);
|
||||
#endif
|
||||
|
||||
#ifdef _BSD_SOURCE
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue