diff options
author | Elliott Hughes <enh@google.com> | 2017-08-01 22:46:40 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-08-01 22:46:40 +0000 |
commit | fe3d58f49f1047b687646e2e957aa2927838f8dc (patch) | |
tree | d4007a2b3aad8dae4f7f45e627b239295186d664 | |
parent | 1bac61f09f46ac3c0a73387613dfd20023e39772 (diff) | |
parent | 3f66e74b903905e763e104396aff52a81718cfde (diff) | |
download | bionic-fe3d58f49f1047b687646e2e957aa2927838f8dc.tar.gz |
Merge "Remove nullability specifications."
-rw-r--r-- | libc/async_safe/include/async_safe/log.h | 35 | ||||
-rw-r--r-- | libc/include/bits/fortify/stdio.h | 15 | ||||
-rw-r--r-- | libc/include/bits/fortify/string.h | 81 | ||||
-rw-r--r-- | libc/include/dlfcn.h | 17 | ||||
-rw-r--r-- | libc/include/error.h | 6 | ||||
-rw-r--r-- | libc/include/pthread.h | 176 | ||||
-rw-r--r-- | libc/include/signal.h | 19 | ||||
-rw-r--r-- | libc/include/stdio.h | 49 | ||||
-rw-r--r-- | libc/include/string.h | 149 | ||||
-rw-r--r-- | libc/include/sys/cdefs.h | 33 | ||||
-rw-r--r-- | libc/include/sys/signalfd.h | 2 | ||||
-rw-r--r-- | libc/include/sys/statvfs.h | 8 | ||||
-rw-r--r-- | libc/include/sys/swap.h | 4 | ||||
-rw-r--r-- | libc/include/sys/vfs.h | 8 | ||||
-rw-r--r-- | libc/include/syslog.h | 10 | ||||
-rw-r--r-- | libc/include/wchar.h | 13 |
16 files changed, 242 insertions, 383 deletions
diff --git a/libc/async_safe/include/async_safe/log.h b/libc/async_safe/include/async_safe/log.h index 6fdb84f0d..2f5474292 100644 --- a/libc/async_safe/include/async_safe/log.h +++ b/libc/async_safe/include/async_safe/log.h @@ -78,14 +78,8 @@ enum { // These functions do return, so callers that want to abort, must do so themselves, // or use the macro above. -void async_safe_fatal_no_abort(const char* _Nonnull fmt, ...) __printflike(1, 2); -#if defined(__arm__) || defined(__aarch64__) || defined(__x86_64__) -void async_safe_fatal_va_list( - const char* _Nullable prefix, const char* _Nonnull fmt, va_list); -#else // defined(__mips__) || defined(__i386__) -void async_safe_fatal_va_list( - const char* _Nullable prefix, const char* _Nonnull fmt, va_list _Nonnull); -#endif +void async_safe_fatal_no_abort(const char* fmt, ...) __printflike(1, 2); +void async_safe_fatal_va_list(const char* prefix, const char* fmt, va_list args); // // Formatting routines for the C library's internal debugging. @@ -93,26 +87,13 @@ void async_safe_fatal_va_list( // These are async signal safe, so they can be called from signal handlers. // -int async_safe_format_buffer(char* _Nonnull buf, size_t size, const char* _Nonnull fmt, ...) __printflike(3, 4); - -#if defined(__arm__) || defined(__aarch64__) || defined(__x86_64__) -int async_safe_format_buffer_va_list( - char* _Nonnull buffer, size_t buffer_size, const char* _Nonnull format, va_list args); -#else // defined(__mips__) || defined(__i386__) -int async_safe_format_buffer_va_list( - char* _Nonnull buffer, size_t buffer_size, const char* _Nonnull format, va_list _Nonnull args); -#endif +int async_safe_format_buffer(char* buf, size_t size, const char* fmt, ...) __printflike(3, 4); +int async_safe_format_buffer_va_list(char* buffer, size_t buffer_size, const char* format, va_list args); -int async_safe_format_fd(int fd, const char* _Nonnull format , ...) __printflike(2, 3); -int async_safe_format_log(int pri, const char* _Nonnull tag, const char* _Nonnull fmt, ...) __printflike(3, 4); -#if defined(__arm__) || defined(__aarch64__) || defined(__x86_64__) -int async_safe_format_log_va_list( - int pri, const char* _Nonnull tag, const char* _Nonnull fmt, va_list ap); -#else // defined(__mips__) || defined(__i386__) -int async_safe_format_log_va_list( - int pri, const char* _Nonnull tag, const char* _Nonnull fmt, va_list _Nonnull ap); -#endif -int async_safe_write_log(int pri, const char* _Nonnull tag, const char* _Nonnull msg); +int async_safe_format_fd(int fd, const char* format , ...) __printflike(2, 3); +int async_safe_format_log(int pri, const char* tag, const char* fmt, ...) __printflike(3, 4); +int async_safe_format_log_va_list( int pri, const char* tag, const char* fmt, va_list ap); +int async_safe_write_log(int pri, const char* tag, const char* msg); #define CHECK(predicate) \ do { \ diff --git a/libc/include/bits/fortify/stdio.h b/libc/include/bits/fortify/stdio.h index a36ac3294..4acefd73d 100644 --- a/libc/include/bits/fortify/stdio.h +++ b/libc/include/bits/fortify/stdio.h @@ -39,13 +39,12 @@ size_t __fwrite_chk(const void*, size_t, size_t, FILE*, size_t) __INTRODUCED_IN( #if __ANDROID_API__ >= __ANDROID_API_J_MR1__ __BIONIC_FORTIFY_INLINE __printflike(3, 0) int vsnprintf(char *const __pass_object_size dest, size_t size, - const char *_Nonnull format, va_list ap) __overloadable { + const char * format, va_list ap) __overloadable { return __builtin___vsnprintf_chk(dest, size, 0, __bos(dest), format, ap); } __BIONIC_FORTIFY_INLINE __printflike(2, 0) -int vsprintf(char *const __pass_object_size dest, const char *_Nonnull format, - va_list ap) __overloadable { +int vsprintf(char *const __pass_object_size dest, const char* format, va_list ap) __overloadable { return __builtin___vsprintf_chk(dest, 0, __bos(dest), format, ap); } #endif /* __ANDROID_API__ >= __ANDROID_API_J_MR1__ */ @@ -184,15 +183,13 @@ __errordecl(__fwrite_overflow, "fwrite called with overflowing size * count"); #if __ANDROID_API__ >= __ANDROID_API_J_MR1__ __BIONIC_FORTIFY_INLINE __printflike(3, 4) -int snprintf(char* dest, size_t size, const char* _Nonnull format, ...) { - return __builtin___snprintf_chk(dest, size, 0, __bos(dest), format, - __builtin_va_arg_pack()); +int snprintf(char* dest, size_t size, const char* format, ...) { + return __builtin___snprintf_chk(dest, size, 0, __bos(dest), format, __builtin_va_arg_pack()); } __BIONIC_FORTIFY_INLINE __printflike(2, 3) -int sprintf(char* dest, const char* _Nonnull format, ...) { - return __builtin___sprintf_chk(dest, 0, __bos(dest), format, - __builtin_va_arg_pack()); +int sprintf(char* dest, const char* format, ...) { + return __builtin___sprintf_chk(dest, 0, __bos(dest), format, __builtin_va_arg_pack()); } #endif /* __ANDROID_API__ >= __ANDROID_API_J_MR1__ */ diff --git a/libc/include/bits/fortify/string.h b/libc/include/bits/fortify/string.h index 2fe48d4a5..0c1999bc8 100644 --- a/libc/include/bits/fortify/string.h +++ b/libc/include/bits/fortify/string.h @@ -30,14 +30,12 @@ #error "Never include this file directly; instead, include <string.h>" #endif -void* __memchr_chk(const void* _Nonnull, int, size_t, size_t) __INTRODUCED_IN(23); -void* __memrchr_chk(const void* _Nonnull, int, size_t, size_t) __INTRODUCED_IN(23); -char* __stpncpy_chk2(char* _Nonnull, const char* _Nonnull, size_t, size_t, size_t) - __INTRODUCED_IN(21); -char* __strncpy_chk2(char* _Nonnull, const char* _Nonnull, size_t, size_t, size_t) - __INTRODUCED_IN(21); -size_t __strlcpy_chk(char* _Nonnull, const char* _Nonnull, size_t, size_t) __INTRODUCED_IN(17); -size_t __strlcat_chk(char* _Nonnull, const char* _Nonnull, size_t, size_t) __INTRODUCED_IN(17); +void* __memchr_chk(const void*, int, size_t, size_t) __INTRODUCED_IN(23); +void* __memrchr_chk(const void*, int, size_t, size_t) __INTRODUCED_IN(23); +char* __stpncpy_chk2(char*, const char*, size_t, size_t, size_t) __INTRODUCED_IN(21); +char* __strncpy_chk2(char*, const char*, size_t, size_t, size_t) __INTRODUCED_IN(21); +size_t __strlcpy_chk(char*, const char*, size_t, size_t) __INTRODUCED_IN(17); +size_t __strlcat_chk(char*, const char*, size_t, size_t) __INTRODUCED_IN(17); /* Only used with FORTIFY, but some headers that need it undef FORTIFY, so we * have the definition out here. @@ -49,47 +47,42 @@ struct __bionic_zero_size_is_okay_t {}; // trickery... #if __ANDROID_API__ >= __ANDROID_API_J_MR1__ __BIONIC_FORTIFY_INLINE -void* memcpy(void* _Nonnull const dst __pass_object_size0, const void* _Nonnull src, size_t copy_amount) +void* memcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount) __overloadable { return __builtin___memcpy_chk(dst, src, copy_amount, __bos0(dst)); } __BIONIC_FORTIFY_INLINE -void* memmove(void* const _Nonnull dst __pass_object_size0, const void* _Nonnull src, size_t len) - __overloadable { +void* memmove(void* const dst __pass_object_size0, const void* src, size_t len) __overloadable { return __builtin___memmove_chk(dst, src, len, __bos0(dst)); } #endif /* __ANDROID_API__ >= __ANDROID_API_J_MR1__ */ #if __ANDROID_API__ >= __ANDROID_API_L__ __BIONIC_FORTIFY_INLINE -char* stpcpy(char* _Nonnull const dst __pass_object_size, const char* _Nonnull src) - __overloadable { +char* stpcpy(char* const dst __pass_object_size, const char* src) __overloadable { return __builtin___stpcpy_chk(dst, src, __bos(dst)); } #endif /* __ANDROID_API__ >= __ANDROID_API_L__ */ #if __ANDROID_API__ >= __ANDROID_API_J_MR1__ __BIONIC_FORTIFY_INLINE -char* strcpy(char* _Nonnull const dst __pass_object_size, const char* _Nonnull src) - __overloadable { +char* strcpy(char* const dst __pass_object_size, const char* src) __overloadable { return __builtin___strcpy_chk(dst, src, __bos(dst)); } __BIONIC_FORTIFY_INLINE -char* strcat(char* _Nonnull const dst __pass_object_size, const char* _Nonnull src) - __overloadable { +char* strcat(char* const dst __pass_object_size, const char* src) __overloadable { return __builtin___strcat_chk(dst, src, __bos(dst)); } __BIONIC_FORTIFY_INLINE -char* strncat(char* const _Nonnull dst __pass_object_size, const char* _Nonnull src, size_t n) - __overloadable { +char* strncat(char* const dst __pass_object_size, const char* src, size_t n) __overloadable { return __builtin___strncat_chk(dst, src, n, __bos(dst)); } __BIONIC_FORTIFY_INLINE -void* memset(void* const _Nonnull s __pass_object_size0, int c, size_t n) __overloadable { +void* memset(void* const s __pass_object_size0, int c, size_t n) __overloadable { return __builtin___memset_chk(s, c, n, __bos0(s)); } #endif /* __ANDROID_API__ >= __ANDROID_API_J_MR1__ */ @@ -102,10 +95,6 @@ void* memset(void* const _Nonnull s __pass_object_size0, int c, size_t n) __over __bos0(dst) < (n), "selected when the buffer is too small") \ __errorattr(#name " called with " what " bigger than buffer") -/* - * N.B. _Nonnull isn't necessary on params, since these functions just emit - * errors. - */ __BIONIC_ERROR_FUNCTION_VISIBILITY void* memcpy(void* dst, const void* src, size_t copy_amount) __overloadable __error_if_overflows_dst(memcpy, dst, copy_amount, "size"); @@ -128,7 +117,7 @@ char* strcpy(char* dst, const char* src) __overloadable #if __ANDROID_API__ >= __ANDROID_API_M__ __BIONIC_FORTIFY_INLINE -void* memchr(const void* const _Nonnull s __pass_object_size, int c, size_t n) +void* memchr(const void* const s __pass_object_size, int c, size_t n) __overloadable { size_t bos = __bos(s); @@ -140,7 +129,7 @@ void* memchr(const void* const _Nonnull s __pass_object_size, int c, size_t n) } __BIONIC_FORTIFY_INLINE -void* memrchr(const void* const _Nonnull s __pass_object_size, int c, size_t n) +void* memrchr(const void* const s __pass_object_size, int c, size_t n) __overloadable { size_t bos = __bos(s); @@ -154,7 +143,7 @@ void* memrchr(const void* const _Nonnull s __pass_object_size, int c, size_t n) #if __ANDROID_API__ >= __ANDROID_API_L__ __BIONIC_FORTIFY_INLINE -char* stpncpy(char* const _Nonnull dst __pass_object_size, const char* const _Nonnull src __pass_object_size, size_t n) +char* stpncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n) __overloadable { size_t bos_dst = __bos(dst); size_t bos_src = __bos(src); @@ -168,7 +157,7 @@ char* stpncpy(char* const _Nonnull dst __pass_object_size, const char* const _No } __BIONIC_FORTIFY_INLINE -char* strncpy(char* const _Nonnull dst __pass_object_size, const char* const _Nonnull src __pass_object_size, size_t n) +char* strncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n) __overloadable { size_t bos_dst = __bos(dst); size_t bos_src = __bos(src); @@ -184,7 +173,7 @@ char* strncpy(char* const _Nonnull dst __pass_object_size, const char* const _No #if __ANDROID_API__ >= __ANDROID_API_J_MR1__ __BIONIC_FORTIFY_INLINE -size_t strlcpy(char* const _Nonnull dst __pass_object_size, const char *_Nonnull src, size_t size) +size_t strlcpy(char* const dst __pass_object_size, const char* src, size_t size) __overloadable { size_t bos = __bos(dst); @@ -196,7 +185,7 @@ size_t strlcpy(char* const _Nonnull dst __pass_object_size, const char *_Nonnull } __BIONIC_FORTIFY_INLINE -size_t strlcat(char* const _Nonnull dst __pass_object_size, const char* _Nonnull src, size_t size) +size_t strlcat(char* const dst __pass_object_size, const char* src, size_t size) __overloadable { size_t bos = __bos(dst); @@ -214,14 +203,14 @@ size_t strlcat(char* const _Nonnull dst __pass_object_size, const char* _Nonnull * because it's large. */ __BIONIC_FORTIFY_INLINE -size_t strlen(const char* const _Nonnull s __pass_object_size) +size_t strlen(const char* const s __pass_object_size) __overloadable __enable_if(__builtin_strlen(s) != -1ULL, "enabled if s is a known good string.") { return __builtin_strlen(s); } __BIONIC_FORTIFY_INLINE -size_t strlen(const char* const _Nonnull s __pass_object_size0) +size_t strlen(const char* const s __pass_object_size0) __overloadable { size_t bos = __bos0(s); @@ -236,8 +225,7 @@ size_t strlen(const char* const _Nonnull s __pass_object_size0) #if __ANDROID_API__ >= __ANDROID_API_J_MR2__ __BIONIC_FORTIFY_INLINE -char* strchr(const char* const _Nonnull s __pass_object_size, int c) - __overloadable { +char* strchr(const char* const s __pass_object_size, int c) __overloadable { size_t bos = __bos(s); if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) { @@ -248,8 +236,7 @@ char* strchr(const char* const _Nonnull s __pass_object_size, int c) } __BIONIC_FORTIFY_INLINE -char* strrchr(const char* const _Nonnull s __pass_object_size, int c) - __overloadable { +char* strrchr(const char* const s __pass_object_size, int c) __overloadable { size_t bos = __bos(s); if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) { @@ -267,12 +254,12 @@ char* strrchr(const char* const _Nonnull s __pass_object_size, int c) * but we should also provide a FORTIFY'ed escape hatch. */ __BIONIC_ERROR_FUNCTION_VISIBILITY -void* memset(void* _Nonnull s, int c, size_t n, struct __bionic_zero_size_is_okay_t ok) +void* memset(void* s, int c, size_t n, struct __bionic_zero_size_is_okay_t ok) __overloadable __error_if_overflows_dst(memset, s, n, "size"); __BIONIC_FORTIFY_INLINE -void* memset(void* const _Nonnull s __pass_object_size0, int c, size_t n, struct __bionic_zero_size_is_okay_t ok __attribute__((unused))) +void* memset(void* const s __pass_object_size0, int c, size_t n, struct __bionic_zero_size_is_okay_t ok __attribute__((unused))) __overloadable { return __builtin___memset_chk(s, c, n, __bos0(s)); } @@ -282,7 +269,7 @@ extern struct __bionic_zero_size_is_okay_t __bionic_zero_size_is_okay; * flipping size + count will do nothing. */ __BIONIC_ERROR_FUNCTION_VISIBILITY -void* memset(void* _Nonnull s, int c, size_t n) __overloadable +void* memset(void* s, int c, size_t n) __overloadable __enable_if(c && !n, "selected when we'll set zero bytes") __RENAME_CLANG(memset) __warnattr_real("will set 0 bytes; maybe the arguments got flipped? " @@ -305,7 +292,7 @@ __errordecl(__memrchr_buf_size_error, "memrchr called with size bigger than buff #if __ANDROID_API__ >= __ANDROID_API_M__ __BIONIC_FORTIFY_INLINE -void* memchr(const void *_Nonnull s __pass_object_size, int c, size_t n) { +void* memchr(const void* s __pass_object_size, int c, size_t n) { size_t bos = __bos(s); if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) { @@ -345,7 +332,7 @@ void* memrchr(const void* s, int c, size_t n) { #if __ANDROID_API__ >= __ANDROID_API_L__ __BIONIC_FORTIFY_INLINE -char* stpncpy(char* _Nonnull dst, const char* _Nonnull src, size_t n) { +char* stpncpy(char* dst, const char* src, size_t n) { size_t bos_dst = __bos(dst); size_t bos_src = __bos(src); @@ -366,7 +353,7 @@ char* stpncpy(char* _Nonnull dst, const char* _Nonnull src, size_t n) { } __BIONIC_FORTIFY_INLINE -char* strncpy(char* _Nonnull dst, const char* _Nonnull src, size_t n) { +char* strncpy(char* dst, const char* src, size_t n) { size_t bos_dst = __bos(dst); size_t bos_src = __bos(src); @@ -389,7 +376,7 @@ char* strncpy(char* _Nonnull dst, const char* _Nonnull src, size_t n) { #if __ANDROID_API__ >= __ANDROID_API_J_MR1__ __BIONIC_FORTIFY_INLINE -size_t strlcpy(char* _Nonnull dst __pass_object_size, const char* _Nonnull src, size_t size) { +size_t strlcpy(char* dst __pass_object_size, const char* src, size_t size) { size_t bos = __bos(dst); // Compiler doesn't know destination size. Don't call __strlcpy_chk @@ -407,7 +394,7 @@ size_t strlcpy(char* _Nonnull dst __pass_object_size, const char* _Nonnull src, } __BIONIC_FORTIFY_INLINE -size_t strlcat(char* _Nonnull dst, const char* _Nonnull src, size_t size) { +size_t strlcat(char* dst, const char* src, size_t size) { size_t bos = __bos(dst); // Compiler doesn't know destination size. Don't call __strlcat_chk @@ -425,7 +412,7 @@ size_t strlcat(char* _Nonnull dst, const char* _Nonnull src, size_t size) { } __BIONIC_FORTIFY_INLINE -size_t strlen(const char* _Nonnull s) __overloadable { +size_t strlen(const char* s) __overloadable { size_t bos = __bos(s); // Compiler doesn't know destination size. Don't call __strlen_chk @@ -444,7 +431,7 @@ size_t strlen(const char* _Nonnull s) __overloadable { #if __ANDROID_API__ >= __ANDROID_API_J_MR2__ __BIONIC_FORTIFY_INLINE -char* strchr(const char* _Nonnull s, int c) { +char* strchr(const char* s, int c) { size_t bos = __bos(s); // Compiler doesn't know destination size. Don't call __strchr_chk @@ -461,7 +448,7 @@ char* strchr(const char* _Nonnull s, int c) { } __BIONIC_FORTIFY_INLINE -char* strrchr(const char* _Nonnull s, int c) { +char* strrchr(const char* s, int c) { size_t bos = __bos(s); // Compiler doesn't know destination size. Don't call __strrchr_chk diff --git a/libc/include/dlfcn.h b/libc/include/dlfcn.h index 018482deb..76bbdb81f 100644 --- a/libc/include/dlfcn.h +++ b/libc/include/dlfcn.h @@ -34,11 +34,6 @@ __BEGIN_DECLS -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnullability-completeness" -#endif - typedef struct { /* Pathname of shared object that contains address. */ const char* dli_fname; @@ -51,11 +46,11 @@ typedef struct { } Dl_info; void* dlopen(const char* filename, int flag); -int dlclose(void* _Nonnull handle); +int dlclose(void* handle); char* dlerror(void); -void* dlsym(void* handle, const char* _Nonnull symbol); -void* dlvsym(void* handle, const char* _Nonnull symbol, const char* _Nonnull version) __INTRODUCED_IN(24); -int dladdr(const void* addr, Dl_info* _Nonnull info); +void* dlsym(void* handle, const char* symbol); +void* dlvsym(void* handle, const char* symbol, const char* version) __INTRODUCED_IN(24); +int dladdr(const void* addr, Dl_info* info); #define RTLD_LOCAL 0 #define RTLD_LAZY 0x00001 @@ -80,10 +75,6 @@ int dladdr(const void* addr, Dl_info* _Nonnull info); #define RTLD_NEXT __BIONIC_CAST(reinterpret_cast, void*, 0xfffffffe) #endif -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - __END_DECLS #endif /* __DLFCN_H */ diff --git a/libc/include/error.h b/libc/include/error.h index 05ce35dee..b145afc0b 100644 --- a/libc/include/error.h +++ b/libc/include/error.h @@ -33,12 +33,12 @@ __BEGIN_DECLS -extern void (* _Nullable error_print_progname)(void) __INTRODUCED_IN(23); +extern void (*error_print_progname)(void) __INTRODUCED_IN(23); extern unsigned int error_message_count __INTRODUCED_IN(23); extern int error_one_per_line __INTRODUCED_IN(23); -void error(int, int, const char* _Nonnull, ...) __printflike(3, 4) __INTRODUCED_IN(23); -void error_at_line(int, int, const char* _Nullable, unsigned int, const char* _Nonnull, ...) +void error(int, int, const char*, ...) __printflike(3, 4) __INTRODUCED_IN(23); +void error_at_line(int, int, const char*, unsigned int, const char*, ...) __printflike(5, 6) __INTRODUCED_IN(23); __END_DECLS diff --git a/libc/include/pthread.h b/libc/include/pthread.h index 7dec3cc39..7165738d6 100644 --- a/libc/include/pthread.h +++ b/libc/include/pthread.h @@ -38,11 +38,6 @@ __BEGIN_DECLS -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnullability-completeness" -#endif - enum { PTHREAD_MUTEX_NORMAL = 0, PTHREAD_MUTEX_RECURSIVE = 1, @@ -90,51 +85,48 @@ enum { int pthread_atfork(void (*)(void), void (*)(void), void (*)(void)) __INTRODUCED_IN(12); -int pthread_attr_destroy(pthread_attr_t* _Nonnull); -int pthread_attr_getdetachstate(const pthread_attr_t* _Nonnull, int* _Nonnull); -int pthread_attr_getguardsize(const pthread_attr_t* _Nonnull, size_t* _Nonnull); -int pthread_attr_getschedparam(const pthread_attr_t* _Nonnull, struct sched_param* _Nonnull); -int pthread_attr_getschedpolicy(const pthread_attr_t* _Nonnull, int* _Nonnull); -int pthread_attr_getscope(const pthread_attr_t* _Nonnull, int* _Nonnull); -int pthread_attr_getstack(const pthread_attr_t* _Nonnull, void** _Nonnull, size_t* _Nonnull); -int pthread_attr_getstacksize(const pthread_attr_t* _Nonnull, size_t* _Nonnull); -int pthread_attr_init(pthread_attr_t* _Nonnull); -int pthread_attr_setdetachstate(pthread_attr_t* _Nonnull, int); -int pthread_attr_setguardsize(pthread_attr_t* _Nonnull, size_t); -int pthread_attr_setschedparam(pthread_attr_t* _Nonnull, const struct sched_param* _Nonnull); -int pthread_attr_setschedpolicy(pthread_attr_t* _Nonnull, int); -int pthread_attr_setscope(pthread_attr_t* _Nonnull, int); -int pthread_attr_setstack(pthread_attr_t* _Nonnull, void*, size_t); -int pthread_attr_setstacksize(pthread_attr_t* _Nonnull, size_t); - -int pthread_condattr_destroy(pthread_condattr_t* _Nonnull); -int pthread_condattr_getclock(const pthread_condattr_t* _Nonnull, clockid_t* _Nonnull) - __INTRODUCED_IN(21); -int pthread_condattr_getpshared(const pthread_condattr_t* _Nonnull, int* _Nonnull); -int pthread_condattr_init(pthread_condattr_t* _Nonnull); -int pthread_condattr_setclock(pthread_condattr_t* _Nonnull, clockid_t) __INTRODUCED_IN(21); -int pthread_condattr_setpshared(pthread_condattr_t* _Nonnull, int); - -int pthread_cond_broadcast(pthread_cond_t* _Nonnull); -int pthread_cond_destroy(pthread_cond_t* _Nonnull); -int pthread_cond_init(pthread_cond_t* _Nonnull, const pthread_condattr_t*); -int pthread_cond_signal(pthread_cond_t* _Nonnull); -int pthread_cond_timedwait(pthread_cond_t* _Nonnull, pthread_mutex_t* _Nonnull, - const struct timespec* _Nonnull); -int pthread_cond_wait(pthread_cond_t* _Nonnull, pthread_mutex_t* _Nonnull); - -int pthread_create(pthread_t* _Nonnull, pthread_attr_t const*, - void* (* _Nonnull start_routine)(void*), void*); +int pthread_attr_destroy(pthread_attr_t*); +int pthread_attr_getdetachstate(const pthread_attr_t*, int*); +int pthread_attr_getguardsize(const pthread_attr_t*, size_t*); +int pthread_attr_getschedparam(const pthread_attr_t*, struct sched_param*); +int pthread_attr_getschedpolicy(const pthread_attr_t*, int*); +int pthread_attr_getscope(const pthread_attr_t*, int*); +int pthread_attr_getstack(const pthread_attr_t*, void**, size_t*); +int pthread_attr_getstacksize(const pthread_attr_t*, size_t*); +int pthread_attr_init(pthread_attr_t*); +int pthread_attr_setdetachstate(pthread_attr_t*, int); +int pthread_attr_setguardsize(pthread_attr_t*, size_t); +int pthread_attr_setschedparam(pthread_attr_t*, const struct sched_param*); +int pthread_attr_setschedpolicy(pthread_attr_t*, int); +int pthread_attr_setscope(pthread_attr_t*, int); +int pthread_attr_setstack(pthread_attr_t*, void*, size_t); +int pthread_attr_setstacksize(pthread_attr_t*, size_t); + +int pthread_condattr_destroy(pthread_condattr_t*); +int pthread_condattr_getclock(const pthread_condattr_t*, clockid_t*) __INTRODUCED_IN(21); +int pthread_condattr_getpshared(const pthread_condattr_t*, int*); +int pthread_condattr_init(pthread_condattr_t*); +int pthread_condattr_setclock(pthread_condattr_t*, clockid_t) __INTRODUCED_IN(21); +int pthread_condattr_setpshared(pthread_condattr_t*, int); + +int pthread_cond_broadcast(pthread_cond_t*); +int pthread_cond_destroy(pthread_cond_t*); +int pthread_cond_init(pthread_cond_t*, const pthread_condattr_t*); +int pthread_cond_signal(pthread_cond_t*); +int pthread_cond_timedwait(pthread_cond_t*, pthread_mutex_t*, const struct timespec*); +int pthread_cond_wait(pthread_cond_t*, pthread_mutex_t*); + +int pthread_create(pthread_t*, pthread_attr_t const*, void* (*start_routine)(void*), void*); int pthread_detach(pthread_t); void pthread_exit(void*) __noreturn; int pthread_equal(pthread_t, pthread_t); -int pthread_getattr_np(pthread_t, pthread_attr_t* _Nonnull); +int pthread_getattr_np(pthread_t, pthread_attr_t*); -int pthread_getcpuclockid(pthread_t, clockid_t* _Nonnull); +int pthread_getcpuclockid(pthread_t, clockid_t*); -int pthread_getschedparam(pthread_t, int* _Nonnull, struct sched_param* _Nonnull); +int pthread_getschedparam(pthread_t, int*, struct sched_param*); void* pthread_getspecific(pthread_key_t); @@ -142,23 +134,23 @@ pid_t pthread_gettid_np(pthread_t) __INTRODUCED_IN(21); int pthread_join(pthread_t, void**); -int pthread_key_create(pthread_key_t* _Nonnull, void (*)(void*)); +int pthread_key_create(pthread_key_t*, void (*)(void*)); int pthread_key_delete(pthread_key_t); -int pthread_mutexattr_destroy(pthread_mutexattr_t* _Nonnull); -int pthread_mutexattr_getpshared(const pthread_mutexattr_t* _Nonnull, int* _Nonnull); -int pthread_mutexattr_gettype(const pthread_mutexattr_t* _Nonnull, int* _Nonnull); -int pthread_mutexattr_init(pthread_mutexattr_t* _Nonnull); -int pthread_mutexattr_setpshared(pthread_mutexattr_t* _Nonnull, int); -int pthread_mutexattr_settype(pthread_mutexattr_t* _Nonnull, int); - -int pthread_mutex_destroy(pthread_mutex_t* _Nonnull); -int pthread_mutex_init(pthread_mutex_t* _Nonnull, const pthread_mutexattr_t*); -int pthread_mutex_lock(pthread_mutex_t* _Nonnull); -int pthread_mutex_timedlock(pthread_mutex_t* _Nonnull, const struct timespec* _Nonnull) +int pthread_mutexattr_destroy(pthread_mutexattr_t*); +int pthread_mutexattr_getpshared(const pthread_mutexattr_t*, int*); +int pthread_mutexattr_gettype(const pthread_mutexattr_t*, int*); +int pthread_mutexattr_init(pthread_mutexattr_t*); +int pthread_mutexattr_setpshared(pthread_mutexattr_t*, int); +int pthread_mutexattr_settype(pthread_mutexattr_t*, int); + +int pthread_mutex_destroy(pthread_mutex_t*); +int pthread_mutex_init(pthread_mutex_t*, const pthread_mutexattr_t*); +int pthread_mutex_lock(pthread_mutex_t*); +int pthread_mutex_timedlock(pthread_mutex_t*, const struct timespec* ) __INTRODUCED_IN(21); -int pthread_mutex_trylock(pthread_mutex_t* _Nonnull); -int pthread_mutex_unlock(pthread_mutex_t* _Nonnull); +int pthread_mutex_trylock(pthread_mutex_t*); +int pthread_mutex_unlock(pthread_mutex_t*); #if defined(__LP32__) && __ANDROID_API__ < 21 /* @@ -180,59 +172,59 @@ int pthread_cond_timedwait_relative_np(pthread_cond_t* cond, pthread_mutex_t* mu const struct timespec* reltime); #endif -int pthread_once(pthread_once_t* _Nonnull, void (* _Nonnull init_routine)(void)); +int pthread_once(pthread_once_t*, void (*init_routine)(void)); -int pthread_rwlockattr_init(pthread_rwlockattr_t* _Nonnull); -int pthread_rwlockattr_destroy(pthread_rwlockattr_t* _Nonnull); -int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t* _Nonnull, int* _Nonnull); -int pthread_rwlockattr_setpshared(pthread_rwlockattr_t* _Nonnull, int); -int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t* _Nonnull, int* _Nonnull) +int pthread_rwlockattr_init(pthread_rwlockattr_t*); +int pthread_rwlockattr_destroy(pthread_rwlockattr_t*); +int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t*, int*); +int pthread_rwlockattr_setpshared(pthread_rwlockattr_t*, int); +int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t*, int*) __INTRODUCED_IN(23); -int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t* _Nonnull, int) __INTRODUCED_IN(23); - -int pthread_rwlock_destroy(pthread_rwlock_t* _Nonnull); -int pthread_rwlock_init(pthread_rwlock_t* _Nonnull, const pthread_rwlockattr_t*); -int pthread_rwlock_rdlock(pthread_rwlock_t* _Nonnull); -int pthread_rwlock_timedrdlock(pthread_rwlock_t* _Nonnull, const struct timespec* _Nonnull); -int pthread_rwlock_timedwrlock(pthread_rwlock_t* _Nonnull, const struct timespec* _Nonnull); -int pthread_rwlock_tryrdlock(pthread_rwlock_t* _Nonnull); -int pthread_rwlock_trywrlock(pthread_rwlock_t* _Nonnull); -int pthread_rwlock_unlock(pthread_rwlock_t* _Nonnull); -int pthread_rwlock_wrlock(pthread_rwlock_t* _Nonnull); +int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t*, int) __INTRODUCED_IN(23); + +int pthread_rwlock_destroy(pthread_rwlock_t*); +int pthread_rwlock_init(pthread_rwlock_t*, const pthread_rwlockattr_t*); +int pthread_rwlock_rdlock(pthread_rwlock_t*); +int pthread_rwlock_timedrdlock(pthread_rwlock_t*, const struct timespec*); +int pthread_rwlock_timedwrlock(pthread_rwlock_t*, const struct timespec*); +int pthread_rwlock_tryrdlock(pthread_rwlock_t*); +int pthread_rwlock_trywrlock(pthread_rwlock_t*); +int pthread_rwlock_unlock(pthread_rwlock_t*); +int pthread_rwlock_wrlock(pthread_rwlock_t*); #if __ANDROID_API__ >= __ANDROID_API_N__ -int pthread_barrierattr_init(pthread_barrierattr_t* _Nonnull attr) __INTRODUCED_IN(24); -int pthread_barrierattr_destroy(pthread_barrierattr_t* _Nonnull attr) __INTRODUCED_IN(24); -int pthread_barrierattr_getpshared(const pthread_barrierattr_t* _Nonnull attr, - int* _Nonnull pshared) __INTRODUCED_IN(24); -int pthread_barrierattr_setpshared(pthread_barrierattr_t* _Nonnull attr, int pshared) +int pthread_barrierattr_init(pthread_barrierattr_t* attr) __INTRODUCED_IN(24); +int pthread_barrierattr_destroy(pthread_barrierattr_t* attr) __INTRODUCED_IN(24); +int pthread_barrierattr_getpshared(const pthread_barrierattr_t* attr, + int* pshared) __INTRODUCED_IN(24); +int pthread_barrierattr_setpshared(pthread_barrierattr_t* attr, int pshared) __INTRODUCED_IN(24); #endif #if __ANDROID_API__ >= __ANDROID_API_N__ -int pthread_barrier_init(pthread_barrier_t* _Nonnull, const pthread_barrierattr_t*, unsigned) +int pthread_barrier_init(pthread_barrier_t*, const pthread_barrierattr_t*, unsigned) __INTRODUCED_IN(24); -int pthread_barrier_destroy(pthread_barrier_t* _Nonnull) __INTRODUCED_IN(24); -int pthread_barrier_wait(pthread_barrier_t* _Nonnull) __INTRODUCED_IN(24); +int pthread_barrier_destroy(pthread_barrier_t*) __INTRODUCED_IN(24); +int pthread_barrier_wait(pthread_barrier_t*) __INTRODUCED_IN(24); #endif #if __ANDROID_API__ >= __ANDROID_API_N__ -int pthread_spin_destroy(pthread_spinlock_t* _Nonnull) __INTRODUCED_IN(24); -int pthread_spin_init(pthread_spinlock_t* _Nonnull, int) __INTRODUCED_IN(24); -int pthread_spin_lock(pthread_spinlock_t* _Nonnull) __INTRODUCED_IN(24); -int pthread_spin_trylock(pthread_spinlock_t* _Nonnull) __INTRODUCED_IN(24); -int pthread_spin_unlock(pthread_spinlock_t* _Nonnull) __INTRODUCED_IN(24); +int pthread_spin_destroy(pthread_spinlock_t*) __INTRODUCED_IN(24); +int pthread_spin_init(pthread_spinlock_t*, int) __INTRODUCED_IN(24); +int pthread_spin_lock(pthread_spinlock_t*) __INTRODUCED_IN(24); +int pthread_spin_trylock(pthread_spinlock_t*) __INTRODUCED_IN(24); +int pthread_spin_unlock(pthread_spinlock_t*) __INTRODUCED_IN(24); #endif pthread_t pthread_self(void) __attribute_const__; #if defined(__USE_GNU) -int pthread_getname_np(pthread_t, char* _Nonnull, size_t) __INTRODUCED_IN(26); +int pthread_getname_np(pthread_t, char*, size_t) __INTRODUCED_IN(26); #endif /* TODO: this should be __USE_GNU too. */ -int pthread_setname_np(pthread_t, const char* _Nonnull); +int pthread_setname_np(pthread_t, const char*); -int pthread_setschedparam(pthread_t, int, const struct sched_param* _Nonnull); +int pthread_setschedparam(pthread_t, int, const struct sched_param*); int pthread_setspecific(pthread_key_t, const void*); @@ -262,10 +254,6 @@ void __pthread_cleanup_pop(__pthread_cleanup_t*, int); __pthread_cleanup_pop( &__cleanup, (execute)); \ } while (0); \ -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - __END_DECLS #endif /* _PTHREAD_H_ */ diff --git a/libc/include/signal.h b/libc/include/signal.h index 140032812..89d85fc64 100644 --- a/libc/include/signal.h +++ b/libc/include/signal.h @@ -54,11 +54,6 @@ __BEGIN_DECLS -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnullability-completeness" -#endif - typedef int sig_atomic_t; /* The arm and x86 kernel header files don't define _NSIG. */ @@ -129,10 +124,10 @@ int sigismember(const sigset_t*, int) __INTRODUCED_IN(21); // Implemented as static inlines before 21. #endif -int sigpending(sigset_t* _Nonnull); +int sigpending(sigset_t*); int sigprocmask(int, const sigset_t*, sigset_t*); -int sigsuspend(const sigset_t* _Nonnull); -int sigwait(const sigset_t* _Nonnull, int* _Nonnull); +int sigsuspend(const sigset_t*); +int sigwait(const sigset_t*, int*); int sighold(int) __attribute__((deprecated("use sigprocmask() or pthread_sigmask() instead"))) @@ -161,12 +156,8 @@ int pthread_kill(pthread_t, int); int pthread_sigmask(int, const sigset_t*, sigset_t*); int sigqueue(pid_t, int, const union sigval) __INTRODUCED_IN(23); -int sigtimedwait(const sigset_t* _Nonnull, siginfo_t*, const struct timespec*) __INTRODUCED_IN(23); -int sigwaitinfo(const sigset_t* _Nonnull, siginfo_t*) __INTRODUCED_IN(23); - -#if defined(__clang__) -#pragma clang diagnostic pop -#endif +int sigtimedwait(const sigset_t*, siginfo_t*, const struct timespec*) __INTRODUCED_IN(23); +int sigwaitinfo(const sigset_t*, siginfo_t*) __INTRODUCED_IN(23); __END_DECLS diff --git a/libc/include/stdio.h b/libc/include/stdio.h index a9bb1242a..7e5a97618 100644 --- a/libc/include/stdio.h +++ b/libc/include/stdio.h @@ -52,11 +52,6 @@ __BEGIN_DECLS -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnullability-completeness" -#endif - typedef off_t fpos_t; typedef off64_t fpos64_t; @@ -119,12 +114,12 @@ int fflush(FILE *); int fgetc(FILE *); char *fgets(char *, int, FILE *) __overloadable __RENAME_CLANG(fgets); -int fprintf(FILE * , const char * _Nonnull, ...) __printflike(2, 3); +int fprintf(FILE * , const char *, ...) __printflike(2, 3); int fputc(int, FILE *); int fputs(const char *, FILE *); size_t fread(void *, size_t, size_t, FILE *) __overloadable __RENAME_CLANG(fread); -int fscanf(FILE *, const char * _Nonnull, ...) __scanflike(2, 3); +int fscanf(FILE *, const char *, ...) __scanflike(2, 3); size_t fwrite(const void *, size_t, size_t, FILE *) __overloadable __RENAME_CLANG(fwrite); int getc(FILE *); @@ -133,23 +128,23 @@ ssize_t getdelim(char**, size_t*, int, FILE*) __INTRODUCED_IN(18); ssize_t getline(char**, size_t*, FILE*) __INTRODUCED_IN(18); void perror(const char *); -int printf(const char * _Nonnull, ...) __printflike(1, 2); +int printf(const char *, ...) __printflike(1, 2); int putc(int, FILE *); int putchar(int); int puts(const char *); int remove(const char *); void rewind(FILE *); -int scanf(const char * _Nonnull, ...) __scanflike(1, 2); +int scanf(const char *, ...) __scanflike(1, 2); void setbuf(FILE *, char *); int setvbuf(FILE *, char *, int, size_t); -int sscanf(const char *, const char * _Nonnull, ...) __scanflike(2, 3); +int sscanf(const char *, const char *, ...) __scanflike(2, 3); int ungetc(int, FILE *); -int vfprintf(FILE *, const char * _Nonnull, va_list) __printflike(2, 0); -int vprintf(const char * _Nonnull, va_list) __printflike(1, 0); +int vfprintf(FILE *, const char *, va_list) __printflike(2, 0); +int vprintf(const char *, va_list) __printflike(1, 0); #if __ANDROID_API__ >= 21 -int dprintf(int, const char* _Nonnull, ...) __printflike(2, 3) __INTRODUCED_IN(21); -int vdprintf(int, const char* _Nonnull, va_list) __printflike(2, 0) __INTRODUCED_IN(21); +int dprintf(int, const char*, ...) __printflike(2, 3) __INTRODUCED_IN(21); +int vdprintf(int, const char*, va_list) __printflike(2, 0) __INTRODUCED_IN(21); #else /* * Old versions of Android called these fdprintf and vfdprintf out of fears that the glibc names @@ -158,18 +153,18 @@ int vdprintf(int, const char* _Nonnull, va_list) __printflike(2, 0) __INTRODUCED * Allow users to just use dprintf and vfdprintf on any version by renaming those calls to their * legacy equivalents if needed. */ -int dprintf(int, const char* _Nonnull, ...) __printflike(2, 3) __RENAME(fdprintf); -int vdprintf(int, const char* _Nonnull, va_list) __printflike(2, 0) __RENAME(vfdprintf); +int dprintf(int, const char*, ...) __printflike(2, 3) __RENAME(fdprintf); +int vdprintf(int, const char*, va_list) __printflike(2, 0) __RENAME(vfdprintf); #endif #if (defined(__STDC_VERSION__) && __STDC_VERSION__ < 201112L) || \ (defined(__cplusplus) && __cplusplus <= 201103L) char* gets(char*) __attribute__((deprecated("gets is unsafe, use fgets instead"))); #endif -int sprintf(char*, const char* _Nonnull, ...) +int sprintf(char*, const char*, ...) __printflike(2, 3) __warnattr_strict("sprintf is often misused; please use snprintf") __overloadable __RENAME_CLANG(sprintf); -int vsprintf(char*, const char* _Nonnull, va_list) +int vsprintf(char*, const char*, va_list) __overloadable __printflike(2, 0) __RENAME_CLANG(vsprintf) __warnattr_strict("vsprintf is often misused; please use vsnprintf"); char* tmpnam(char*) @@ -226,13 +221,13 @@ FILE* freopen64(const char*, const char*, FILE*) FILE* tmpfile(void); FILE* tmpfile64(void) __INTRODUCED_IN(24); -int snprintf(char*, size_t, const char* _Nonnull, ...) +int snprintf(char*, size_t, const char*, ...) __printflike(3, 4) __overloadable __RENAME_CLANG(snprintf); -int vfscanf(FILE*, const char* _Nonnull, va_list) __scanflike(2, 0); -int vscanf(const char* _Nonnull , va_list) __scanflike(1, 0); -int vsnprintf(char*, size_t, const char* _Nonnull, va_list) +int vfscanf(FILE*, const char*, va_list) __scanflike(2, 0); +int vscanf(const char* , va_list) __scanflike(1, 0); +int vsnprintf(char*, size_t, const char*, va_list) __printflike(3, 0) __overloadable __RENAME_CLANG(vsnprintf); -int vsscanf(const char* _Nonnull, const char* _Nonnull, va_list) __scanflike(2, 0); +int vsscanf(const char*, const char*, va_list) __scanflike(2, 0); #define L_ctermid 1024 /* size for ctermid() */ char* ctermid(char*) __INTRODUCED_IN(26); @@ -253,12 +248,12 @@ FILE* fmemopen(void*, size_t, const char*) __INTRODUCED_IN(23); FILE* open_memstream(char**, size_t*) __INTRODUCED_IN(23); #if defined(__USE_BSD) || defined(__BIONIC__) /* Historically bionic exposed these. */ -int asprintf(char**, const char* _Nonnull, ...) __printflike(2, 3); +int asprintf(char**, const char*, ...) __printflike(2, 3); char* fgetln(FILE*, size_t*); int fpurge(FILE*); void setbuffer(FILE*, char*, int); int setlinebuf(FILE*); -int vasprintf(char**, const char* _Nonnull, va_list) __printflike(2, 0); +int vasprintf(char**, const char*, va_list) __printflike(2, 0); void clearerr_unlocked(FILE*) __INTRODUCED_IN(23); int feof_unlocked(FILE*) __INTRODUCED_IN(23); int ferror_unlocked(FILE*) __INTRODUCED_IN(23); @@ -271,10 +266,6 @@ int fileno_unlocked(FILE*) __INTRODUCED_IN(24); #include <bits/fortify/stdio.h> #endif -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - __END_DECLS #endif /* _STDIO_H_ */ diff --git a/libc/include/string.h b/libc/include/string.h index 8b4fa27ce..631b3ddd6 100644 --- a/libc/include/string.h +++ b/libc/include/string.h @@ -37,64 +37,52 @@ __BEGIN_DECLS -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnullability-completeness" -#endif - #if defined(__USE_BSD) #include <strings.h> #endif -void* memccpy(void* _Nonnull, const void* _Nonnull, int, size_t); -void* memchr(const void* _Nonnull, int, size_t) __attribute_pure__ __overloadable - __RENAME_CLANG(memchr); -void* memrchr(const void* _Nonnull, int, size_t) __attribute_pure__ __overloadable - __RENAME_CLANG(memrchr); -int memcmp(const void* _Nonnull, const void* _Nonnull, size_t) __attribute_pure__; -void* memcpy(void* _Nonnull, const void* _Nonnull, size_t) +void* memccpy(void*, const void*, int, size_t); +void* memchr(const void*, int, size_t) __attribute_pure__ __overloadable __RENAME_CLANG(memchr); +void* memrchr(const void*, int, size_t) __attribute_pure__ __overloadable __RENAME_CLANG(memrchr); +int memcmp(const void*, const void*, size_t) __attribute_pure__; +void* memcpy(void*, const void*, size_t) __overloadable __RENAME_CLANG(memcpy); #if defined(__USE_GNU) -void* mempcpy(void* _Nonnull, const void* _Nonnull, size_t) __INTRODUCED_IN(23); +void* mempcpy(void*, const void*, size_t) __INTRODUCED_IN(23); #endif -void* memmove(void* _Nonnull, const void* _Nonnull, size_t) __overloadable - __RENAME_CLANG(memmove); -void* memset(void* _Nonnull, int, size_t) __overloadable __RENAME_CLANG(memset); -void* memmem(const void* _Nonnull, size_t, const void* _Nonnull, size_t) __attribute_pure__; - -char* strchr(const char* _Nonnull, int) __attribute_pure__ __overloadable - __RENAME_CLANG(strchr); -char* __strchr_chk(const char* _Nonnull, int, size_t) __INTRODUCED_IN(18); +void* memmove(void*, const void*, size_t) __overloadable __RENAME_CLANG(memmove); +void* memset(void*, int, size_t) __overloadable __RENAME_CLANG(memset); +void* memmem(const void*, size_t, const void*, size_t) __attribute_pure__; + +char* strchr(const char*, int) __attribute_pure__ __overloadable __RENAME_CLANG(strchr); +char* __strchr_chk(const char*, int, size_t) __INTRODUCED_IN(18); #if defined(__USE_GNU) #if defined(__cplusplus) -extern "C++" char* strchrnul(char* _Nonnull, int) __RENAME(strchrnul) __attribute_pure__ __INTRODUCED_IN(24); -extern "C++" const char* strchrnul(const char* _Nonnull, int) __RENAME(strchrnul) __attribute_pure__ __INTRODUCED_IN(24); +extern "C++" char* strchrnul(char*, int) __RENAME(strchrnul) __attribute_pure__ __INTRODUCED_IN(24); +extern "C++" const char* strchrnul(const char*, int) __RENAME(strchrnul) __attribute_pure__ __INTRODUCED_IN(24); #else -char* strchrnul(const char* _Nonnull, int) __attribute_pure__ __INTRODUCED_IN(24); +char* strchrnul(const char*, int) __attribute_pure__ __INTRODUCED_IN(24); #endif #endif -char* strrchr(const char* _Nonnull, int) __attribute_pure__ __overloadable - __RENAME_CLANG(strrchr); -char* __strrchr_chk(const char* _Nonnull, int, size_t) __INTRODUCED_IN(18); +char* strrchr(const char*, int) __attribute_pure__ __overloadable __RENAME_CLANG(strrchr); +char* __strrchr_chk(const char*, int, size_t) __INTRODUCED_IN(18); -size_t strlen(const char* _Nonnull) __attribute_pure__ __overloadable +size_t strlen(const char*) __attribute_pure__ __overloadable __RENAME_CLANG(strlen); -size_t __strlen_chk(const char* _Nonnull, size_t) __INTRODUCED_IN(17); +size_t __strlen_chk(const char*, size_t) __INTRODUCED_IN(17); -int strcmp(const char* _Nonnull, const char* _Nonnull) __attribute_pure__; -char* stpcpy(char* _Nonnull, const char* _Nonnull) - __overloadable __RENAME_CLANG(stpcpy) __INTRODUCED_IN(21); -char* strcpy(char* _Nonnull, const char* _Nonnull) +int strcmp(const char*, const char*) __attribute_pure__; +char* stpcpy(char*, const char*) __overloadable __RENAME_CLANG(stpcpy) __INTRODUCED_IN(21); +char* strcpy(char*, const char*) __overloadable __RENAME_CLANG(strcpy); -char* strcat(char* _Nonnull, const char* _Nonnull) - __overloadable __RENAME_CLANG(strcat); -char* strdup(const char* _Nonnull); +char* strcat(char*, const char*) __overloadable __RENAME_CLANG(strcat); +char* strdup(const char*); -char* strstr(const char* _Nonnull, const char* _Nonnull) __attribute_pure__; -char* strcasestr(const char* _Nonnull, const char* _Nonnull) __attribute_pure__; -char* strtok(char*, const char* _Nonnull); -char* strtok_r(char*, const char* _Nonnull, char** _Nonnull); +char* strstr(const char*, const char*) __attribute_pure__; +char* strcasestr(const char*, const char*) __attribute_pure__; +char* strtok(char*, const char*); +char* strtok_r(char*, const char*, char**); char* strerror(int); char* strerror_l(int, locale_t) __INTRODUCED_IN(23); @@ -104,34 +92,29 @@ char* strerror_r(int, char*, size_t) __RENAME(__gnu_strerror_r) __INTRODUCED_IN( int strerror_r(int, char*, size_t); #endif -size_t strnlen(const char* _Nonnull, size_t) __attribute_pure__; -char* strncat(char* _Nonnull, const char* _Nonnull, size_t) - __overloadable __RENAME_CLANG(strncat); -char* strndup(const char* _Nonnull, size_t); -int strncmp(const char* _Nonnull, const char* _Nonnull, size_t) __attribute_pure__; -char* stpncpy(char* _Nonnull, const char* _Nonnull, size_t) - __overloadable __RENAME_CLANG(stpncpy) __INTRODUCED_IN(21); -char* strncpy(char* _Nonnull, const char* _Nonnull, size_t) - __overloadable __RENAME_CLANG(strncpy); - -size_t strlcat(char* _Nonnull, const char* _Nonnull, size_t) - __overloadable __RENAME_CLANG(strlcat); -size_t strlcpy(char* _Nonnull, const char* _Nonnull, size_t) - __overloadable __RENAME_CLANG(strlcpy); - -size_t strcspn(const char* _Nonnull, const char* _Nonnull) __attribute_pure__; -char* strpbrk(const char* _Nonnull, const char* _Nonnull) __attribute_pure__; -char* strsep(char** _Nonnull, const char* _Nonnull); -size_t strspn(const char* _Nonnull, const char* _Nonnull); +size_t strnlen(const char*, size_t) __attribute_pure__; +char* strncat(char*, const char*, size_t) __overloadable __RENAME_CLANG(strncat); +char* strndup(const char*, size_t); +int strncmp(const char*, const char*, size_t) __attribute_pure__; +char* stpncpy(char*, const char*, size_t) __overloadable __RENAME_CLANG(stpncpy) __INTRODUCED_IN(21); +char* strncpy(char*, const char*, size_t) __overloadable __RENAME_CLANG(strncpy); + +size_t strlcat(char*, const char*, size_t) __overloadable __RENAME_CLANG(strlcat); +size_t strlcpy(char*, const char*, size_t) __overloadable __RENAME_CLANG(strlcpy); + +size_t strcspn(const char*, const char*) __attribute_pure__; +char* strpbrk(const char*, const char*) __attribute_pure__; +char* strsep(char**, const char*); +size_t strspn(const char*, const char*); char* strsignal(int); -int strcoll(const char* _Nonnull, const char* _Nonnull) __attribute_pure__; -size_t strxfrm(char*, const char* _Nonnull, size_t); +int strcoll(const char*, const char*) __attribute_pure__; +size_t strxfrm(char*, const char*, size_t); #if __ANDROID_API__ >= __ANDROID_API_L__ -int strcoll_l(const char* _Nonnull, const char* _Nonnull, locale_t) __attribute_pure__ __INTRODUCED_IN(21); -size_t strxfrm_l(char*, const char* _Nonnull, size_t, locale_t) __INTRODUCED_IN(21); +int strcoll_l(const char*, const char*, locale_t) __attribute_pure__ __INTRODUCED_IN(21); +size_t strxfrm_l(char*, const char*, size_t, locale_t) __INTRODUCED_IN(21); #else // Implemented as static inlines before 21. #endif @@ -142,10 +125,10 @@ size_t strxfrm_l(char*, const char* _Nonnull, size_t, locale_t) __INTRODUCED_IN( * It doesn't modify its argument, and in C++ it's const-correct. */ #if defined(__cplusplus) -extern "C++" char* basename(char* _Nonnull) __RENAME(__gnu_basename) __INTRODUCED_IN(23); -extern "C++" const char* basename(const char* _Nonnull) __RENAME(__gnu_basename) __INTRODUCED_IN(23); +extern "C++" char* basename(char*) __RENAME(__gnu_basename) __INTRODUCED_IN(23); +extern "C++" const char* basename(const char*) __RENAME(__gnu_basename) __INTRODUCED_IN(23); #else -char* basename(const char* _Nonnull) __RENAME(__gnu_basename) __INTRODUCED_IN(23); +char* basename(const char*) __RENAME(__gnu_basename) __INTRODUCED_IN(23); #endif #endif @@ -162,87 +145,83 @@ char* basename(const char* _Nonnull) __RENAME(__gnu_basename) __INTRODUCED_IN(23 #define __prefer_this_overload __enable_if(true, "preferred overload") __enable_if(true, "") extern "C++" { inline __always_inline -void* __bionic_memchr(const void* const _Nonnull s __pass_object_size, int c, size_t n) { +void* __bionic_memchr(const void* const s __pass_object_size, int c, size_t n) { return memchr(s, c, n); } inline __always_inline -const void* memchr(const void* const _Nonnull s __pass_object_size, int c, size_t n) +const void* memchr(const void* const s __pass_object_size, int c, size_t n) __prefer_this_overload { return __bionic_memchr(s, c, n); } inline __always_inline -void* memchr(void* const _Nonnull s __pass_object_size, int c, size_t n) __prefer_this_overload { +void* memchr(void* const s __pass_object_size, int c, size_t n) __prefer_this_overload { return __bionic_memchr(s, c, n); } inline __always_inline -char* __bionic_strchr(const char* const _Nonnull s __pass_object_size, int c) { +char* __bionic_strchr(const char* const s __pass_object_size, int c) { return strchr(s, c); } inline __always_inline -const char* strchr(const char* const _Nonnull s __pass_object_size, int c) +const char* strchr(const char* const s __pass_object_size, int c) __prefer_this_overload { return __bionic_strchr(s, c); } inline __always_inline -char* strchr(char* const _Nonnull s __pass_object_size, int c) +char* strchr(char* const s __pass_object_size, int c) __prefer_this_overload { return __bionic_strchr(s, c); } inline __always_inline -char* __bionic_strrchr(const char* const _Nonnull s __pass_object_size, int c) { +char* __bionic_strrchr(const char* const s __pass_object_size, int c) { return strrchr(s, c); } inline __always_inline -const char* strrchr(const char* const _Nonnull s __pass_object_size, int c) __prefer_this_overload { +const char* strrchr(const char* const s __pass_object_size, int c) __prefer_this_overload { return __bionic_strrchr(s, c); } inline __always_inline -char* strrchr(char* const _Nonnull s __pass_object_size, int c) __prefer_this_overload { +char* strrchr(char* const s __pass_object_size, int c) __prefer_this_overload { return __bionic_strrchr(s, c); } /* Functions with no FORTIFY counterpart. */ inline __always_inline -char* __bionic_strstr(const char* _Nonnull h, const char* _Nonnull n) { return strstr(h, n); } +char* __bionic_strstr(const char* h, const char* n) { return strstr(h, n); } inline __always_inline -const char* strstr(const char* _Nonnull h, const char* _Nonnull n) __prefer_this_overload { +const char* strstr(const char* h, const char* n) __prefer_this_overload { return __bionic_strstr(h, n); } inline __always_inline -char* strstr(char* _Nonnull h, const char* _Nonnull n) __prefer_this_overload { +char* strstr(char* h, const char* n) __prefer_this_overload { return __bionic_strstr(h, n); } inline __always_inline -char* __bionic_strpbrk(const char* _Nonnull h, const char* _Nonnull n) { return strpbrk(h, n); } +char* __bionic_strpbrk(const char* h, const char* n) { return strpbrk(h, n); } inline __always_inline -char* strpbrk(char* _Nonnull h, const char* _Nonnull n) __prefer_this_overload { +char* strpbrk(char* h, const char* n) __prefer_this_overload { return __bionic_strpbrk(h, n); } inline __always_inline -const char* strpbrk(const char* _Nonnull h, const char* _Nonnull n) __prefer_this_overload { +const char* strpbrk(const char* h, const char* n) __prefer_this_overload { return __bionic_strpbrk(h, n); } } #undef __prefer_this_overload #endif -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - __END_DECLS #endif /* _STRING_H */ diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h index 9c662baf7..954152076 100644 --- a/libc/include/sys/cdefs.h +++ b/libc/include/sys/cdefs.h @@ -111,39 +111,6 @@ #define __unused __attribute__((__unused__)) #define __used __attribute__((__used__)) -/* - * _Nonnull is similar to the nonnull attribute in that it will instruct - * compilers to warn the user if it can prove that a null argument is being - * passed. Unlike the nonnull attribute, this annotation indicated that a value - * *should not* be null, not that it *cannot* be null, or even that the behavior - * is undefined. The important distinction is that the optimizer will perform - * surprising optimizations like the following: - * - * void foo(void*) __attribute__(nonnull, 1); - * - * int bar(int* p) { - * foo(p); - * - * // The following null check will be elided because nonnull attribute - * // means that, since we call foo with p, p can be assumed to not be - * // null. Thus this will crash if we are called with a null pointer. - * if (p != NULL) { - * return *p; - * } - * return 0; - * } - * - * int main() { - * return bar(NULL); - * } - * - * http://clang.llvm.org/docs/AttributeReference.html#nonnull - */ -#if !(defined(__clang__) && __has_feature(nullability)) -#define _Nonnull -#define _Nullable -#endif - #define __printflike(x, y) __attribute__((__format__(printf, x, y))) #define __scanflike(x, y) __attribute__((__format__(scanf, x, y))) diff --git a/libc/include/sys/signalfd.h b/libc/include/sys/signalfd.h index 79f94902d..1e4d46411 100644 --- a/libc/include/sys/signalfd.h +++ b/libc/include/sys/signalfd.h @@ -36,7 +36,7 @@ __BEGIN_DECLS -int signalfd(int fd, const sigset_t* _Nonnull mask, int flags) __INTRODUCED_IN(18); +int signalfd(int fd, const sigset_t* mask, int flags) __INTRODUCED_IN(18); __END_DECLS diff --git a/libc/include/sys/statvfs.h b/libc/include/sys/statvfs.h index 5df416072..0f421a4f2 100644 --- a/libc/include/sys/statvfs.h +++ b/libc/include/sys/statvfs.h @@ -59,10 +59,10 @@ struct statvfs64 { __STATVFS64_BODY }; #define ST_NODIRATIME 0x0800 #define ST_RELATIME 0x1000 -int statvfs(const char* _Nonnull, struct statvfs* _Nonnull) __INTRODUCED_IN(19); -int statvfs64(const char* _Nonnull, struct statvfs64* _Nonnull) __INTRODUCED_IN(21); -int fstatvfs(int, struct statvfs* _Nonnull) __INTRODUCED_IN(19); -int fstatvfs64(int, struct statvfs64* _Nonnull) __INTRODUCED_IN(21); +int statvfs(const char*, struct statvfs*) __INTRODUCED_IN(19); +int statvfs64(const char*, struct statvfs64*) __INTRODUCED_IN(21); +int fstatvfs(int, struct statvfs*) __INTRODUCED_IN(19); +int fstatvfs64(int, struct statvfs64*) __INTRODUCED_IN(21); __END_DECLS diff --git a/libc/include/sys/swap.h b/libc/include/sys/swap.h index 3444736bb..e79af97a7 100644 --- a/libc/include/sys/swap.h +++ b/libc/include/sys/swap.h @@ -38,8 +38,8 @@ __BEGIN_DECLS #define SWAP_FLAG_PRIO_MASK 0x7fff #define SWAP_FLAG_PRIO_SHIFT 0 -int swapon(const char* _Nonnull, int) __INTRODUCED_IN(19); -int swapoff(const char* _Nonnull) __INTRODUCED_IN(19); +int swapon(const char*, int) __INTRODUCED_IN(19); +int swapoff(const char*) __INTRODUCED_IN(19); __END_DECLS diff --git a/libc/include/sys/vfs.h b/libc/include/sys/vfs.h index 1231eb12d..30786835f 100644 --- a/libc/include/sys/vfs.h +++ b/libc/include/sys/vfs.h @@ -137,10 +137,10 @@ struct statfs64 { __STATFS64_BODY }; #define XENIX_SUPER_MAGIC 0x012FF7B4 #define XFS_SUPER_MAGIC 0x58465342 -int statfs(const char* _Nonnull, struct statfs* _Nonnull); -int statfs64(const char* _Nonnull, struct statfs64* _Nonnull) __INTRODUCED_IN(21); -int fstatfs(int, struct statfs* _Nonnull); -int fstatfs64(int, struct statfs64* _Nonnull) __INTRODUCED_IN(21); +int statfs(const char*, struct statfs*); +int statfs64(const char*, struct statfs64*) __INTRODUCED_IN(21); +int fstatfs(int, struct statfs*); +int fstatfs64(int, struct statfs64*) __INTRODUCED_IN(21); __END_DECLS diff --git a/libc/include/syslog.h b/libc/include/syslog.h index 4b7eecb24..8000f03d9 100644 --- a/libc/include/syslog.h +++ b/libc/include/syslog.h @@ -86,14 +86,10 @@ __BEGIN_DECLS #define LOG_PERROR 0x20 void closelog(void); -void openlog(const char* _Nullable, int, int); +void openlog(const char*, int, int); int setlogmask(int); -void syslog(int, const char* _Nonnull, ...) __printflike(2, 3); -#if defined(__arm__) || defined(__aarch64__) || defined(__x86_64__) -void vsyslog(int, const char* _Nonnull, va_list) __printflike(2, 0); -#else /* defined(__mips__) || defined(__i386__) */ -void vsyslog(int, const char* _Nonnull, va_list _Nonnull) __printflike(2, 0); -#endif +void syslog(int, const char*, ...) __printflike(2, 3); +void vsyslog(int, const char*, va_list) __printflike(2, 0); __END_DECLS diff --git a/libc/include/wchar.h b/libc/include/wchar.h index a86c8a955..4494cb043 100644 --- a/libc/include/wchar.h +++ b/libc/include/wchar.h @@ -42,11 +42,6 @@ __BEGIN_DECLS -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnullability-completeness" -#endif - wint_t btowc(int); int fwprintf(FILE *, const wchar_t *, ...); int fwscanf(FILE *, const wchar_t *, ...); @@ -125,9 +120,9 @@ long long wcstoll_l(const wchar_t*, wchar_t**, int, locale_t) __INTRODUCED_IN(21 unsigned long long wcstoull_l(const wchar_t*, wchar_t**, int, locale_t) __INTRODUCED_IN(21); long double wcstold_l(const wchar_t*, wchar_t**, locale_t) __INTRODUCED_IN(21); -int wcscoll_l(const wchar_t* _Nonnull, const wchar_t* _Nonnull, locale_t) __attribute_pure__ +int wcscoll_l(const wchar_t*, const wchar_t*, locale_t) __attribute_pure__ __INTRODUCED_IN(21); -size_t wcsxfrm_l(wchar_t*, const wchar_t* _Nonnull, size_t, locale_t) __INTRODUCED_IN(21); +size_t wcsxfrm_l(wchar_t*, const wchar_t*, size_t, locale_t) __INTRODUCED_IN(21); #else // Implemented as static inlines before 21. #endif @@ -139,10 +134,6 @@ FILE* open_wmemstream(wchar_t**, size_t*) __INTRODUCED_IN(23); wchar_t* wcsdup(const wchar_t*); size_t wcsnlen(const wchar_t*, size_t); -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - __END_DECLS #endif /* _WCHAR_H_ */ |