[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: warnings compiling emacs28 with gcc 12.1
From: |
Eli Zaretskii |
Subject: |
Re: warnings compiling emacs28 with gcc 12.1 |
Date: |
Thu, 28 Jul 2022 20:02:08 +0300 |
> From: "Jose A. Ortega Ruiz" <jao@gnu.org>
> Date: Thu, 28 Jul 2022 04:32:39 +0100
>
> I compiled today the emacs28 branch with gcc version
> 'gcc (Debian 12.1.0-7) 12.1.0' and configured with
The lesson to be learned here is never use NN.1 version of GCC with
too high level of warnings: you get a lot of noise due to bugs in an
immature GCC version.
> In file included from intervals.c:45:
> intervals.c: In function ‘graft_intervals_into_buffer’:
> intervals.h:101:29: warning: potential null pointer dereference
> [-Wnull-dereference]
> 101 | #define TOTAL_LENGTH(i) ((i)->total_length)
> | ~~~~^~~~~~~~~~~~~~~
Nonsense.
> and there's another one about free that looks a bit scary:
>
> alloc.c: In function ‘lisp_free’:
> alloc.c:1052:3: warning: pointer ‘block’ used after ‘free’
> [-Wuse-after-free]
> 1052 | mem_delete (mem_find (block));
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> alloc.c:1050:3: note: call to ‘free’ here
> 1050 | free (block);
> | ^~~~~~~~~~~~
Another nonsense. Look in mem_find, and you will see that it uses its
argument as just a number, it never dereferences it.
> There are also several out-of-bounds access in xdisp.c that look like
> this one:
>
> xdisp.c: In function ‘append_space_for_newline’:
> xdisp.c:22011:7: warning: ‘memset’ offset [2352, 2359] from the object at
> ‘it’ is out of the bounds of referenced subobject ‘charpos’ with type ‘long
> int’ at offset 2344 [-Warray-bounds]
> 22011 | memset (&it->position, 0, sizeof it->position);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from composite.h:29,
> from xdisp.c:441:
> dispextern.h:214:13: note: subobject ‘charpos’ declared here
> 214 | ptrdiff_t charpos;
> | ^~~~~~~
I see no problem there.
> And so on. I guess the whole list is easily reproducible by anyone
> compiling git gcc 12.1 in a GNU/Linux system, so i'm not sending it in
> full. I can do that in a bug report if you think it's needed.
>
> Apologies if all this is already well-known/spurious.
I wouldn't worry about these.
Thanks.