public inbox for jit@gcc.gnu.org
 help / color / mirror / Atom feed
From: Alex Coplan <Alex.Coplan@arm.com>
To: "Marc Nieper-Wißkirchen" <marc.nieper+gnu@gmail.com>,
	"Mark Wielaard" <mark@klomp.org>
Cc: "jit@gcc.gnu.org" <jit@gcc.gnu.org>
Subject: RE: Memory leaks (detected by Valgrind)
Date: Fri, 17 Dec 2021 10:52:22 +0000	[thread overview]
Message-ID: <PAXPR08MB7201E684563DE91B6210E51EEA789@PAXPR08MB7201.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <CAEYrNrRNspAU7Ljn=0mT3L49wresRVe_9JgXN-b3ih2iAgRdrg@mail.gmail.com>

Hi,

> -----Original Message-----
> From: Jit <jit-bounces+alex.coplan=arm.com@gcc.gnu.org> On Behalf Of Marc
> Nieper-Wißkirchen via Jit
> Sent: 17 December 2021 10:29
> To: Mark Wielaard <mark@klomp.org>
> Cc: Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com>; jit@gcc.gnu.org
> Subject: Re: Memory leaks (detected by Valgrind)
>
> Thanks!
>
> With `--enable-valgrind-annotations`, the "uses of uninitialized values"
> have gone away, but a lot of small leaks are still present:

Memory leaks with libgccjit are a known issue, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854

Thanks,
Alex

