On 8/24/22 23:01, Dmitry V. Levin wrote:
On Wed, Aug 24, 2022 at 10:51:13PM +0200, Nick via Elfutils-devel wrote:
I try to compile elfutils on OpenWrt with the newest gcc 12.2.0 version.
However, it fails due to -Werror=use-after-free. A workaround is a patch
that I found on the mailinglist, to disable -Werror
(https://sourceware.org/legacy-ml/elfutils-devel/imported/msg00994.html)
I modified it to apply to newest elfutils version. The error with
elfutils 0.187 and gcc 12.2.0:
In function 'bigger_buffer',
inlined from '__libdw_gunzip' at gzip.c:376:12:
gzip.c:98:9: error: pointer may be used after 'realloc'
[-Werror=use-after-free]
98 | b = realloc (state->buffer, more -= 1024);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gzip.c:96:13: note: call to 'realloc' here
96 | char *b = realloc (state->buffer, more);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This warning is definitely wrong, looks like a regression in gcc, please
report this to compiler people, otherwise they will never know they
introduced a bug that needs fixing.
I think it is not the only failure. I added a comment under this already
existing bug report:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104069#c24
If you look at this comment I am not sure if that is ever fixed:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104069#c20
The write here about using "pragma" statements to suppress the warning.
What about introducing the disabling of werror by a configure flag?
Bests
Nick