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

            Bug ID: 93019
           Summary: memory leak in gcc -O2 reported by Valgrind
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: driver
          Assignee: unassigned at gcc dot gnu.org
          Reporter: qinzhao at gcc dot gnu.org
  Target Milestone: ---

Valgrind reported 12 memory errors when I run the latest upstream gcc with -O2
on the following small testing case:
[qinzhao@localhost memory_leak]$ cat t1.c
int main(int argc, char** argv)
{
   return 0;
}

valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all
/home/qinzhao/Install/latest/bin/gcc -g -O2 t1.c

==29535== Memcheck, a memory error detector
==29535== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==29535== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==29535== Command: /home/qinzhao/Install/latest/bin/gcc -g -O2 t1.c
==29535== 
==29535== 
==29535== HEAP SUMMARY:
==29535==     in use at exit: 170,882 bytes in 80 blocks
==29535==   total heap usage: 378 allocs, 298 frees, 218,175 bytes allocated
==29535== 
==29535== 1 bytes in 1 blocks are still reachable in loss record 1 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4529D0: diagnostic_initialize(diagnostic_context*, int)
(diagnostic.c:179)
==29535==    by 0x410EF7: driver::global_initializations() (gcc.c:7443)
==29535==    by 0x410CD4: driver::main(int, char**) (gcc.c:7363)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 3 bytes in 1 blocks are still reachable in loss record 2 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x414186: save_string(char const*, int) (gcc.c:8495)
==29535==    by 0x40CAEF: do_spec_1(char const*, int, char const*) (gcc.c:5611)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40DD59: do_spec_1(char const*, int, char const*) (gcc.c:6039)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535== 
==29535== 3 bytes in 1 blocks are still reachable in loss record 3 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x414186: save_string(char const*, int) (gcc.c:8495)
==29535==    by 0x40CAEF: do_spec_1(char const*, int, char const*) (gcc.c:5611)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40DD59: do_spec_1(char const*, int, char const*) (gcc.c:6039)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535== 
==29535== 5 bytes in 1 blocks are still reachable in loss record 4 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x414186: save_string(char const*, int) (gcc.c:8495)
==29535==    by 0x40CAEF: do_spec_1(char const*, int, char const*) (gcc.c:5611)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535== 
==29535== 6 bytes in 1 blocks are still reachable in loss record 5 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E5FB0: xstrdup (xstrdup.c:34)
==29535==    by 0x421D01: update_path (prefix.c:271)
==29535==    by 0x40613E: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2926)
==29535==    by 0x4062F3: add_sysrooted_prefix(path_prefix*, char const*, char
const*, int, int, int) (gcc.c:2976)
==29535==    by 0x412447: driver::set_up_specs() const (gcc.c:7703)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 6 bytes in 1 blocks are still reachable in loss record 6 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E3B0F: choose_tmpdir (make-temp-file.c:143)
==29535==    by 0x4E3B6E: make_temp_file_with_prefix (make-temp-file.c:186)
==29535==    by 0x4E3CE2: make_temp_file (make-temp-file.c:227)
==29535==    by 0x40CB2D: do_spec_1(char const*, int, char const*) (gcc.c:5613)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535== 
==29535== 8 bytes in 1 blocks are still reachable in loss record 7 of 69
==29535==    at 0x4C2B955: calloc (vg_replace_malloc.c:711)
==29535==    by 0x4E5E95: xcalloc (xmalloc.c:162)
==29535==    by 0x4133D0: driver::prepare_infiles() (gcc.c:8056)
==29535==    by 0x410D7B: driver::main(int, char**) (gcc.c:7380)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 9 bytes in 1 blocks are still reachable in loss record 8 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x415769: set_multilib_dir() (gcc.c:9037)
==29535==    by 0x412712: driver::set_up_specs() const (gcc.c:7784)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 10 bytes in 1 blocks are still reachable in loss record 9 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E5FB0: xstrdup (xstrdup.c:34)
==29535==    by 0x421D01: update_path (prefix.c:271)
==29535==    by 0x40613E: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2926)
==29535==    by 0x4062F3: add_sysrooted_prefix(path_prefix*, char const*, char
const*, int, int, int) (gcc.c:2976)
==29535==    by 0x412475: driver::set_up_specs() const (gcc.c:7707)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 16 bytes in 1 blocks are still reachable in loss record 10 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x415018: set_multilib_dir() (gcc.c:8837)
==29535==    by 0x412712: driver::set_up_specs() const (gcc.c:7784)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 16 bytes in 1 blocks are still reachable in loss record 11 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E3BDF: make_temp_file_with_prefix (make-temp-file.c:201)
==29535==    by 0x4E3CE2: make_temp_file (make-temp-file.c:227)
==29535==    by 0x40CB2D: do_spec_1(char const*, int, char const*) (gcc.c:5613)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40DD59: do_spec_1(char const*, int, char const*) (gcc.c:6039)
==29535== 
==29535== 16 bytes in 1 blocks are still reachable in loss record 12 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E3BDF: make_temp_file_with_prefix (make-temp-file.c:201)
==29535==    by 0x4E3CE2: make_temp_file (make-temp-file.c:227)
==29535==    by 0x40CB2D: do_spec_1(char const*, int, char const*) (gcc.c:5613)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40DD59: do_spec_1(char const*, int, char const*) (gcc.c:6039)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535== 
==29535== 16 bytes in 1 blocks are definitely lost in loss record 13 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4053AD: record_temp_file(char const*, int, int) (gcc.c:2480)
==29535==    by 0x4044EB: store_arg(char const*, int, int) (gcc.c:2018)
==29535==    by 0x40AE98: end_going_arg() (gcc.c:4933)
==29535==    by 0x40BAAE: do_spec_1(char const*, int, char const*) (gcc.c:5320)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535== 
==29535== 18 bytes in 1 blocks are still reachable in loss record 14 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E3BDF: make_temp_file_with_prefix (make-temp-file.c:201)
==29535==    by 0x4E3CE2: make_temp_file (make-temp-file.c:227)
==29535==    by 0x40CB2D: do_spec_1(char const*, int, char const*) (gcc.c:5613)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535== 
==29535== 21 bytes in 1 blocks are still reachable in loss record 15 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x411CD5: driver::set_up_specs() const (gcc.c:7569)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 28 bytes in 1 blocks are still reachable in loss record 16 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x411CB0: driver::set_up_specs() const (gcc.c:7568)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 31 bytes in 1 blocks are still reachable in loss record 17 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E5FB0: xstrdup (xstrdup.c:34)
==29535==    by 0x408FEC: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4345)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 1 blocks are still reachable in loss record 18 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x406171: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2931)
==29535==    by 0x409EF1: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4693)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 1 blocks are still reachable in loss record 19 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x406171: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2931)
==29535==    by 0x409F16: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4695)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 1 blocks are still reachable in loss record 20 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x406171: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2931)
==29535==    by 0x409F3B: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4697)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 1 blocks are still reachable in loss record 21 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x406171: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2931)
==29535==    by 0x409F60: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4700)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 1 blocks are still reachable in loss record 22 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x406171: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2931)
==29535==    by 0x40A05B: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4717)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 1 blocks are still reachable in loss record 23 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x406171: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2931)
==29535==    by 0x40A0A1: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4720)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 1 blocks are still reachable in loss record 24 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x406171: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2931)
==29535==    by 0x412419: driver::set_up_specs() const (gcc.c:7695)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 1 blocks are still reachable in loss record 25 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x406171: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2931)
==29535==    by 0x4062F3: add_sysrooted_prefix(path_prefix*, char const*, char
const*, int, int, int) (gcc.c:2976)
==29535==    by 0x412447: driver::set_up_specs() const (gcc.c:7703)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 1 blocks are still reachable in loss record 26 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x406171: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2931)
==29535==    by 0x4062F3: add_sysrooted_prefix(path_prefix*, char const*, char
const*, int, int, int) (gcc.c:2976)
==29535==    by 0x412475: driver::set_up_specs() const (gcc.c:7707)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 32 bytes in 2 blocks are indirectly lost in loss record 27 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x405322: record_temp_file(char const*, int, int) (gcc.c:2462)
==29535==    by 0x4044EB: store_arg(char const*, int, int) (gcc.c:2018)
==29535==    by 0x40AE98: end_going_arg() (gcc.c:4933)
==29535==    by 0x40BAAE: do_spec_1(char const*, int, char const*) (gcc.c:5320)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535== 
==29535== 38 bytes in 1 blocks are still reachable in loss record 28 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x421B8C: translate_name(char*) (prefix.c:223)
==29535==    by 0x421CEF: update_path (prefix.c:268)
==29535==    by 0x40613E: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2926)
==29535==    by 0x409F3B: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4697)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 38 bytes in 1 blocks are still reachable in loss record 29 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x421B8C: translate_name(char*) (prefix.c:223)
==29535==    by 0x421CEF: update_path (prefix.c:268)
==29535==    by 0x40613E: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2926)
==29535==    by 0x409F60: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4700)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 40 bytes in 1 blocks are still reachable in loss record 30 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x40CA9A: do_spec_1(char const*, int, char const*) (gcc.c:5600)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40DD59: do_spec_1(char const*, int, char const*) (gcc.c:6039)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535== 
==29535== 40 bytes in 1 blocks are still reachable in loss record 31 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x40CA9A: do_spec_1(char const*, int, char const*) (gcc.c:5600)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40DD59: do_spec_1(char const*, int, char const*) (gcc.c:6039)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535== 
==29535== 40 bytes in 1 blocks are still reachable in loss record 32 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x40CA9A: do_spec_1(char const*, int, char const*) (gcc.c:5600)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535== 
==29535== 42 bytes in 1 blocks are still reachable in loss record 33 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x421B8C: translate_name(char*) (prefix.c:223)
==29535==    by 0x421CEF: update_path (prefix.c:268)
==29535==    by 0x40613E: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2926)
==29535==    by 0x409EF1: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4693)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 42 bytes in 1 blocks are still reachable in loss record 34 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x421B8C: translate_name(char*) (prefix.c:223)
==29535==    by 0x421CEF: update_path (prefix.c:268)
==29535==    by 0x40613E: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2926)
==29535==    by 0x409F16: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4695)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 48 bytes in 1 blocks are still reachable in loss record 35 of 69
==29535==    at 0x4C2B955: calloc (vg_replace_malloc.c:711)
==29535==    by 0x4E5E95: xcalloc (xmalloc.c:162)
==29535==    by 0x403C0C: init_spec() (gcc.c:1723)
==29535==    by 0x411D32: driver::set_up_specs() const (gcc.c:7576)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 50 bytes in 3 blocks are indirectly lost in loss record 36 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E5FB0: xstrdup (xstrdup.c:34)
==29535==    by 0x4052BC: record_temp_file(char const*, int, int) (gcc.c:2450)
==29535==    by 0x4044EB: store_arg(char const*, int, int) (gcc.c:2018)
==29535==    by 0x40AE98: end_going_arg() (gcc.c:4933)
==29535==    by 0x40BAAE: do_spec_1(char const*, int, char const*) (gcc.c:5320)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535== 
==29535== 72 bytes in 1 blocks are still reachable in loss record 37 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x45296B: diagnostic_initialize(diagnostic_context*, int)
(diagnostic.c:173)
==29535==    by 0x410EF7: driver::global_initializations() (gcc.c:7443)
==29535==    by 0x410CD4: driver::main(int, char**) (gcc.c:7363)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 74 bytes in 1 blocks are still reachable in loss record 38 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E5FB0: xstrdup (xstrdup.c:34)
==29535==    by 0x421D01: update_path (prefix.c:271)
==29535==    by 0x40613E: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2926)
==29535==    by 0x412419: driver::set_up_specs() const (gcc.c:7695)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 74 bytes in 1 blocks are definitely lost in loss record 39 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x4123F6: driver::set_up_specs() const (gcc.c:7694)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 88 bytes in 1 blocks are definitely lost in loss record 40 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5EE9: xrealloc (xmalloc.c:177)
==29535==    by 0x41A7E0: void va_heap::reserve<char const*>(vec<char const*,
va_heap, vl_embed>*&, unsigned int, bool) (vec.h:290)
==29535==    by 0x41A101: vec<char const*, va_heap, vl_ptr>::reserve(unsigned
int, bool) (vec.h:1697)
==29535==    by 0x41A012: vec<char const*, va_heap,
vl_ptr>::reserve_exact(unsigned int) (vec.h:1717)
==29535==    by 0x419AF0: vec<char const*, va_heap, vl_ptr>::create(unsigned
int) (vec.h:1732)
==29535==    by 0x404421: alloc_args() (gcc.c:1983)
==29535==    by 0x41100B: driver::global_initializations() (gcc.c:7478)
==29535==    by 0x410CD4: driver::main(int, char**) (gcc.c:7363)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 88 bytes in 1 blocks are definitely lost in loss record 41 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5EE9: xrealloc (xmalloc.c:177)
==29535==    by 0x41A7E0: void va_heap::reserve<char const*>(vec<char const*,
va_heap, vl_embed>*&, unsigned int, bool) (vec.h:290)
==29535==    by 0x41A101: vec<char const*, va_heap, vl_ptr>::reserve(unsigned
int, bool) (vec.h:1697)
==29535==    by 0x41A012: vec<char const*, va_heap,
vl_ptr>::reserve_exact(unsigned int) (vec.h:1717)
==29535==    by 0x419AF0: vec<char const*, va_heap, vl_ptr>::create(unsigned
int) (vec.h:1732)
==29535==    by 0x404421: alloc_args() (gcc.c:1983)
==29535==    by 0x40E06F: eval_spec_function(char const*, char const*, char
const*) (gcc.c:6142)
==29535==    by 0x40E360: handle_spec_function(char const*, bool*, char const*)
(gcc.c:6231)
==29535==    by 0x40EA0F: handle_braces(char const*) (gcc.c:6385)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40B11B: do_spec_2(char const*, char const*) (gcc.c:5026)
==29535== 
==29535== 88 bytes in 1 blocks are definitely lost in loss record 42 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5EE9: xrealloc (xmalloc.c:177)
==29535==    by 0x41A7E0: void va_heap::reserve<char const*>(vec<char const*,
va_heap, vl_embed>*&, unsigned int, bool) (vec.h:290)
==29535==    by 0x41A101: vec<char const*, va_heap, vl_ptr>::reserve(unsigned
int, bool) (vec.h:1697)
==29535==    by 0x41A012: vec<char const*, va_heap,
vl_ptr>::reserve_exact(unsigned int) (vec.h:1717)
==29535==    by 0x419AF0: vec<char const*, va_heap, vl_ptr>::create(unsigned
int) (vec.h:1732)
==29535==    by 0x404421: alloc_args() (gcc.c:1983)
==29535==    by 0x40E06F: eval_spec_function(char const*, char const*, char
const*) (gcc.c:6142)
==29535==    by 0x40E360: handle_spec_function(char const*, bool*, char const*)
(gcc.c:6231)
==29535==    by 0x40D97D: do_spec_1(char const*, int, char const*) (gcc.c:5930)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535== 
==29535== 98 (16 direct, 82 indirect) bytes in 1 blocks are definitely lost in
loss record 43 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x405322: record_temp_file(char const*, int, int) (gcc.c:2462)
==29535==    by 0x4044EB: store_arg(char const*, int, int) (gcc.c:2018)
==29535==    by 0x40AE98: end_going_arg() (gcc.c:4933)
==29535==    by 0x40BAAE: do_spec_1(char const*, int, char const*) (gcc.c:5320)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535== 
==29535== 101 bytes in 1 blocks are still reachable in loss record 44 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x421B8C: translate_name(char*) (prefix.c:223)
==29535==    by 0x421CEF: update_path (prefix.c:268)
==29535==    by 0x40613E: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2926)
==29535==    by 0x40A05B: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4717)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 101 bytes in 1 blocks are still reachable in loss record 45 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x421B8C: translate_name(char*) (prefix.c:223)
==29535==    by 0x421CEF: update_path (prefix.c:268)
==29535==    by 0x40613E: add_prefix(path_prefix*, char const*, char const*,
int, int, int) (gcc.c:2926)
==29535==    by 0x40A0A1: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4720)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 101 bytes in 1 blocks are definitely lost in loss record 46 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x40A038: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4716)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 101 bytes in 1 blocks are definitely lost in loss record 47 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x40A07E: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4719)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 120 bytes in 1 blocks are still reachable in loss record 48 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x414936: used_arg_t::operator()(char const*, int) (gcc.c:8700)
==29535==    by 0x415558: set_multilib_dir() (gcc.c:8986)
==29535==    by 0x412712: driver::set_up_specs() const (gcc.c:7784)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 134 bytes in 1 blocks are still reachable in loss record 49 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x405766: for_each_path(path_prefix const*, bool, unsigned
long, void* (*)(char*, void*), void*) (gcc.c:2614)
==29535==    by 0x4060D6: find_a_file(path_prefix const*, char const*, int,
bool) (gcc.c:2885)
==29535==    by 0x4104E8: find_file(char const*) (gcc.c:7135)
==29535==    by 0x40AE16: end_going_arg() (gcc.c:4919)
==29535==    by 0x40BAAE: do_spec_1(char const*, int, char const*) (gcc.c:5320)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535== 
==29535== 136 bytes in 1 blocks are still reachable in loss record 50 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x405766: for_each_path(path_prefix const*, bool, unsigned
long, void* (*)(char*, void*), void*) (gcc.c:2614)
==29535==    by 0x4060D6: find_a_file(path_prefix const*, char const*, int,
bool) (gcc.c:2885)
==29535==    by 0x4104E8: find_file(char const*) (gcc.c:7135)
==29535==    by 0x40AE16: end_going_arg() (gcc.c:4919)
==29535==    by 0x40BAAE: do_spec_1(char const*, int, char const*) (gcc.c:5320)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40D594: do_spec_1(char const*, int, char const*) (gcc.c:5871)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535== 
==29535== 136 bytes in 1 blocks are definitely lost in loss record 51 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x405766: for_each_path(path_prefix const*, bool, unsigned
long, void* (*)(char*, void*), void*) (gcc.c:2614)
==29535==    by 0x4060D6: find_a_file(path_prefix const*, char const*, int,
bool) (gcc.c:2885)
==29535==    by 0x413B34: driver::maybe_run_linker(char const*) const
(gcc.c:8286)
==29535==    by 0x410DB4: driver::main(int, char**) (gcc.c:7385)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 139 bytes in 1 blocks are still reachable in loss record 52 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x405766: for_each_path(path_prefix const*, bool, unsigned
long, void* (*)(char*, void*), void*) (gcc.c:2614)
==29535==    by 0x4060D6: find_a_file(path_prefix const*, char const*, int,
bool) (gcc.c:2885)
==29535==    by 0x412968: driver::maybe_putenv_COLLECT_LTO_WRAPPER() const
(gcc.c:7811)
==29535==    by 0x410D0E: driver::main(int, char**) (gcc.c:7367)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 144 bytes in 1 blocks are still reachable in loss record 53 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x405766: for_each_path(path_prefix const*, bool, unsigned
long, void* (*)(char*, void*), void*) (gcc.c:2614)
==29535==    by 0x4060D6: find_a_file(path_prefix const*, char const*, int,
bool) (gcc.c:2885)
==29535==    by 0x413B92: driver::maybe_run_linker(char const*) const
(gcc.c:8304)
==29535==    by 0x410DB4: driver::main(int, char**) (gcc.c:7385)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 164 bytes in 1 blocks are definitely lost in loss record 54 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x4E149C: concat (concat.c:147)
==29535==    by 0x416F41: pass_through_libs_spec_func(int, char const**)
(gcc.c:9898)
==29535==    by 0x40E0D3: eval_spec_function(char const*, char const*, char
const*) (gcc.c:6151)
==29535==    by 0x40E360: handle_spec_function(char const*, bool*, char const*)
(gcc.c:6231)
==29535==    by 0x40D97D: do_spec_1(char const*, int, char const*) (gcc.c:5930)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535== 
==29535== 336 bytes in 1 blocks are still reachable in loss record 55 of 69
==29535==    at 0x4C2B955: calloc (vg_replace_malloc.c:711)
==29535==    by 0x4E5E95: xcalloc (xmalloc.c:162)
==29535==    by 0x47A6EE: pretty_printer::pretty_printer(int)
(pretty-print.c:1573)
==29535==    by 0x45298F: diagnostic_initialize(diagnostic_context*, int)
(diagnostic.c:174)
==29535==    by 0x410EF7: driver::global_initializations() (gcc.c:7443)
==29535==    by 0x410CD4: driver::main(int, char**) (gcc.c:7363)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 368 bytes in 1 blocks are still reachable in loss record 56 of 69
==29535==    at 0x4C2BB58: realloc (vg_replace_malloc.c:785)
==29535==    by 0x4E5F02: xrealloc (xmalloc.c:179)
==29535==    by 0x41A7E0: void va_heap::reserve<char const*>(vec<char const*,
va_heap, vl_embed>*&, unsigned int, bool) (vec.h:290)
==29535==    by 0x41A101: vec<char const*, va_heap, vl_ptr>::reserve(unsigned
int, bool) (vec.h:1697)
==29535==    by 0x419B67: vec<char const*, va_heap, vl_ptr>::safe_push(char
const* const&) (vec.h:1806)
==29535==    by 0x404488: store_arg(char const*, int, int) (gcc.c:2008)
==29535==    by 0x40AE98: end_going_arg() (gcc.c:4933)
==29535==    by 0x40BAAE: do_spec_1(char const*, int, char const*) (gcc.c:5320)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535== 
==29535== 384 bytes in 1 blocks are still reachable in loss record 57 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x40797F: alloc_switch() (gcc.c:3670)
==29535==    by 0x4079FF: save_switch(char const*, unsigned long, char const*
const*, bool, bool) (gcc.c:3686)
==29535==    by 0x408F0C: 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:4302)
==29535==    by 0x42D1D8: 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:1144)
==29535==    by 0x42DA07: read_cmdline_option(gcc_options*, gcc_options*,
cl_decoded_option*, unsigned int, unsigned int, cl_option_handlers const*,
diagnostic_context*) (opts-common.c:1394)
==29535==    by 0x409BBD: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4610)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 406 bytes in 3 blocks are still reachable in loss record 58 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x405766: for_each_path(path_prefix const*, bool, unsigned
long, void* (*)(char*, void*), void*) (gcc.c:2614)
==29535==    by 0x4060D6: find_a_file(path_prefix const*, char const*, int,
bool) (gcc.c:2885)
==29535==    by 0x4104E8: find_file(char const*) (gcc.c:7135)
==29535==    by 0x40AE16: end_going_arg() (gcc.c:4919)
==29535==    by 0x40BAAE: do_spec_1(char const*, int, char const*) (gcc.c:5320)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535==    by 0x40EE3A: handle_braces(char const*) (gcc.c:6507)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40D929: do_spec_1(char const*, int, char const*) (gcc.c:5916)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535== 
==29535== 512 bytes in 1 blocks are still reachable in loss record 59 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x40789B: alloc_infile() (gcc.c:3642)
==29535==    by 0x407901: add_infile(char const*, char const*) (gcc.c:3657)
==29535==    by 0x409B5B: process_command(unsigned int, cl_decoded_option*)
(gcc.c:4602)
==29535==    by 0x411C4D: driver::set_up_specs() const (gcc.c:7556)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 616 bytes in 7 blocks are definitely lost in loss record 60 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5EE9: xrealloc (xmalloc.c:177)
==29535==    by 0x41A7E0: void va_heap::reserve<char const*>(vec<char const*,
va_heap, vl_embed>*&, unsigned int, bool) (vec.h:290)
==29535==    by 0x41A101: vec<char const*, va_heap, vl_ptr>::reserve(unsigned
int, bool) (vec.h:1697)
==29535==    by 0x41A012: vec<char const*, va_heap,
vl_ptr>::reserve_exact(unsigned int) (vec.h:1717)
==29535==    by 0x419AF0: vec<char const*, va_heap, vl_ptr>::create(unsigned
int) (vec.h:1732)
==29535==    by 0x404421: alloc_args() (gcc.c:1983)
==29535==    by 0x40E06F: eval_spec_function(char const*, char const*, char
const*) (gcc.c:6142)
==29535==    by 0x40E360: handle_spec_function(char const*, bool*, char const*)
(gcc.c:6231)
==29535==    by 0x40EA0F: handle_braces(char const*) (gcc.c:6385)
==29535==    by 0x40D94B: do_spec_1(char const*, int, char const*) (gcc.c:5924)
==29535==    by 0x40F02E: process_brace_body(char const*, char const*, char
const*, int, int) (gcc.c:6599)
==29535== 
==29535== 2,848 bytes in 1 blocks are still reachable in loss record 61 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x411C57: driver::set_up_specs() const (gcc.c:7561)
==29535==    by 0x410CEC: driver::main(int, char**) (gcc.c:7365)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 4,064 bytes in 1 blocks are still reachable in loss record 62 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x48DED5: mempool_obstack_chunk_alloc(unsigned long)
(memory-block.cc:66)
==29535==    by 0x4E3D32: call_chunkfun (obstack.c:94)
==29535==    by 0x4E3DF5: _obstack_begin_worker (obstack.c:141)
==29535==    by 0x4E3EFC: _obstack_begin (obstack.c:164)
==29535==    by 0x47783F: output_buffer::output_buffer() (pretty-print.c:740)
==29535==    by 0x47A706: pretty_printer::pretty_printer(int)
(pretty-print.c:1585)
==29535==    by 0x45298F: diagnostic_initialize(diagnostic_context*, int)
(diagnostic.c:174)
==29535==    by 0x410EF7: driver::global_initializations() (gcc.c:7443)
==29535==    by 0x410CD4: driver::main(int, char**) (gcc.c:7363)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 4,064 bytes in 1 blocks are still reachable in loss record 63 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x48DED5: mempool_obstack_chunk_alloc(unsigned long)
(memory-block.cc:66)
==29535==    by 0x4E3D32: call_chunkfun (obstack.c:94)
==29535==    by 0x4E3DF5: _obstack_begin_worker (obstack.c:141)
==29535==    by 0x4E3EFC: _obstack_begin (obstack.c:164)
==29535==    by 0x477864: output_buffer::output_buffer() (pretty-print.c:741)
==29535==    by 0x47A706: pretty_printer::pretty_printer(int)
(pretty-print.c:1585)
==29535==    by 0x45298F: diagnostic_initialize(diagnostic_context*, int)
(diagnostic.c:174)
==29535==    by 0x410EF7: driver::global_initializations() (gcc.c:7443)
==29535==    by 0x410CD4: driver::main(int, char**) (gcc.c:7363)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 4,064 bytes in 1 blocks are still reachable in loss record 64 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x48DED5: mempool_obstack_chunk_alloc(unsigned long)
(memory-block.cc:66)
==29535==    by 0x4E3D32: call_chunkfun (obstack.c:94)
==29535==    by 0x4E3DF5: _obstack_begin_worker (obstack.c:141)
==29535==    by 0x4E3EFC: _obstack_begin (obstack.c:164)
==29535==    by 0x41102A: driver::global_initializations() (gcc.c:7480)
==29535==    by 0x410CD4: driver::main(int, char**) (gcc.c:7363)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 4,064 bytes in 1 blocks are still reachable in loss record 65 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x48DED5: mempool_obstack_chunk_alloc(unsigned long)
(memory-block.cc:66)
==29535==    by 0x4E3D32: call_chunkfun (obstack.c:94)
==29535==    by 0x4E3DF5: _obstack_begin_worker (obstack.c:141)
==29535==    by 0x4E3EFC: _obstack_begin (obstack.c:164)
==29535==    by 0x411066: driver::build_multilib_strings() const (gcc.c:7494)
==29535==    by 0x410CE0: driver::main(int, char**) (gcc.c:7364)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 4,064 bytes in 1 blocks are still reachable in loss record 66 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x48DED5: mempool_obstack_chunk_alloc(unsigned long)
(memory-block.cc:66)
==29535==    by 0x4E3D32: call_chunkfun (obstack.c:94)
==29535==    by 0x4E3DF5: _obstack_begin_worker (obstack.c:141)
==29535==    by 0x4E3EFC: _obstack_begin (obstack.c:164)
==29535==    by 0x4129B1: driver::maybe_putenv_COLLECT_LTO_WRAPPER() const
(gcc.c:7816)
==29535==    by 0x410D0E: driver::main(int, char**) (gcc.c:7367)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 4,064 bytes in 1 blocks are definitely lost in loss record 67 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x48DED5: mempool_obstack_chunk_alloc(unsigned long)
(memory-block.cc:66)
==29535==    by 0x4E3D32: call_chunkfun (obstack.c:94)
==29535==    by 0x4E3DF5: _obstack_begin_worker (obstack.c:141)
==29535==    by 0x4E3EFC: _obstack_begin (obstack.c:164)
==29535==    by 0x412748: driver::putenv_COLLECT_GCC(char const*) const
(gcc.c:7794)
==29535==    by 0x410D02: driver::main(int, char**) (gcc.c:7366)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 65,536 bytes in 1 blocks are still reachable in loss record 68 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x4E5E37: xmalloc (xmalloc.c:147)
==29535==    by 0x48DF9B: memory_block_pool::allocate() (memory-block.h:59)
==29535==    by 0x48DEC7: mempool_obstack_chunk_alloc(unsigned long)
(memory-block.cc:64)
==29535==    by 0x4E3D32: call_chunkfun (obstack.c:94)
==29535==    by 0x4E3DF5: _obstack_begin_worker (obstack.c:141)
==29535==    by 0x4E3EFC: _obstack_begin (obstack.c:164)
==29535==    by 0x4224D7: init_opts_obstack() (opts.c:275)
==29535==    by 0x410E93: driver::decode_argv(int, char const**) (gcc.c:7425)
==29535==    by 0x410CC8: driver::main(int, char**) (gcc.c:7362)
==29535==    by 0x41ACF8: main (gcc-main.c:47)
==29535== 
==29535== 72,704 bytes in 1 blocks are still reachable in loss record 69 of 69
==29535==    at 0x4C29BC3: malloc (vg_replace_malloc.c:299)
==29535==    by 0x403615: _GLOBAL__sub_I_eh_alloc.cc (in
/home/qinzhao/Install/latest/bin/gcc)
==29535==    by 0x4F65BC: __libc_csu_init (in
/home/qinzhao/Install/latest/bin/gcc)
==29535==    by 0x515A424: (below main) (in /usr/lib64/libc-2.17.so)
==29535== 
==29535== LEAK SUMMARY:
==29535==    definitely lost: 5,552 bytes in 18 blocks
==29535==    indirectly lost: 82 bytes in 5 blocks
==29535==      possibly lost: 0 bytes in 0 blocks
==29535==    still reachable: 165,248 bytes in 57 blocks
==29535==         suppressed: 0 bytes in 0 blocks
==29535== 
==29535== For counts of detected and suppressed errors, rerun with: -v
==29535== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
[qinzhao@localhost memory_leak]$

Reply via email to