>
> ==470150== Memcheck, a memory error detector
> ==470150== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et
> al.
> ==470150== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright
> info
> ==470150== Command: ./a.out
> ==470150==
> ==470150==
> ==470150== HEAP SUMMARY:
> ==470150==     in use at exit: 1,485,998 bytes in 1,172 blocks
> ==470150==   total heap usage: 5,358 allocs, 4,186 frees, 2,898,194 bytes
> allocated
> ==470150==
> ==470150== 9 bytes in 1 blocks are definitely lost in loss record 6 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B9536C: set_multilib_dir (gcc.c:9850)
> ==470150==    by 0x4B9536C: driver::set_up_specs() const (gcc.c:8546)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==    by 0x40241F: main (in /tmp/a.out)
> ==470150==
> ==470150== 12 bytes in 1 blocks are definitely lost in loss record 7 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DDDE03: make_relative_prefix_1
> (make-relative-prefix.c:377)
> ==470150==    by 0x4B8BCAA: process_command(unsigned int,
> cl_decoded_option*) (gcc.c:4731)
> ==470150==    by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==
> ==470150== 16 bytes in 1 blocks are definitely lost in loss record 12 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DDDE03: make_relative_prefix_1
> (make-relative-prefix.c:377)
> ==470150==    by 0x4B8BCC8: process_command(unsigned int,
> cl_decoded_option*) (gcc.c:4734)
> ==470150==    by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==
> ==470150== 16 bytes in 1 blocks are definitely lost in loss record 13 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B8547F: save_switch(char const*, unsigned long, char
> const* const*, bool, bool) (gcc.c:3906)
> ==470150==    by 0x4B89EA9: driver_handle_option(gcc_options*,
> gcc_options*, cl_decoded_option const*, unsigned int, int, unsigned int,
> cl_option_handlers const*, diagnostic_context*, void (*)()) (gcc.c:4568)
> ==470150==    by 0x5D617CE: handle_option(gcc_options*, gcc_options*,
> cl_decoded_option const*, unsigned int, int, unsigned int,
> cl_option_handlers const*, bool, diagnostic_context*) (opts-
> common.c:1181)
> ==470150==    by 0x5D6195C: read_cmdline_option(gcc_options*,
> gcc_options*,
> cl_decoded_option*, unsigned int, unsigned int, cl_option_handlers
> const*,
> diagnostic_context*) (opts-common.c:1431)
> ==470150==    by 0x4B8B41A: process_command(unsigned int,
> cl_decoded_option*) (gcc.c:4927)
> ==470150==    by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==
> ==470150== 16 bytes in 1 blocks are definitely lost in loss record 14 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B94C0A: set_multilib_dir (gcc.c:9650)
> ==470150==    by 0x4B94C0A: driver::set_up_specs() const (gcc.c:8546)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==    by 0x40241F: main (in /tmp/a.out)
> ==470150==
> ==470150== 16 bytes in 1 blocks are definitely lost in loss record 15 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B8C8B9: record_temp_file(char const*, int, int)
> (gcc.c:2679)
> ==470150==    by 0x4B8CD3B: end_going_arg() [clone .part.0] (gcc.c:5649)
> ==470150==    by 0x4B8D116: end_going_arg (gcc.c:5628)
> ==470150==    by 0x4B8D116: do_spec_1(char const*, int, char const*)
> (gcc.c:6061)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==
> ==470150== 17 bytes in 1 blocks are definitely lost in loss record 16 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B953A7: set_multilib_dir (gcc.c:9858)
> ==470150==    by 0x4B953A7: driver::set_up_specs() const (gcc.c:8546)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==    by 0x40241F: main (in /tmp/a.out)
> ==470150==
> ==470150== 18 bytes in 1 blocks are definitely lost in loss record 17 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B8564A: find_a_file(path_prefix const*, char const*,
> int, bool) (gcc.c:3072)
> ==470150==    by 0x4B918A9: find_a_program (gcc.c:3100)
> ==470150==    by 0x4B918A9: maybe_putenv_COLLECT_LTO_WRAPPER (gcc.c:8572)
> ==470150==    by 0x4B918A9: driver::maybe_putenv_COLLECT_LTO_WRAPPER()
> const (gcc.c:8565)
> ==470150==    by 0x4B48616: driver::main(int, char**) (gcc.c:8131)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==
> ==470150== 18 bytes in 1 blocks are definitely lost in loss record 18 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B8564A: find_a_file(path_prefix const*, char const*,
> int, bool) (gcc.c:3072)
> ==470150==    by 0x4B8856D: find_a_program (gcc.c:3100)
> ==470150==    by 0x4B8856D: execute() (gcc.c:3283)
> ==470150==    by 0x4B9313C: driver::do_spec_on_infiles() const
> (gcc.c:8920)
> ==470150==    by 0x4B4884E: driver::main(int, char**) (gcc.c:8148)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==
> ==470150== 18 bytes in 1 blocks are definitely lost in loss record 19 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B8564A: find_a_file(path_prefix const*, char const*,
> int, bool) (gcc.c:3072)
> ==470150==    by 0x4B93E5B: find_a_program (gcc.c:3100)
> ==470150==    by 0x4B93E5B: driver::maybe_run_linker(char const*) const
> (gcc.c:9085)
> ==470150==    by 0x4B4885D: driver::main(int, char**) (gcc.c:8149)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==
> ==470150== 18 bytes in 1 blocks are definitely lost in loss record 20 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B849EB: build_search_list(path_prefix const*, char
> const*, bool, bool) (gcc.c:2974)
> ==470150==    by 0x4B93DC5: putenv_from_prefixes (gcc.c:2987)
> ==470150==    by 0x4B93DC5: driver::maybe_run_linker(char const*) const
> (gcc.c:9116)
> ==470150==    by 0x4B4885D: driver::main(int, char**) (gcc.c:8149)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==
> ==470150== 18 bytes in 1 blocks are definitely lost in loss record 21 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B849EB: build_search_list(path_prefix const*, char
> const*, bool, bool) (gcc.c:2974)
> ==470150==    by 0x4B93DF1: putenv_from_prefixes (gcc.c:2987)
> ==470150==    by 0x4B93DF1: driver::maybe_run_linker(char const*) const
> (gcc.c:9117)
> ==470150==    by 0x4B4885D: driver::main(int, char**) (gcc.c:8149)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==
> ==470150== 18 bytes in 1 blocks are definitely lost in loss record 22 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B8E5F2: do_spec_1(char const*, int, char const*)
> (gcc.c:6132)
> ==470150==    by 0x4B8E30B: do_spec_1(char const*, int, char const*)
> (gcc.c:6791)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==
> ==470150== 18 bytes in 1 blocks are definitely lost in loss record 23 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B8564A: find_a_file(path_prefix const*, char const*,
> int, bool) (gcc.c:3072)
> ==470150==    by 0x4B8CD88: find_file (gcc.c:7898)
> ==470150==    by 0x4B8CD88: end_going_arg() [clone .part.0] (gcc.c:5635)
> ==470150==    by 0x4B8D116: end_going_arg (gcc.c:5628)
> ==470150==    by 0x4B8D116: do_spec_1(char const*, int, char const*)
> (gcc.c:6061)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B8E60E: do_spec_1(char const*, int, char const*)
> (gcc.c:6623)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==
> ==470150== 18 bytes in 1 blocks are definitely lost in loss record 24 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B8564A: find_a_file(path_prefix const*, char const*,
> int, bool) (gcc.c:3072)
> ==470150==    by 0x4B8CD88: find_file (gcc.c:7898)
> ==470150==    by 0x4B8CD88: end_going_arg() [clone .part.0] (gcc.c:5635)
> ==470150==    by 0x4B8D116: end_going_arg (gcc.c:5628)
> ==470150==    by 0x4B8D116: do_spec_1(char const*, int, char const*)
> (gcc.c:6061)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==
> ==470150== 18 bytes in 1 blocks are definitely lost in loss record 25 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B8564A: find_a_file(path_prefix const*, char const*,
> int, bool) (gcc.c:3072)
> ==470150==    by 0x4B8856D: find_a_program (gcc.c:3100)
> ==470150==    by 0x4B8856D: execute() (gcc.c:3283)
> ==470150==    by 0x4B8D3E4: do_spec_1(char const*, int, char const*)
> (gcc.c:6037)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==
> ==470150== 21 bytes in 1 blocks are definitely lost in loss record 26 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B9458E: driver::set_up_specs() const (gcc.c:8333)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==
> ==470150== 28 bytes in 1 blocks are definitely lost in loss record 31 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B8BCEF: process_command(unsigned int,
> cl_decoded_option*) (gcc.c:4738)
> ==470150==    by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==
> ==470150== 28 bytes in 1 blocks are definitely lost in loss record 32 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B94570: driver::set_up_specs() const (gcc.c:8331)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==
> ==470150== 31 bytes in 1 blocks are definitely lost in loss record 34 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DE3A5E: xstrdup (xstrdup.c:34)
> ==470150==    by 0x4B8B026: process_command(unsigned int,
> cl_decoded_option*) (gcc.c:4696)
> ==470150==    by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==
> ==470150== 32 (16 direct, 16 indirect) bytes in 1 blocks are definitely
> lost in loss record 35 of 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B8C881: record_temp_file(char const*, int, int)
> (gcc.c:2661)
> ==470150==    by 0x4B8CD3B: end_going_arg() [clone .part.0] (gcc.c:5649)
> ==470150==    by 0x4B8D116: end_going_arg (gcc.c:5628)
> ==470150==    by 0x4B8D116: do_spec_1(char const*, int, char const*)
> (gcc.c:6061)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==
> ==470150== 34 bytes in 1 blocks are definitely lost in loss record 36 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B4BC29: init_asm_output (toplev.c:701)
> ==470150==    by 0x4B4BC29: lang_dependent_init (toplev.c:1852)
> ==470150==    by 0x4B4BC29: do_compile (toplev.c:2141)
> ==470150==    by 0x4B4BC29: toplev::main(int, char**) (toplev.c:2308)
> ==470150==    by 0x4B76AEE: gcc::jit::playback::context::compile()
> (jit-playback.c:2117)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==    by 0x40241F: main (in /tmp/a.out)
> ==470150==
> ==470150== 36 bytes in 2 blocks are definitely lost in loss record 37 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B846CC: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789)
> ==470150==    by 0x4B8564A: find_a_file(path_prefix const*, char const*,
> int, bool) (gcc.c:3072)
> ==470150==    by 0x4B8CD88: find_file (gcc.c:7898)
> ==470150==    by 0x4B8CD88: end_going_arg() [clone .part.0] (gcc.c:5635)
> ==470150==    by 0x4B8D116: end_going_arg (gcc.c:5628)
> ==470150==    by 0x4B8D116: do_spec_1(char const*, int, char const*)
> (gcc.c:6061)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B8DB23: do_spec_1(char const*, int, char const*)
> (gcc.c:6668)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==
> ==470150== 39 bytes in 1 blocks are definitely lost in loss record 38 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B94ACF: driver::set_up_specs() const (gcc.c:8535)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==
> ==470150== 40 bytes in 1 blocks are definitely lost in loss record 50 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE39CF: xrealloc (xmalloc.c:179)
> ==470150==    by 0x4B8CC0E: reserve<char const*> (vec.h:290)
> ==470150==    by 0x4B8CC0E: reserve (vec.h:1858)
> ==470150==    by 0x4B8CC0E: safe_push (vec.h:1967)
> ==470150==    by 0x4B8CC0E: store_arg(char const*, int, int) (gcc.c:2181)
> ==470150==    by 0x4B8CD3B: end_going_arg() [clone .part.0] (gcc.c:5649)
> ==470150==    by 0x4B8F38A: end_going_arg (gcc.c:5628)
> ==470150==    by 0x4B8F38A: do_spec_2(char const*, char const*)
> (gcc.c:5744)
> ==470150==    by 0x4B9097C: do_self_spec(char const*) (gcc.c:5806)
> ==470150==    by 0x4B90D9B: do_option_spec(char const*, char const*)
> (gcc.c:5795)
> ==470150==    by 0x4B95E6F: driver_get_configure_time_options(void
> (*)(char
> const*, void*), void*) (gcc.c:11258)
> ==470150==    by 0x4B7580A:
> gcc::jit::playback::context::make_fake_args(vec<char*, va_heap, vl_ptr>*,
> char const*, vec<gcc::jit::recording::requested_dump, va_heap, vl_ptr>*)
> (jit-playback.c:2562)
> ==470150==    by 0x4B7680B: gcc::jit::playback::context::compile()
> (jit-playback.c:2103)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==
> ==470150== 48 bytes in 1 blocks are definitely lost in loss record 54 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B948EC: driver::set_up_specs() const (gcc.c:8453)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==
> ==470150== 59 (40 direct, 19 indirect) bytes in 1 blocks are definitely
> lost in loss record 102 of 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B8E8A9: do_spec_1(char const*, int, char const*)
> (gcc.c:6354)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B8E30B: do_spec_1(char const*, int, char const*)
> (gcc.c:6791)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==
> ==470150== 74 bytes in 1 blocks are definitely lost in loss record 116 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B848A4: for_each_path(path_prefix const*, bool,
> unsigned long, void* (*)(char*, void*), void*) (gcc.c:2813)
> ==470150==    by 0x4B8564A: find_a_file(path_prefix const*, char const*,
> int, bool) (gcc.c:3072)
> ==470150==    by 0x4B945B2: driver::set_up_specs() const (gcc.c:8335)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==
> ==470150== 75 bytes in 1 blocks are definitely lost in loss record 118 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B8B7C7: process_command(unsigned int,
> cl_decoded_option*) (gcc.c:5410)
> ==470150==    by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==
> ==470150== 75 bytes in 1 blocks are definitely lost in loss record 119 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DD6961: concat (concat.c:147)
> ==470150==    by 0x4B8B802: process_command(unsigned int,
> cl_decoded_option*) (gcc.c:5413)
> ==470150==    by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==
> ==470150== 88 bytes in 1 blocks are definitely lost in loss record 128 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE39CF: xrealloc (xmalloc.c:179)
> ==470150==    by 0x4B91177: reserve<char const*> (vec.h:290)
> ==470150==    by 0x4B91177: reserve (vec.h:1858)
> ==470150==    by 0x4B91177: reserve_exact (vec.h:1878)
> ==470150==    by 0x4B91177: create (vec.h:1893)
> ==470150==    by 0x4B91177: alloc_args (gcc.c:2156)
> ==470150==    by 0x4B91177: driver::global_initializations() (gcc.c:8242)
> ==470150==    by 0x4B485DC: driver::main(int, char**) (gcc.c:8126)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==    by 0x40241F: main (in /tmp/a.out)
> ==470150==
> ==470150== 88 bytes in 1 blocks are definitely lost in loss record 129 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE39CF: xrealloc (xmalloc.c:179)
> ==470150==    by 0x4B8F8EB: reserve<char const*> (vec.h:290)
> ==470150==    by 0x4B8F8EB: reserve (vec.h:1858)
> ==470150==    by 0x4B8F8EB: reserve_exact (vec.h:1878)
> ==470150==    by 0x4B8F8EB: create (vec.h:1893)
> ==470150==    by 0x4B8F8EB: alloc_args (gcc.c:2156)
> ==470150==    by 0x4B8F8EB: eval_spec_function (gcc.c:6905)
> ==470150==    by 0x4B8F8EB: handle_spec_function(char const*, bool*, char
> const*) (gcc.c:6994)
> ==470150==    by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B8F378: do_spec_2(char const*, char const*)
> (gcc.c:5742)
> ==470150==    by 0x4B9097C: do_self_spec(char const*) (gcc.c:5806)
> ==470150==    by 0x4B9470B: driver::set_up_specs() const (gcc.c:8368)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==
> ==470150== 88 bytes in 1 blocks are definitely lost in loss record 130 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE39CF: xrealloc (xmalloc.c:179)
> ==470150==    by 0x4B8F8EB: reserve<char const*> (vec.h:290)
> ==470150==    by 0x4B8F8EB: reserve (vec.h:1858)
> ==470150==    by 0x4B8F8EB: reserve_exact (vec.h:1878)
> ==470150==    by 0x4B8F8EB: create (vec.h:1893)
> ==470150==    by 0x4B8F8EB: alloc_args (gcc.c:2156)
> ==470150==    by 0x4B8F8EB: eval_spec_function (gcc.c:6905)
> ==470150==    by 0x4B8F8EB: handle_spec_function(char const*, bool*, char
> const*) (gcc.c:6994)
> ==470150==    by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B8E30B: do_spec_1(char const*, int, char const*)
> (gcc.c:6791)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==
> ==470150== 88 bytes in 1 blocks are definitely lost in loss record 131 of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE39CF: xrealloc (xmalloc.c:179)
> ==470150==    by 0x4B8F8EB: reserve<char const*> (vec.h:290)
> ==470150==    by 0x4B8F8EB: reserve (vec.h:1858)
> ==470150==    by 0x4B8F8EB: reserve_exact (vec.h:1878)
> ==470150==    by 0x4B8F8EB: create (vec.h:1893)
> ==470150==    by 0x4B8F8EB: alloc_args (gcc.c:2156)
> ==470150==    by 0x4B8F8EB: eval_spec_function (gcc.c:6905)
> ==470150==    by 0x4B8F8EB: handle_spec_function(char const*, bool*, char
> const*) (gcc.c:6994)
> ==470150==    by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B8E30B: do_spec_1(char const*, int, char const*)
> (gcc.c:6791)
> ==470150==    by 0x4B8E30B: do_spec_1(char const*, int, char const*)
> (gcc.c:6791)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==
> ==470150== 211 bytes in 1 blocks are definitely lost in loss record 146
> of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x5DE3A5E: xstrdup (xstrdup.c:34)
> ==470150==    by 0x4B8413B: set_spec(char const*, char const*, bool)
> (gcc.c:2089)
> ==470150==    by 0x4B87379: read_specs(char const*, bool, bool)
> (gcc.c:2581)
> ==470150==    by 0x4B949A0: driver::set_up_specs() const (gcc.c:8338)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==
> ==470150== 646 bytes in 47 blocks are definitely lost in loss record 166
> of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B86F12: save_string (gcc.c:9301)
> ==470150==    by 0x4B86F12: read_specs(char const*, bool, bool)
> (gcc.c:2542)
> ==470150==    by 0x4B949A0: driver::set_up_specs() const (gcc.c:8338)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==
> ==470150== 792 bytes in 9 blocks are definitely lost in loss record 167
> of
> 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE39CF: xrealloc (xmalloc.c:179)
> ==470150==    by 0x4B8F8EB: reserve<char const*> (vec.h:290)
> ==470150==    by 0x4B8F8EB: reserve (vec.h:1858)
> ==470150==    by 0x4B8F8EB: reserve_exact (vec.h:1878)
> ==470150==    by 0x4B8F8EB: create (vec.h:1893)
> ==470150==    by 0x4B8F8EB: alloc_args (gcc.c:2156)
> ==470150==    by 0x4B8F8EB: eval_spec_function (gcc.c:6905)
> ==470150==    by 0x4B8F8EB: handle_spec_function(char const*, bool*, char
> const*) (gcc.c:6994)
> ==470150==    by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==    by 0x4B8DDAD: do_spec_1(char const*, int, char const*)
> (gcc.c:6676)
> ==470150==    by 0x4B904FC: process_brace_body (gcc.c:7362)
> ==470150==    by 0x4B904FC: handle_braces(char const*) (gcc.c:7269)
> ==470150==
> ==470150== 2,842 bytes in 1 blocks are definitely lost in loss record 185
> of 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DE3938: xmalloc (xmalloc.c:149)
> ==470150==    by 0x4B86F94: save_string (gcc.c:9301)
> ==470150==    by 0x4B86F94: read_specs(char const*, bool, bool)
> (gcc.c:2556)
> ==470150==    by 0x4B949A0: driver::set_up_specs() const (gcc.c:8338)
> ==470150==    by 0x4B485EC: driver::main(int, char**) (gcc.c:8128)
> ==470150==    by 0x4B74A57:
> gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap,
> vl_ptr> const*) (jit-playback.c:2785)
> ==470150==    by 0x4B77212:
> gcc::jit::playback::context::invoke_driver(char
> const*, char const*, char const*, timevar_id_t, bool, bool)
> (jit-playback.c:2773)
> ==470150==    by 0x4B783AA:
> gcc::jit::playback::context::convert_to_dso(char const*)
> (jit-playback.c:2694)
> ==470150==    by 0x4B78409:
> gcc::jit::playback::compile_to_memory::postprocess(char const*)
> (jit-playback.c:2176)
> ==470150==    by 0x4B76C79: gcc::jit::playback::context::compile()
> (jit-playback.c:2149)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==
> ==470150== 12,611 (48 direct, 12,563 indirect) bytes in 1 blocks are
> definitely lost in loss record 191 of 213
> ==470150==    at 0x4842839: malloc (in
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==470150==    by 0x5DF20A8: operator new(unsigned long) (in
> /home/mnieper/gcc/install/lib/libgccjit.so.0.0.1)
> ==470150==    by 0x4F62B89:
> gcc::pass_manager::register_pass_name(opt_pass*, char const*)
> (passes.c:906)
> ==470150==    by 0x4F62D98:
> gcc::pass_manager::register_one_dump_file(opt_pass*) (passes.c:878)
> ==470150==    by 0x4F62E88:
> gcc::pass_manager::register_dump_files(opt_pass*) (passes.c:890)
> ==470150==    by 0x4F698CD:
> gcc::pass_manager::pass_manager(gcc::context*)
> (passes.c:1642)
> ==470150==    by 0x4B4A20F: general_init (toplev.c:1107)
> ==470150==    by 0x4B4A20F: toplev::main(int, char**) (toplev.c:2240)
> ==470150==    by 0x4B76AEE: gcc::jit::playback::context::compile()
> (jit-playback.c:2117)
> ==470150==    by 0x4B6BA25: gcc::jit::recording::context::compile()
> (jit-recording.c:1397)
> ==470150==    by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091)
> ==470150==    by 0x40241F: main (in /tmp/a.out)
> ==470150==
> ==470150== LEAK SUMMARY:
> ==470150==    definitely lost: 5,740 bytes in 94 blocks
> ==470150==    indirectly lost: 12,598 bytes in 334 blocks
> ==470150==      possibly lost: 0 bytes in 0 blocks
> ==470150==    still reachable: 1,467,660 bytes in 744 blocks
> ==470150==         suppressed: 0 bytes in 0 blocks
> ==470150== Reachable blocks (those to which a pointer was found) are not
> shown.
> ==470150== To see them, rerun with: --leak-check=full --show-leak-
> kinds=all
> ==470150==
> ==470150== For lists of detected and suppressed errors, rerun with: -s
> ==470150== ERROR SUMMARY: 39 errors from 39 contexts (suppressed: 0 from
> 0)
>
> Am Do., 16. Dez. 2021 um 23:26 Uhr schrieb Mark Wielaard
> <mark@klomp.org>:
>
> > On Thu, Dec 16, 2021 at 11:00:24PM +0100, Marc Nieper-Wißkirchen via
> Jit
> > wrote:
> > > Here is the Valgrind output for a debug GCC build:
> >
> > You have to build gcc with:
> >
> > configure --enable-valgrind-annotations
> >
> >     Mark selected memory related operations in the compiler when run
> >     under valgrind to suppress false positives.
> >
> > Cheers,
> >
> > Mark
> >
> >
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

  reply	other threads:[~2021-12-17 10:52 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-16 17:17 Marc Nieper-Wißkirchen
2021-12-16 22:00 ` Marc Nieper-Wißkirchen
2021-12-16 22:26   ` Mark Wielaard
2021-12-17 10:29     ` Marc Nieper-Wißkirchen
2021-12-17 10:52       ` Alex Coplan [this message]
2021-12-17 14:03         ` Marc Nieper-Wißkirchen
2021-12-17 14:54           ` Andrea Corallo
2021-12-17 15:11             ` Marc Nieper-Wißkirchen
2021-12-17 16:07               ` Andrea Corallo
2021-12-17 17:53                 ` Marc Nieper-Wißkirchen
2021-12-17 18:48                   ` Andrea Corallo
2021-12-17 23:22         ` David Malcolm
2021-12-18 13:57           ` Marc Nieper-Wißkirchen
2021-12-18 16:45             ` David Malcolm
2021-12-18 17:50               ` Marc Nieper-Wißkirchen
2021-12-18 19:36               ` Marc Nieper-Wißkirchen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=PAXPR08MB7201E684563DE91B6210E51EEA789@PAXPR08MB7201.eurprd08.prod.outlook.com \
    --to=alex.coplan@arm.com \
    --cc=jit@gcc.gnu.org \
    --cc=marc.nieper+gnu@gmail.com \
    --cc=mark@klomp.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).