Add some pure attributes.

This commit is contained in:
Andreas Jaeger 2000-08-23 07:23:46 +00:00
parent d6585e0b91
commit fb4dfa0c81
5 changed files with 54 additions and 35 deletions

View file

@ -252,11 +252,13 @@ extern int scandir64 (__const char *__restrict __dir,
/* Function to compare two `struct dirent's alphabetically. */
# ifndef __USE_FILE_OFFSET64
extern int alphasort (__const void *__e1, __const void *__e2) __THROW;
extern int alphasort (__const void *__e1, __const void *__e2)
__THROW __attribute_pure__;
# else
# ifdef __REDIRECT
extern int __REDIRECT (alphasort,
(__const void *__e1, __const void *__e2) __THROW,
(__const void *__e1, __const void *__e2)
__THROW __attribute_pure__,
alphasort64);
# else
# define alphasort alphasort64
@ -264,17 +266,20 @@ extern int __REDIRECT (alphasort,
# endif
# if defined __USE_GNU && defined __USE_LARGEFILE64
extern int alphasort64 (__const void *__e1, __const void *__e2) __THROW;
extern int alphasort64 (__const void *__e1, __const void *__e2)
__THROW __attribute_pure__;
# endif
# ifdef __USE_GNU
/* Function to compare two `struct dirent's by name & version. */
# ifndef __USE_FILE_OFFSET64
extern int versionsort (__const void *__e1, __const void *__e2) __THROW;
extern int versionsort (__const void *__e1, __const void *__e2)
__THROW __attribute_pure__;
# else
# ifdef __REDIRECT
extern int __REDIRECT (versionsort,
(__const void *__e1, __const void *__e2) __THROW,
(__const void *__e1, __const void *__e2)
__THROW __attribute_pure__,
versionsort64);
# else
# define versionsort versionsort64
@ -282,7 +287,8 @@ extern int __REDIRECT (versionsort,
# endif
# ifdef __USE_LARGEFILE64
extern int versionsort64 (__const void *__e1, __const void *__e2) __THROW;
extern int versionsort64 (__const void *__e1, __const void *__e2)
__THROW __attribute_pure__;
# endif
# endif

View file

@ -18,6 +18,8 @@ extern __ssize_t __getdents (int __fd, char *__buf, size_t __nbytes)
internal_function;
extern __ssize_t __getdents64 (int __fd, char *__buf, size_t __nbytes)
internal_function;
extern int __alphasort64 (const void *a, const void *b);
extern int __versionsort64 (const void *a, const void *b);
extern int __alphasort64 (const void *a, const void *b)
__attribute_pure__;
extern int __versionsort64 (const void *a, const void *b)
__attribute_pure__;
#endif

View file

@ -3,10 +3,13 @@
# ifdef _WCHAR_H
/* Now define the internal interfaces. */
extern int __wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2);
extern int __wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2)
__attribute_pure__;
extern int __wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
size_t __n);
extern size_t __wcsnlen (__const wchar_t *__s, size_t __maxlen);
size_t __n)
__attribute_pure__;
extern size_t __wcsnlen (__const wchar_t *__s, size_t __maxlen)
__attribute_pure__;
extern wint_t __btowc (int __c);
extern int __mbsinit (__const __mbstate_t *__ps);
extern size_t __mbrtowc (wchar_t *__restrict __pwc,
@ -37,7 +40,8 @@ extern wchar_t *__wmempcpy (wchar_t *__restrict __s1,
size_t __n);
extern wchar_t *__wmemmove (wchar_t *__s1, __const wchar_t *__s2,
size_t __n);
extern wchar_t *__wcschrnul (__const wchar_t *__s, wchar_t __wc);
extern wchar_t *__wcschrnul (__const wchar_t *__s, wchar_t __wc)
__attribute_pure__;
extern int __vfwscanf (FILE *__restrict __s,
__const wchar_t *__restrict __format,

View file

@ -134,15 +134,16 @@ extern size_t __ctype_get_mb_cur_max (void) __THROW;
/* Convert a string to a floating-point number. */
extern double atof (__const char *__nptr) __THROW;
extern double atof (__const char *__nptr) __THROW __attribute_pure__;
/* Convert a string to an integer. */
extern int atoi (__const char *__nptr) __THROW;
extern int atoi (__const char *__nptr) __THROW __attribute_pure__;
/* Convert a string to a long integer. */
extern long int atol (__const char *__nptr) __THROW;
extern long int atol (__const char *__nptr) __THROW __attribute_pure__;
#if defined __USE_ISOC99 || (defined __GNUC__ && defined __USE_MISC)
/* These functions will part of the standard C library in ISO C99. */
__extension__ extern long long int atoll (__const char *__nptr) __THROW;
/* Convert a string to a long long integer. */
__extension__ extern long long int atoll (__const char *__nptr)
__THROW __attribute_pure__;
#endif
/* Convert a string to a floating-point number. */
@ -384,7 +385,7 @@ atoll (__const char *__nptr) __THROW
extern char *l64a (long int __n) __THROW;
/* Read a number from a string S in base 64 as above. */
extern long int a64l (__const char *__s) __THROW;
extern long int a64l (__const char *__s) __THROW __attribute_pure__;
# include <sys/types.h> /* we need int32_t... */
@ -552,7 +553,7 @@ extern void *valloc (size_t __size) __THROW __attribute_malloc__;
#ifdef __USE_XOPEN2K
/* Allocate memory of SIZE bytes with an alignment of ALIGNMENT. */
extern int posix_memalign (void **memptr, size_t alignment, size_t size)
__THROW;
__THROW __attribute_malloc__;
#endif
/* Abort execution and generate a core-dump. */

View file

@ -119,10 +119,11 @@ extern wchar_t *wcsncat (wchar_t *__restrict __dest,
__THROW;
/* Compare S1 and S2. */
extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2) __THROW;
extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
__THROW __attribute_pure__;
/* Compare N wide-characters of S1 and S2. */
extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
__THROW;
__THROW __attribute_pure__;
#ifdef __USE_GNU
/* Compare S1 and S2, ignoring case. */
@ -167,39 +168,42 @@ extern size_t __wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
size_t __n, __locale_t __loc) __THROW;
/* Duplicate S, returning an identical malloc'd string. */
extern wchar_t *wcsdup (__const wchar_t *__s) __THROW;
extern wchar_t *wcsdup (__const wchar_t *__s) __THROW __attribute_malloc__;
#endif
/* Find the first occurrence of WC in WCS. */
extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc) __THROW;
extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
__THROW __attribute_pure__;
/* Find the last occurrence of WC in WCS. */
extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc) __THROW;
extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
__THROW __attribute_pure__;
#ifdef __USE_GNU
/* This funciton is similar to `wcschr'. But it returns a pointer to
the closing NUL wide character in case C is not found in S. */
extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc) __THROW;
extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
__THROW __attribute_pure__;
#endif
/* Return the length of the initial segmet of WCS which
consists entirely of wide characters not in REJECT. */
extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
__THROW;
__THROW __attribute_pure__;
/* Return the length of the initial segmet of WCS which
consists entirely of wide characters in ACCEPT. */
extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
__THROW;
__THROW __attribute_pure__;
/* Find the first occurrence in WCS of any character in ACCEPT. */
extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
__THROW;
__THROW __attribute_pure__;
/* Find the first occurrence of NEEDLE in HAYSTACK. */
extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
__THROW;
__THROW __attribute_pure__;
#ifdef __USE_XOPEN
/* Another name for `wcsstr' from XPG4. */
extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
__THROW;
__THROW __attribute_pure__;
#endif
/* Divide WCS into tokens separated by characters in DELIM. */
@ -208,22 +212,24 @@ extern wchar_t *wcstok (wchar_t *__restrict __s,
wchar_t **__restrict __ptr) __THROW;
/* Return the number of wide characters in S. */
extern size_t __wcslen (__const wchar_t *__s) __THROW;
extern size_t wcslen (__const wchar_t *__s) __THROW;
extern size_t __wcslen (__const wchar_t *__s) __THROW __attribute_pure__;
extern size_t wcslen (__const wchar_t *__s) __THROW __attribute_pure__;
#ifdef __USE_GNU
/* Return the number of wide characters in S, but at most MAXLEN. */
extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen) __THROW;
extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
__THROW __attribute_pure__;
#endif
/* Search N wide characters of S for C. */
extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
__THROW;
__THROW __attribute_pure__;
/* Compare N wide characters of S1 and S2. */
extern int wmemcmp (__const wchar_t *__restrict __s1,
__const wchar_t *__restrict __s2, size_t __n) __THROW;
__const wchar_t *__restrict __s2, size_t __n)
__THROW __attribute_pure__;
/* Copy N wide characters of SRC to DEST. */
extern wchar_t *wmemcpy (wchar_t *__restrict __s1,