diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | dirent/dirent.h | 56 | ||||
-rw-r--r-- | dlfcn/dlfcn.h | 17 |
3 files changed, 47 insertions, 31 deletions
@@ -1,3 +1,8 @@ +2004-11-22 Ulrich Drepper <drepper@redhat.com> + + * dirent/dirent.h: Add __nonnull attributes. + * dlfcn/dlfcn.h: Likewise. + 2004-11-20 Jakub Jelinek <jakub@redhat.com> * sysdeps/ieee754/k_standard.c: Document code 50. diff --git a/dirent/dirent.h b/dirent/dirent.h index 173d0eba97..a5e8a004e2 100644 --- a/dirent/dirent.h +++ b/dirent/dirent.h @@ -132,14 +132,14 @@ typedef struct __dirstream DIR; This function is a possible cancellation point and therefore not marked with __THROW. */ -extern DIR *opendir (__const char *__name); +extern DIR *opendir (__const char *__name) __nonnull ((1)); /* Close the directory stream DIRP. Return 0 if successful, -1 if not. This function is a possible cancellation point and therefore not marked with __THROW. */ -extern int closedir (DIR *__dirp); +extern int closedir (DIR *__dirp) __nonnull ((1)); /* Read a directory entry from DIRP. Return a pointer to a `struct dirent' describing the entry, or NULL for EOF or error. The @@ -152,17 +152,18 @@ extern int closedir (DIR *__dirp); This function is a possible cancellation point and therefore not marked with __THROW. */ #ifndef __USE_FILE_OFFSET64 -extern struct dirent *readdir (DIR *__dirp); +extern struct dirent *readdir (DIR *__dirp) __nonnull ((1)); #else # ifdef __REDIRECT -extern struct dirent *__REDIRECT (readdir, (DIR *__dirp), readdir64); +extern struct dirent *__REDIRECT (readdir, (DIR *__dirp), readdir64) + __nonnull ((1)); # else # define readdir readdir64 # endif #endif #ifdef __USE_LARGEFILE64 -extern struct dirent64 *readdir64 (DIR *__dirp); +extern struct dirent64 *readdir64 (DIR *__dirp) __nonnull ((1)); #endif #if defined __USE_POSIX || defined __USE_MISC @@ -174,14 +175,15 @@ extern struct dirent64 *readdir64 (DIR *__dirp); # ifndef __USE_FILE_OFFSET64 extern int readdir_r (DIR *__restrict __dirp, struct dirent *__restrict __entry, - struct dirent **__restrict __result); + struct dirent **__restrict __result) + __nonnull ((1, 2, 3)); # else # ifdef __REDIRECT extern int __REDIRECT (readdir_r, (DIR *__restrict __dirp, struct dirent *__restrict __entry, struct dirent **__restrict __result), - readdir64_r); + readdir64_r) __nonnull ((1, 2, 3)); # else # define readdir_r readdir64_r # endif @@ -190,27 +192,28 @@ extern int __REDIRECT (readdir_r, # ifdef __USE_LARGEFILE64 extern int readdir64_r (DIR *__restrict __dirp, struct dirent64 *__restrict __entry, - struct dirent64 **__restrict __result); + struct dirent64 **__restrict __result) + __nonnull ((1, 2, 3)); # endif #endif /* POSIX or misc */ /* Rewind DIRP to the beginning of the directory. */ -extern void rewinddir (DIR *__dirp) __THROW; +extern void rewinddir (DIR *__dirp) __THROW __nonnull ((1)); #if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN # include <bits/types.h> /* Seek to position POS on DIRP. */ -extern void seekdir (DIR *__dirp, long int __pos) __THROW; +extern void seekdir (DIR *__dirp, long int __pos) __THROW __nonnull ((1)); /* Return the current position of DIRP. */ -extern long int telldir (DIR *__dirp) __THROW; +extern long int telldir (DIR *__dirp) __THROW __nonnull ((1)); #endif #if defined __USE_BSD || defined __USE_MISC /* Return the file descriptor used by DIRP. */ -extern int dirfd (DIR *__dirp) __THROW; +extern int dirfd (DIR *__dirp) __THROW __nonnull ((1)); # if defined __OPTIMIZE__ && defined _DIR_dirfd # define dirfd(dirp) _DIR_dirfd (dirp) @@ -239,7 +242,8 @@ extern int dirfd (DIR *__dirp) __THROW; extern int scandir (__const char *__restrict __dir, struct dirent ***__restrict __namelist, int (*__selector) (__const struct dirent *), - int (*__cmp) (__const void *, __const void *)); + int (*__cmp) (__const void *, __const void *)) + __nonnull ((1, 2)); # else # ifdef __REDIRECT extern int __REDIRECT (scandir, @@ -247,7 +251,7 @@ extern int __REDIRECT (scandir, struct dirent ***__restrict __namelist, int (*__selector) (__const struct dirent *), int (*__cmp) (__const void *, __const void *)), - scandir64); + scandir64) __nonnull ((1, 2)); # else # define scandir scandir64 # endif @@ -259,18 +263,19 @@ extern int __REDIRECT (scandir, extern int scandir64 (__const char *__restrict __dir, struct dirent64 ***__restrict __namelist, int (*__selector) (__const struct dirent64 *), - int (*__cmp) (__const void *, __const void *)); + int (*__cmp) (__const void *, __const void *)) + __nonnull ((1, 2)); # endif /* Function to compare two `struct dirent's alphabetically. */ # ifndef __USE_FILE_OFFSET64 extern int alphasort (__const void *__e1, __const void *__e2) - __THROW __attribute_pure__; + __THROW __attribute_pure__ __nonnull ((1, 2)); # else # ifdef __REDIRECT extern int __REDIRECT_NTH (alphasort, (__const void *__e1, __const void *__e2), - alphasort64) __attribute_pure__; + alphasort64) __attribute_pure__ __nonnull ((1, 2)); # else # define alphasort alphasort64 # endif @@ -278,19 +283,20 @@ extern int __REDIRECT_NTH (alphasort, # if defined __USE_GNU && defined __USE_LARGEFILE64 extern int alphasort64 (__const void *__e1, __const void *__e2) - __THROW __attribute_pure__; + __THROW __attribute_pure__ __nonnull ((1, 2)); # 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 __attribute_pure__; + __THROW __attribute_pure__ __nonnull ((1, 2)); # else # ifdef __REDIRECT extern int __REDIRECT_NTH (versionsort, (__const void *__e1, __const void *__e2), - versionsort64) __attribute_pure__; + versionsort64) + __attribute_pure__ __nonnull ((1, 2)); # else # define versionsort versionsort64 # endif @@ -298,7 +304,7 @@ extern int __REDIRECT_NTH (versionsort, # ifdef __USE_LARGEFILE64 extern int versionsort64 (__const void *__e1, __const void *__e2) - __THROW __attribute_pure__; + __THROW __attribute_pure__ __nonnull ((1, 2)); # endif # endif @@ -309,14 +315,15 @@ extern int versionsort64 (__const void *__e1, __const void *__e2) # ifndef __USE_FILE_OFFSET64 extern __ssize_t getdirentries (int __fd, char *__restrict __buf, size_t __nbytes, - __off_t *__restrict __basep) __THROW; + __off_t *__restrict __basep) + __THROW __nonnull ((2, 4)); # else # ifdef __REDIRECT extern __ssize_t __REDIRECT_NTH (getdirentries, (int __fd, char *__restrict __buf, size_t __nbytes, __off64_t *__restrict __basep), - getdirentries64); + getdirentries64) __nonnull ((2, 4)); # else # define getdirentries getdirentries64 # endif @@ -325,7 +332,8 @@ extern __ssize_t __REDIRECT_NTH (getdirentries, # ifdef __USE_LARGEFILE64 extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf, size_t __nbytes, - __off64_t *__restrict __basep) __THROW; + __off64_t *__restrict __basep) + __THROW __nonnull ((2, 4)); # endif #endif /* Use BSD or misc. */ diff --git a/dlfcn/dlfcn.h b/dlfcn/dlfcn.h index 9383c230dc..c3943b3250 100644 --- a/dlfcn/dlfcn.h +++ b/dlfcn/dlfcn.h @@ -54,16 +54,16 @@ __BEGIN_DECLS /* Open the shared object FILE and map it in; return a handle that can be passed to `dlsym' to get symbol values from it. */ -extern void *dlopen (__const char *__file, int __mode) __THROW; +extern void *dlopen (__const char *__file, int __mode) __THROW __nonnull ((1)); /* Unmap and close a shared object opened by `dlopen'. The handle cannot be used again after calling `dlclose'. */ -extern int dlclose (void *__handle) __THROW; +extern int dlclose (void *__handle) __THROW __nonnull ((1)); /* Find the run-time address in the shared object HANDLE refers to of the symbol called NAME. */ extern void *dlsym (void *__restrict __handle, - __const char *__restrict __name) __THROW; + __const char *__restrict __name) __THROW __nonnull ((2)); #ifdef __USE_GNU /* Like `dlopen', but request object to be allocated in a new namespace. */ @@ -73,7 +73,8 @@ extern void *dlmopen (Lmid_t __nsid, __const char *__file, int __mode) __THROW; of the symbol called NAME with VERSION. */ extern void *dlvsym (void *__restrict __handle, __const char *__restrict __name, - __const char *__restrict __version) __THROW; + __const char *__restrict __version) + __THROW __nonnull ((2, 3)); #endif /* When any of the above functions fails, call this function @@ -95,11 +96,12 @@ typedef struct /* Fill in *INFO with the following information about ADDRESS. Returns 0 iff no shared object's segments contain that address. */ -extern int dladdr (__const void *__address, Dl_info *__info) __THROW; +extern int dladdr (__const void *__address, Dl_info *__info) + __THROW __nonnull ((2)); /* Same as `dladdr', but additionally sets *EXTRA_INFO according to FLAGS. */ extern int dladdr1 (__const void *__address, Dl_info *__info, - void **__extra_info, int __flags) __THROW; + void **__extra_info, int __flags) __THROW __nonnull ((2)); /* These are the possible values for the FLAGS argument to `dladdr1'. This indicates what extra information is stored at *EXTRA_INFO. @@ -120,7 +122,8 @@ enum On success, returns zero. On failure, returns -1 and records an error message to be fetched with `dlerror'. */ extern int dlinfo (void *__restrict __handle, - int __request, void *__restrict __arg); + int __request, void *__restrict __arg) + __THROW __nonnull ((1, 3)); /* These are the possible values for the REQUEST argument to `dlinfo'. */ enum |