From 013106ae677af9836614ace1a01d25b63fa555a7 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 26 Dec 2024 12:51:18 +0800 Subject: [PATCH] mlock, mlock2, munlock: Tell the compiler we don't dereference the pointer Since https://gcc.gnu.org/r11-959, the compiler emits -Wmaybe-uninitialized if a const pointer to an uninitialized buffer is passed. Tell the compiler we don't dereference the pointer to remove the false alarm. Link: https://gcc.gnu.org/PR118194 Signed-off-by: Xi Ruoyao Reviewed-by: Sam James --- misc/sys/mman.h | 6 ++++-- sysdeps/unix/sysv/linux/bits/mman-shared.h | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/misc/sys/mman.h b/misc/sys/mman.h index c68a85d1407..ae8cee33118 100644 --- a/misc/sys/mman.h +++ b/misc/sys/mman.h @@ -100,10 +100,12 @@ extern int posix_madvise (void *__addr, size_t __len, int __advice) __THROW; /* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to be memory resident. */ -extern int mlock (const void *__addr, size_t __len) __THROW; +extern int mlock (const void *__addr, size_t __len) __THROW + __attr_access ((__none__, 1)); /* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN). */ -extern int munlock (const void *__addr, size_t __len) __THROW; +extern int munlock (const void *__addr, size_t __len) __THROW + __attr_access ((__none__, 1)); /* Cause all currently mapped pages of the process to be memory resident until unlocked by a call to the `munlockall', until the process exits, diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h index 7a9874204db..d601bd0e8fe 100644 --- a/sysdeps/unix/sysv/linux/bits/mman-shared.h +++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h @@ -56,7 +56,8 @@ int memfd_create (const char *__name, unsigned int __flags) __THROW; /* Lock pages from ADDR (inclusive) to ADDR + LENGTH (exclusive) into memory. FLAGS is a combination of the MLOCK_* flags above. */ -int mlock2 (const void *__addr, size_t __length, unsigned int __flags) __THROW; +int mlock2 (const void *__addr, size_t __length, unsigned int __flags) __THROW + __attr_access ((__none__, 1)); /* Allocate a new protection key, with the PKEY_DISABLE_* bits specified in ACCESS_RESTRICTIONS. The protection key mask for the -- 2.47.2