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]$