Merge "Nullability check for shm module."
diff --git a/libc/include/sys/shm.h b/libc/include/sys/shm.h
index a3f84d3..9d58046 100644
--- a/libc/include/sys/shm.h
+++ b/libc/include/sys/shm.h
@@ -47,11 +47,11 @@
typedef unsigned long shmatt_t;
/** Not useful on Android; disallowed by SELinux. */
-void* shmat(int __shm_id, const void* __addr, int __flags) __INTRODUCED_IN(26);
+void* _Nonnull shmat(int __shm_id, const void* _Nullable __addr, int __flags) __INTRODUCED_IN(26);
/** Not useful on Android; disallowed by SELinux. */
-int shmctl(int __shm_id, int __cmd, struct shmid_ds* __buf) __INTRODUCED_IN(26);
+int shmctl(int __shm_id, int __cmd, struct shmid_ds* _Nullable __buf) __INTRODUCED_IN(26);
/** Not useful on Android; disallowed by SELinux. */
-int shmdt(const void* __addr) __INTRODUCED_IN(26);
+int shmdt(const void* _Nonnull __addr) __INTRODUCED_IN(26);
/** Not useful on Android; disallowed by SELinux. */
int shmget(key_t __key, size_t __size, int __flags) __INTRODUCED_IN(26);
diff --git a/tests/sys_shm_test.cpp b/tests/sys_shm_test.cpp
index fd5d424..65f9eba 100644
--- a/tests/sys_shm_test.cpp
+++ b/tests/sys_shm_test.cpp
@@ -73,9 +73,12 @@
}
TEST(sys_shm, shmdt_failure) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
errno = 0;
ASSERT_EQ(-1, shmdt(nullptr));
ASSERT_TRUE(errno == EINVAL || errno == ENOSYS);
+#pragma clang diagnostic pop
}
TEST(sys_shm, shmget_failure) {