aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--dirent/dirent.h56
-rw-r--r--dlfcn/dlfcn.h17
3 files changed, 47 insertions, 31 deletions
diff --git a/ChangeLog b/ChangeLog
index 96f6073..18263fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 173d0eb..a5e8a00 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 9383c23..c3943b3 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