Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F145151837
D9004.id23477.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D9004.id23477.diff
View Options
Index: include/err.h
===================================================================
--- include/err.h
+++ include/err.h
@@ -58,7 +58,7 @@
void warnx(const char *, ...) __printflike(1, 2);
void vwarnx(const char *, __va_list) __printflike(1, 0);
void err_set_file(void *);
-void err_set_exit(void (*)(int));
+void err_set_exit(void (* _Nullable)(int));
__END_DECLS
#endif /* !_ERR_H_ */
Index: include/signal.h
===================================================================
--- include/signal.h
+++ include/signal.h
@@ -104,7 +104,7 @@
int sigignore(int);
int sigpause(int);
int sigrelse(int);
-void (*sigset(int, void (*)(int)))(int);
+void (* _Nullable sigset(int, void (* _Nullable)(int)))(int);
int xsi_sigpause(int);
#endif
Index: include/stdio.h
===================================================================
--- include/stdio.h
+++ include/stdio.h
@@ -123,10 +123,10 @@
/* operations */
void *_cookie; /* (*) cookie passed to io functions */
- int (*_close)(void *);
- int (*_read)(void *, char *, int);
- fpos_t (*_seek)(void *, fpos_t, int);
- int (*_write)(void *, const char *, int);
+ int (* _Nullable _close)(void *);
+ int (* _Nullable _read)(void *, char *, int);
+ fpos_t (* _Nullable _seek)(void *, fpos_t, int);
+ int (* _Nullable _write)(void *, const char *, int);
/* separate buffer for long sequences of ungetc() */
struct __sbuf _ub; /* ungetc buffer */
@@ -390,10 +390,10 @@
* Stdio function-access interface.
*/
FILE *funopen(const void *,
- int (*)(void *, char *, int),
- int (*)(void *, const char *, int),
- fpos_t (*)(void *, fpos_t, int),
- int (*)(void *));
+ int (* _Nullable)(void *, char *, int),
+ int (* _Nullable)(void *, const char *, int),
+ fpos_t (* _Nullable)(void *, fpos_t, int),
+ int (* _Nullable)(void *));
#define fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0)
#define fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0)
Index: include/stdlib.h
===================================================================
--- include/stdlib.h
+++ include/stdlib.h
@@ -81,12 +81,12 @@
_Noreturn void abort(void);
int abs(int) __pure2;
-int atexit(void (*)(void));
+int atexit(void (* _Nonnull)(void));
double atof(const char *);
int atoi(const char *);
long atol(const char *);
void *bsearch(const void *, const void *, size_t,
- size_t, int (*)(const void *, const void *));
+ size_t, int (*)(const void * _Nonnull, const void *));
void *calloc(size_t, size_t) __malloc_like __result_use_check
__alloc_size(1) __alloc_size(2);
div_t div(int, int) __pure2;
@@ -100,7 +100,7 @@
size_t mbstowcs(wchar_t * __restrict , const char * __restrict, size_t);
int mbtowc(wchar_t * __restrict, const char * __restrict, size_t);
void qsort(void *, size_t, size_t,
- int (*)(const void *, const void *));
+ int (* _Nonnull)(const void *, const void *));
int rand(void);
void *realloc(void *, size_t) __result_use_check __alloc_size(2);
void srand(unsigned);
@@ -256,9 +256,9 @@
__uint32_t
arc4random_uniform(__uint32_t);
#ifdef __BLOCKS__
-int atexit_b(void (^)(void));
+int atexit_b(void (^ _Nonnull)(void));
void *bsearch_b(const void *, const void *, size_t,
- size_t, int (^)(const void *, const void *));
+ size_t, int (^ _Nonnull)(const void *, const void *));
#endif
char *getbsize(int *, long *);
/* getcap(3) functions */
@@ -282,11 +282,13 @@
const char *
getprogname(void);
-int heapsort(void *, size_t, size_t, int (*)(const void *, const void *));
+int heapsort(void *, size_t, size_t,
+ int (* _Nonnull)(const void *, const void *));
#ifdef __BLOCKS__
-int heapsort_b(void *, size_t, size_t, int (^)(const void *, const void *));
+int heapsort_b(void *, size_t, size_t,
+ int (^ _Nonnull)(const void *, const void *));
void qsort_b(void *, size_t, size_t,
- int (^)(const void *, const void *));
+ int (^ _Nonnull)(const void *, const void *));
#endif
int l64a_r(long, char *, int);
int mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
Index: sys/sys/cdefs.h
===================================================================
--- sys/sys/cdefs.h
+++ sys/sys/cdefs.h
@@ -804,6 +804,16 @@
#endif
/*
+ * Nullability qualifiers: currently only supported by Clang.
+ */
+#if !__has_attribute(_Nonnull)
+#define _Nonnull
+#endif
+#if !__has_attribute(_Nullable)
+#define _Nullable
+#endif
+
+/*
* Type Safety Checking
*
* Clang provides additional attributes to enable checking type safety
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Feb 17, 12:38 PM (2 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28813557
Default Alt Text
D9004.id23477.diff (4 KB)
Attached To
Mode
D9004: Addition of clang nullability attributes.
Attached
Detach File
Event Timeline
Log In to Comment