aboutsummaryrefslogtreecommitdiff
path: root/elf/dl-load.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2022-06-16 18:52:02 -0700
committerH.J. Lu <hjl.tools@gmail.com>2022-06-17 15:18:10 -0700
commit33ead027586c3371e6765f9070b9564a5ba7e89d (patch)
tree607cad7ade69525d3a497b9677996e816a738c63 /elf/dl-load.c
parentc22eb807b0c8125101f6a274795425be2bbd0386 (diff)
downloadglibc-33ead027586c3371e6765f9070b9564a5ba7e89d.zip
glibc-33ead027586c3371e6765f9070b9564a5ba7e89d.tar.gz
glibc-33ead027586c3371e6765f9070b9564a5ba7e89d.tar.bz2
elf: Silence GCC 11/12 false positive warning
Silence GCC 11/12 false positive warning with -mavx512f on dl-load.c: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106008 $ gcc -O2 -fPIC -march=x86-64 -mavx512f -S -Wall ... dl-load.c: In function ‘_dl_map_object_from_fd.constprop’: dl-load.c:1158:30: warning: ‘(((char *)loadcmds.113_68 + _933 + 16))[329406144173384849].mapend’ may be used uninitialized [-Wmaybe-uninitialized]
Diffstat (limited to 'elf/dl-load.c')
-rw-r--r--elf/dl-load.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 2e4a010..1ad0868 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1152,10 +1152,20 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
p_align_max = ph->p_align;
c->mapoff = ALIGN_DOWN (ph->p_offset, GLRO(dl_pagesize));
+ DIAG_PUSH_NEEDS_COMMENT;
+
+#if __GNUC_PREREQ (11, 0)
+ /* Suppress invalid GCC warning:
+ ‘(((char *)loadcmds.113_68 + _933 + 16))[329406144173384849].mapend’ may be used uninitialized [-Wmaybe-uninitialized]
+ See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106008
+ */
+ DIAG_IGNORE_NEEDS_COMMENT (11, "-Wmaybe-uninitialized");
+#endif
/* Determine whether there is a gap between the last segment
and this one. */
if (nloadcmds > 1 && c[-1].mapend != c->mapstart)
has_holes = true;
+ DIAG_POP_NEEDS_COMMENT;
/* Optimize a common case. */
#if (PF_R | PF_W | PF_X) == 7 && (PROT_READ | PROT_WRITE | PROT_EXEC) == 7