https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68446

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Hi David.

I've just verified that the invalid free is presented since introduction of
driver::finalize in r227188.

This is valgrind report coming from r230263 (one revision before the
suspected):

$ /home/marxin/Programming/gcc2/objdir/gcc/xgcc
-B/home/marxin/Programming/gcc2/objdir/gcc/
/home/marxin/Programming/gcc2/gcc/testsuite/jit.dg/test-combination.c
-fno-diagnostics-show-caret -fdiagnostics-color=never
-I/home/marxin/Programming/gcc2/gcc/testsuite/../jit -lgccjit -g -Wall -Werror
-Wl,--export-dynamic -fgnu89-inline -lm -o test-combination.c.exe
$ LD_LIBRARY_PATH=gcc valgrind --leak-check=yes ./test-volatile.c.exe

==20414== Invalid free() / delete / delete[] / realloc()
==20414==    at 0x4C2A7FB: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==20414==    by 0x504CE2D: driver::finalize() (gcc.c:9814)
==20414==    by 0x5031F3B:
gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr>
const*) (jit-playback.c:2441)
==20414==    by 0x50346D6: gcc::jit::playback::context::invoke_driver(char
const*, char const*, char const*, timevar_id_t, bool, bool)
(jit-playback.c:2427)
==20414==    by 0x50350C9: gcc::jit::playback::context::convert_to_dso(char
const*) (jit-playback.c:2357)
==20414==    by 0x5035165:
gcc::jit::playback::compile_to_memory::postprocess(char const*)
(jit-playback.c:1845)
==20414==    by 0x5033D65: gcc::jit::playback::context::compile()
(jit-playback.c:1818)
==20414==    by 0x502A83E: gcc::jit::recording::context::compile()
(jit-recording.c:1241)
==20414==    by 0x5020095: gcc_jit_context_compile (libgccjit.c:2677)
==20414==    by 0x402087: test_jit (harness.h:371)
==20414==    by 0x40217D: main (harness.h:419)
==20414==  Address 0x63f7b80 is 0 bytes inside data symbol "_ZL12static_specs"

Martin

Reply via email to