public inbox for jit@gcc.gnu.org
 help / color / mirror / Atom feed
From: David Malcolm <dmalcolm@redhat.com>
To: "Alex Coplan" <Alex.Coplan@arm.com>,
	"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 18:22:56 -0500	[thread overview]
Message-ID: <b4cbc76e36afff52881f5afef7712dd02c7e9975.camel@redhat.com> (raw)
In-Reply-To: <PAXPR08MB7201E684563DE91B6210E51EEA789@PAXPR08MB7201.eurprd08.prod.outlook.com>

On Fri, 2021-12-17 at 10:52 +0000, Alex Coplan via Jit wrote:
> 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

FWIW, it looks like all of the remaining leaks are in gcc.c (the
"driver" code, for the "gcc" binary).   IIRC most of this relates to
long-standing code that was written with the assumption that it will
only be run once and not persist in memory, and so it tends to mix up
string literals and dynamically-allocated strings without bothering to
free them (the pointer values persist to the end of "main" when run
from gcc, but get cleared when run from libgccjit.so).

Patches to clean these up would be great.  That said, I'm not the
driver/gcc.c maintainer, so I can't formally approve them (but can post
+1 emails if they look good to me)  [1]

Dave
[1] also, I'm on vacation, so sorry in advance for any slow responses
to email.


> 
> 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.



  parent reply	other threads:[~2021-12-17 23:23 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
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 [this message]
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=b4cbc76e36afff52881f5afef7712dd02c7e9975.camel@redhat.com \
    --to=dmalcolm@redhat.com \
    --cc=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).