* Memory leaks (detected by Valgrind) @ 2021-12-16 17:17 Marc Nieper-Wißkirchen 2021-12-16 22:00 ` Marc Nieper-Wißkirchen 0 siblings, 1 reply; 16+ messages in thread From: Marc Nieper-Wißkirchen @ 2021-12-16 17:17 UTC (permalink / raw) To: jit When I compile a gccjit context, Valgrind complains about a lot of memory leaks. Below I have attached a reproducing file extracted from my project. To reproduce the errors, I run: $ gcc dummy.c reproducer.c -lgccjit -rdynamic $ valgrind ./a.out Thanks, Marc ++++ reproducer.c: /* This code was autogenerated by gcc_jit_context_dump_reproducer_to_file. libgccjit (Ubuntu 11.2.0-7ubuntu2) version 11.2.0 (x86_64-linux-gnu) compiled by GNU C version 11.2.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.0, isl version isl-0.24-GMP */ #include <libgccjit.h> #pragma GCC diagnostic ignored "-Wunused-variable" static void set_options (gcc_jit_context *ctxt_0x6db8b10, gcc_jit_context *ctxt_0x6dbd370); static void create_code (gcc_jit_context *ctxt_0x6db8b10, gcc_jit_context *ctxt_0x6dbd370); int main (int argc, const char **argv) { gcc_jit_context *ctxt_0x6db8b10; gcc_jit_context *ctxt_0x6dbd370; gcc_jit_result *result; ctxt_0x6db8b10 = gcc_jit_context_acquire (); ctxt_0x6dbd370 = gcc_jit_context_new_child_context (ctxt_0x6db8b10); set_options (ctxt_0x6db8b10, ctxt_0x6dbd370); create_code (ctxt_0x6db8b10, ctxt_0x6dbd370); result = gcc_jit_context_compile (ctxt_0x6dbd370); gcc_jit_context_release (ctxt_0x6dbd370); gcc_jit_context_release (ctxt_0x6db8b10); gcc_jit_result_release (result); return 0; } static void set_options (gcc_jit_context *ctxt_0x6db8b10, gcc_jit_context *ctxt_0x6dbd370) { /* Set options for ctxt_0x6db8b10. */ /* String options. */ gcc_jit_context_set_str_option (ctxt_0x6db8b10, GCC_JIT_STR_OPTION_PROGNAME, NULL); /* Int options. */ gcc_jit_context_set_int_option (ctxt_0x6db8b10, GCC_JIT_INT_OPTION_OPTIMIZATION_LEVEL, 0); /* Boolean options. */ gcc_jit_context_set_bool_option (ctxt_0x6db8b10, GCC_JIT_BOOL_OPTION_DEBUGINFO, 0); gcc_jit_context_set_bool_option (ctxt_0x6db8b10, GCC_JIT_BOOL_OPTION_DUMP_INITIAL_TREE, 0); gcc_jit_context_set_bool_option (ctxt_0x6db8b10, GCC_JIT_BOOL_OPTION_DUMP_INITIAL_GIMPLE, 0); gcc_jit_context_set_bool_option (ctxt_0x6db8b10, GCC_JIT_BOOL_OPTION_DUMP_GENERATED_CODE, 0); gcc_jit_context_set_bool_option (ctxt_0x6db8b10, GCC_JIT_BOOL_OPTION_DUMP_SUMMARY, 0); gcc_jit_context_set_bool_option (ctxt_0x6db8b10, GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING, 0); gcc_jit_context_set_bool_option (ctxt_0x6db8b10, GCC_JIT_BOOL_OPTION_SELFCHECK_GC, 0); gcc_jit_context_set_bool_option (ctxt_0x6db8b10, GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES, 0); gcc_jit_context_set_bool_allow_unreachable_blocks (ctxt_0x6db8b10, 0); gcc_jit_context_set_bool_use_external_driver (ctxt_0x6db8b10, 0); /* Set options for ctxt_0x6dbd370. */ /* String options. */ gcc_jit_context_set_str_option (ctxt_0x6dbd370, GCC_JIT_STR_OPTION_PROGNAME, NULL); /* Int options. */ gcc_jit_context_set_int_option (ctxt_0x6dbd370, GCC_JIT_INT_OPTION_OPTIMIZATION_LEVEL, 0); /* Boolean options. */ gcc_jit_context_set_bool_option (ctxt_0x6dbd370, GCC_JIT_BOOL_OPTION_DEBUGINFO, 0); gcc_jit_context_set_bool_option (ctxt_0x6dbd370, GCC_JIT_BOOL_OPTION_DUMP_INITIAL_TREE, 0); gcc_jit_context_set_bool_option (ctxt_0x6dbd370, GCC_JIT_BOOL_OPTION_DUMP_INITIAL_GIMPLE, 0); gcc_jit_context_set_bool_option (ctxt_0x6dbd370, GCC_JIT_BOOL_OPTION_DUMP_GENERATED_CODE, 0); gcc_jit_context_set_bool_option (ctxt_0x6dbd370, GCC_JIT_BOOL_OPTION_DUMP_SUMMARY, 0); gcc_jit_context_set_bool_option (ctxt_0x6dbd370, GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING, 0); gcc_jit_context_set_bool_option (ctxt_0x6dbd370, GCC_JIT_BOOL_OPTION_SELFCHECK_GC, 0); gcc_jit_context_set_bool_option (ctxt_0x6dbd370, GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES, 0); gcc_jit_context_set_bool_allow_unreachable_blocks (ctxt_0x6dbd370, 0); gcc_jit_context_set_bool_use_external_driver (ctxt_0x6dbd370, 0); } static void create_code (gcc_jit_context *ctxt_0x6db8b10, gcc_jit_context *ctxt_0x6dbd370) { /* Replay of API calls for ctxt_0x6db8b10. */ gcc_jit_type *type_size_t = gcc_jit_context_get_type (ctxt_0x6db8b10, GCC_JIT_TYPE_SIZE_T); gcc_jit_type *type_void = gcc_jit_context_get_type (ctxt_0x6db8b10, GCC_JIT_TYPE_VOID); gcc_jit_type *type_unsigned_long_long = gcc_jit_context_get_type (ctxt_0x6db8b10, GCC_JIT_TYPE_UNSIGNED_LONG_LONG); gcc_jit_type *type_void__ = gcc_jit_context_get_type (ctxt_0x6db8b10, GCC_JIT_TYPE_VOID_PTR); gcc_jit_field *field_val = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_unsigned_long_long, /* gcc_jit_type *type, */ "val"); /* const char *name */ gcc_jit_field *field_ptr = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_void__, /* gcc_jit_type *type, */ "ptr"); /* const char *name */ gcc_jit_field *fields_for_union_union_yyy_object[2] = { field_val, field_ptr, }; gcc_jit_type *union_union_yyy_object = gcc_jit_context_new_union_type (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "yyy_object", /* const char *name */ 2, /* int num_fields */ fields_for_union_union_yyy_object); /* gcc_jit_field **fields */ gcc_jit_field *field_val_0x6db9660 = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_unsigned_long_long, /* gcc_jit_type *type, */ "val"); /* const char *name */ gcc_jit_field *field_ptr_0x6db97b0 = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_void__, /* gcc_jit_type *type, */ "ptr"); /* const char *name */ gcc_jit_field *fields_for_union_union_yyy_header[2] = { field_val_0x6db9660, field_ptr_0x6db97b0, }; gcc_jit_type *union_union_yyy_header = gcc_jit_context_new_union_type (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "yyy_header", /* const char *name */ 2, /* int num_fields */ fields_for_union_union_yyy_header); /* gcc_jit_field **fields */ gcc_jit_struct *struct_struct_yyy_label = gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "yyy_label"); /* const char *name */ gcc_jit_type *type_struct_yyy_label__ = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_yyy_label)); gcc_jit_field *field_header = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ union_union_yyy_header, /* gcc_jit_type *type, */ "header"); /* const char *name */ gcc_jit_field *field_ip = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_struct_yyy_label__, /* gcc_jit_type *type, */ "ip"); /* const char *name */ gcc_jit_struct *struct_struct_yyy_thread = gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "yyy_thread"); /* const char *name */ gcc_jit_field *fields_fields[2] = { field_header, field_ip, }; gcc_jit_struct_set_fields (struct_struct_yyy_thread, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 2, /* int num_fields */ fields_fields); /* gcc_jit_field **fields */ gcc_jit_type *type_struct_yyy_thread__ = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_yyy_thread)); gcc_jit_type *params_for_function_type_void__struct_yyy_thread___[1] = { type_struct_yyy_thread__, }; gcc_jit_type *ptr_to_void______struct_yyy_thread___ = gcc_jit_context_new_function_ptr_type (ctxt_0x6db8b10, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ type_void, /* gcc_jit_type *return_type */ 1, /* int num_params */ params_for_function_type_void__struct_yyy_thread___, /* gcc_jit_type **param_types */ 0); /* int is_variadic */ gcc_jit_struct *struct_struct_yyy_module = gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "yyy_module"); /* const char *name */ gcc_jit_field *fields_fields_0x6dba720[0] = { }; gcc_jit_struct_set_fields (struct_struct_yyy_module, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 0, /* int num_fields */ fields_fields_0x6dba720); /* gcc_jit_field **fields */ gcc_jit_type *type_struct_yyy_module__ = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_yyy_module)); gcc_jit_field *field_proc_count = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_size_t, /* gcc_jit_type *type, */ "proc_count"); /* const char *name */ gcc_jit_field *field_fv_count = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_size_t, /* gcc_jit_type *type, */ "fv_count"); /* const char *name */ gcc_jit_struct *struct_struct_yyy_closure_descriptor = gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "yyy_closure_descriptor"); /* const char *name */ gcc_jit_field *fields_fields_0x6dbae00[2] = { field_proc_count, field_fv_count, }; gcc_jit_struct_set_fields (struct_struct_yyy_closure_descriptor, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 2, /* int num_fields */ fields_fields_0x6dbae00); /* gcc_jit_field **fields */ gcc_jit_type *type_struct_yyy_closure_descriptor__ = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_yyy_closure_descriptor)); gcc_jit_field *field_cd = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_struct_yyy_closure_descriptor__, /* gcc_jit_type *type, */ "cd"); /* const char *name */ gcc_jit_field *field_clo_off = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_size_t, /* gcc_jit_type *type, */ "clo_off"); /* const char *name */ gcc_jit_struct *struct_struct_yyy_procedure_descriptor = gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "yyy_procedure_descriptor"); /* const char *name */ gcc_jit_field *fields_fields_0x6dbb350[2] = { field_cd, field_clo_off, }; gcc_jit_struct_set_fields (struct_struct_yyy_procedure_descriptor, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 2, /* int num_fields */ fields_fields_0x6dbb350); /* gcc_jit_field **fields */ gcc_jit_type *type_struct_yyy_procedure_descriptor__ = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_yyy_procedure_descriptor)); gcc_jit_field *field_header_0x6dbb570 = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ union_union_yyy_header, /* gcc_jit_type *type, */ "header"); /* const char *name */ gcc_jit_field *field_pd = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_struct_yyy_procedure_descriptor__, /* gcc_jit_type *type, */ "pd"); /* const char *name */ gcc_jit_struct *struct_struct_x = gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "x"); /* const char *name */ gcc_jit_field *fields_fields_0x6dbbb60[2] = { field_header_0x6dbb570, field_pd, }; gcc_jit_struct_set_fields (struct_struct_x, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 2, /* int num_fields */ fields_fields_0x6dbbb60); /* gcc_jit_field **fields */ gcc_jit_field *field_x = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ gcc_jit_struct_as_type (struct_struct_x), /* gcc_jit_type *type, */ "x"); /* const char *name */ gcc_jit_field *field_mod = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_struct_yyy_module__, /* gcc_jit_type *type, */ "mod"); /* const char *name */ gcc_jit_field *field_prog = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ ptr_to_void______struct_yyy_thread___, /* gcc_jit_type *type, */ "prog"); /* const char *name */ gcc_jit_struct *struct_struct_y = gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "y"); /* const char *name */ gcc_jit_field *fields_fields_0x6dbc250[2] = { field_mod, field_prog, }; gcc_jit_struct_set_fields (struct_struct_y, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 2, /* int num_fields */ fields_fields_0x6dbc250); /* gcc_jit_field **fields */ gcc_jit_field *field_y = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ gcc_jit_struct_as_type (struct_struct_y), /* gcc_jit_type *type, */ "y"); /* const char *name */ gcc_jit_field *fields_for_union_union_a[2] = { field_x, field_y, }; gcc_jit_type *union_union_a = gcc_jit_context_new_union_type (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ "a", /* const char *name */ 2, /* int num_fields */ fields_for_union_union_a); /* gcc_jit_field **fields */ gcc_jit_field *field_a = gcc_jit_context_new_field (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ union_union_a, /* gcc_jit_type *type, */ "a"); /* const char *name */ gcc_jit_field *fields_fields_0x6dbc800[1] = { field_a, }; gcc_jit_struct_set_fields (struct_struct_yyy_label, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 1, /* int num_fields */ fields_fields_0x6dbc800); /* gcc_jit_field **fields */ gcc_jit_param *param_thd = gcc_jit_context_new_param (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_struct_yyy_thread__, /*gcc_jit_type *type */ "thd"); /* const char *name */ gcc_jit_param *param_labels = gcc_jit_context_new_param (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_struct_yyy_label__, /*gcc_jit_type *type */ "labels"); /* const char *name */ gcc_jit_param *param_glob_count = gcc_jit_context_new_param (ctxt_0x6db8b10, NULL, /* gcc_jit_location *loc */ type_size_t, /*gcc_jit_type *type */ "glob_count"); /* const char *name */ gcc_jit_param *params_for_func_yyy_make_module[3] = { param_thd, param_labels, param_glob_count, }; gcc_jit_function *func_yyy_make_module = gcc_jit_context_new_function (ctxt_0x6db8b10, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ GCC_JIT_FUNCTION_IMPORTED, /* enum gcc_jit_function_kind kind */ type_struct_yyy_module__, /* gcc_jit_type *return_type */ "yyy_make_module", /* const char *name */ 3, /* int num_params */ params_for_func_yyy_make_module, /* gcc_jit_param **params */ 0); /* int is_variadic */ gcc_jit_type *type_int = gcc_jit_context_get_type (ctxt_0x6db8b10, GCC_JIT_TYPE_INT); gcc_jit_function *func___builtin_trap = gcc_jit_context_get_builtin_function (ctxt_0x6db8b10, "__builtin_trap"); /* Replay of API calls for ctxt_0x6dbd370. */ gcc_jit_type *array_type_struct_yyy_label_1_ = gcc_jit_context_new_array_type (ctxt_0x6dbd370, NULL, /* gcc_jit_location *loc */ gcc_jit_struct_as_type (struct_struct_yyy_label), /* gcc_jit_type *element_type */ 1); /* int num_elements */ gcc_jit_lvalue *block_labels = gcc_jit_context_new_global (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ GCC_JIT_GLOBAL_INTERNAL, /* enum gcc_jit_global_kind kind */ array_type_struct_yyy_label_1_, /* gcc_jit_type *type */ "labels"); /* const char *name */ gcc_jit_rvalue *rvalue__size_t_0 = gcc_jit_context_new_rvalue_from_int (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ type_size_t, /* gcc_jit_type *numeric_type */ 0); /* int value */ gcc_jit_lvalue *lvalue_labels__size_t_0_ = gcc_jit_context_new_array_access (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /*gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (block_labels), /* gcc_jit_rvalue *ptr */ rvalue__size_t_0); /* gcc_jit_rvalue *index */ gcc_jit_rvalue *address_of__labels__size_t_0_ = gcc_jit_lvalue_get_address (lvalue_labels__size_t_0_, /* gcc_jit_lvalue *lvalue */ NULL); /* gcc_jit_location *loc */ gcc_jit_param *param_thd_0x6dbec70 = gcc_jit_context_new_param (ctxt_0x6dbd370, NULL, /* gcc_jit_location *loc */ type_struct_yyy_thread__, /*gcc_jit_type *type */ "thd"); /* const char *name */ gcc_jit_param *params_for_func_yyy_get_entry[1] = { param_thd_0x6dbec70, }; gcc_jit_function *func_yyy_get_entry = gcc_jit_context_new_function (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ GCC_JIT_FUNCTION_EXPORTED, /* enum gcc_jit_function_kind kind */ type_struct_yyy_label__, /* gcc_jit_type *return_type */ "yyy_get_entry", /* const char *name */ 1, /* int num_params */ params_for_func_yyy_get_entry, /* gcc_jit_param **params */ 0); /* int is_variadic */ gcc_jit_param *param_thd_0x6dbf100 = gcc_jit_context_new_param (ctxt_0x6dbd370, NULL, /* gcc_jit_location *loc */ type_struct_yyy_thread__, /*gcc_jit_type *type */ "thd"); /* const char *name */ gcc_jit_param *params_for_func_prog[1] = { param_thd_0x6dbf100, }; gcc_jit_function *func_prog = gcc_jit_context_new_function (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ GCC_JIT_FUNCTION_INTERNAL, /* enum gcc_jit_function_kind kind */ type_void, /* gcc_jit_type *return_type */ "prog", /* const char *name */ 1, /* int num_params */ params_for_func_prog, /* gcc_jit_param **params */ 0); /* int is_variadic */ gcc_jit_block *block_initial = gcc_jit_function_new_block (func_prog, "initial"); gcc_jit_lvalue *local_mod = gcc_jit_function_new_local (func_yyy_get_entry, /* gcc_jit_function *func */ NULL, /* gcc_jit_location *loc */ type_struct_yyy_module__, /* gcc_jit_type *type */ "mod"); /* const char *name */ gcc_jit_block *block_initial_0x6dbf900 = gcc_jit_function_new_block (func_yyy_get_entry, "initial"); gcc_jit_rvalue *rvalue__size_t_0_0x6dbfa00 = gcc_jit_context_new_rvalue_from_long (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ type_size_t, /* gcc_jit_type *numeric_type */ 0L); /* long value */ gcc_jit_rvalue *args_for__call_yyy_make_module__thd____labels__size_t_0_____size_t_0_[3] = { gcc_jit_param_as_rvalue (param_thd_0x6dbec70), address_of__labels__size_t_0_, rvalue__size_t_0_0x6dbfa00, }; gcc_jit_rvalue *call_yyy_make_module__thd____labels__size_t_0_____size_t_0_ = gcc_jit_context_new_call (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ func_yyy_make_module, /* gcc_jit_function *func */ 3, /* int numargs */ args_for__call_yyy_make_module__thd____labels__size_t_0_____size_t_0_); /* gcc_jit_rvalue **args*/ gcc_jit_block_add_assignment (block_initial_0x6dbf900, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_mod, /* gcc_jit_lvalue *lvalue */ call_yyy_make_module__thd____labels__size_t_0_____size_t_0_); /* gcc_jit_rvalue *rvalue */ gcc_jit_rvalue *rvalue__size_t_0_0x6dbfc90 = gcc_jit_context_new_rvalue_from_long (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ type_size_t, /* gcc_jit_type *numeric_type */ 0L); /* long value */ gcc_jit_lvalue *lvalue_labels__size_t_0__0x6dbfd20 = gcc_jit_context_new_array_access (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /*gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (block_labels), /* gcc_jit_rvalue *ptr */ rvalue__size_t_0_0x6dbfc90); /* gcc_jit_rvalue *index */ gcc_jit_block *block__UNNAMED_BLOCK_0x6dbff20_ = gcc_jit_function_new_block (func_prog, NULL); gcc_jit_lvalue *lvalue_labels__size_t_0__a = gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__0x6dbfd20, /*gcc_jit_lvalue *struct_or_union */ NULL, /*gcc_jit_location *loc */ field_a); gcc_jit_lvalue *lvalue_labels__size_t_0__a_y = gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__a, /*gcc_jit_lvalue *struct_or_union */ NULL, /*gcc_jit_location *loc */ field_y); gcc_jit_lvalue *lvalue_labels__size_t_0__a_y_mod = gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__a_y, /*gcc_jit_lvalue *struct_or_union */ NULL, /*gcc_jit_location *loc */ field_mod); gcc_jit_block_add_assignment (block_initial_0x6dbf900, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ lvalue_labels__size_t_0__a_y_mod, /* gcc_jit_lvalue *lvalue */ gcc_jit_lvalue_as_rvalue (local_mod)); /* gcc_jit_rvalue *rvalue */ gcc_jit_type *params_for_function_type_void__struct_yyy_thread____0x6dc0230[1] = { type_struct_yyy_thread__, }; gcc_jit_type *ptr_to_void______struct_yyy_thread____0x6dc0320 = gcc_jit_context_new_function_ptr_type (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ type_void, /* gcc_jit_type *return_type */ 1, /* int num_params */ params_for_function_type_void__struct_yyy_thread____0x6dc0230, /* gcc_jit_type **param_types */ 0); /* int is_variadic */ gcc_jit_rvalue *address_of_prog = gcc_jit_function_get_address (func_prog, /* gcc_jit_function *fn */ NULL); /* gcc_jit_location *loc */ gcc_jit_lvalue *lvalue_labels__size_t_0__a_0x6dc0420 = gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__0x6dbfd20, /*gcc_jit_lvalue *struct_or_union */ NULL, /*gcc_jit_location *loc */ field_a); gcc_jit_lvalue *lvalue_labels__size_t_0__a_y_0x6dc04b0 = gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__a_0x6dc0420, /*gcc_jit_lvalue *struct_or_union */ NULL, /*gcc_jit_location *loc */ field_y); gcc_jit_lvalue *lvalue_labels__size_t_0__a_y_prog = gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__a_y_0x6dc04b0, /*gcc_jit_lvalue *struct_or_union */ NULL, /*gcc_jit_location *loc */ field_prog); gcc_jit_block_add_assignment (block_initial_0x6dbf900, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ lvalue_labels__size_t_0__a_y_prog, /* gcc_jit_lvalue *lvalue */ address_of_prog); /* gcc_jit_rvalue *rvalue */ gcc_jit_rvalue *rvalue__size_t_0_0x6dc0850 = gcc_jit_context_new_rvalue_from_long (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ type_size_t, /* gcc_jit_type *numeric_type */ 0L); /* long value */ gcc_jit_lvalue *lvalue_labels__size_t_0__0x6dc08e0 = gcc_jit_context_new_array_access (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /*gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (block_labels), /* gcc_jit_rvalue *ptr */ rvalue__size_t_0_0x6dc0850); /* gcc_jit_rvalue *index */ gcc_jit_rvalue *address_of__labels__size_t_0__0x6dc0970 = gcc_jit_lvalue_get_address (lvalue_labels__size_t_0__0x6dc08e0, /* gcc_jit_lvalue *lvalue */ NULL); /* gcc_jit_location *loc */ gcc_jit_block_end_with_return (block_initial_0x6dbf900, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ address_of__labels__size_t_0__0x6dc0970); /* gcc_jit_rvalue *rvalue */ gcc_jit_block *block_default = gcc_jit_function_new_block (func_prog, "default"); gcc_jit_rvalue *rvalue__size_t_0_0x6dc0c30 = gcc_jit_context_new_rvalue_from_long (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ type_size_t, /* gcc_jit_type *numeric_type */ 0L); /* long value */ gcc_jit_case *case_case__size_t_0______size_t_0__goto__UNNAMED_BLOCK_0x6dbff20__ = gcc_jit_context_new_case (ctxt_0x6dbd370, /*gcc_jit_context *ctxt */ rvalue__size_t_0_0x6dc0c30, /* gcc_jit_rvalue *min_value */ rvalue__size_t_0_0x6dc0c30, /* gcc_jit_rvalue *max_value */ block__UNNAMED_BLOCK_0x6dbff20_); /* gcc_jit_block *dest_block */ gcc_jit_lvalue *lvalue_thd__ip= gcc_jit_rvalue_dereference_field (gcc_jit_param_as_rvalue (param_thd_0x6dbf100), /* gcc_jit_rvalue *ptr */ NULL, /* gcc_jit_location *loc */ field_ip); /* gcc_jit_field *field */ gcc_jit_rvalue *rvalue_thd__ip____labels__size_t_0_ = gcc_jit_context_new_binary_op (ctxt_0x6dbd370, NULL, /* gcc_jit_location *loc */ GCC_JIT_BINARY_OP_MINUS, /* enum gcc_jit_binary_op op */ type_size_t, /* gcc_jit_type *result_type */ gcc_jit_lvalue_as_rvalue (lvalue_thd__ip), /* gcc_jit_rvalue *a */ address_of__labels__size_t_0_); /* gcc_jit_rvalue *b */ gcc_jit_case *cases_for_switch_0x6dc0ee0[1] = { case_case__size_t_0______size_t_0__goto__UNNAMED_BLOCK_0x6dbff20__, }; gcc_jit_block_end_with_switch (block_initial, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ rvalue_thd__ip____labels__size_t_0_, /* gcc_jit_rvalue *expr */ block_default, /* gcc_jit_block *default_block */ 1, /* int num_cases */ cases_for_switch_0x6dc0ee0); /* gcc_jit_case **cases */ gcc_jit_block_end_with_void_return (block_default, /*gcc_jit_block *block */ NULL); /* gcc_jit_location *loc */ gcc_jit_param *param_code = gcc_jit_context_new_param (ctxt_0x6dbd370, NULL, /* gcc_jit_location *loc */ type_int, /*gcc_jit_type *type */ "code"); /* const char *name */ gcc_jit_param *params_for_func_exit[1] = { param_code, }; gcc_jit_function *func_exit = gcc_jit_context_new_function (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ GCC_JIT_FUNCTION_IMPORTED, /* enum gcc_jit_function_kind kind */ type_void, /* gcc_jit_type *return_type */ "exit", /* const char *name */ 1, /* int num_params */ params_for_func_exit, /* gcc_jit_param **params */ 0); /* int is_variadic */ gcc_jit_rvalue *rvalue__int_0 = gcc_jit_context_new_rvalue_from_int (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ type_int, /* gcc_jit_type *numeric_type */ 0); /* int value */ gcc_jit_rvalue *args_for__call_exit___int_0_[1] = { rvalue__int_0, }; gcc_jit_rvalue *call_exit___int_0_ = gcc_jit_context_new_call (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ func_exit, /* gcc_jit_function *func */ 1, /* int numargs */ args_for__call_exit___int_0_); /* gcc_jit_rvalue **args*/ gcc_jit_block_add_eval (block__UNNAMED_BLOCK_0x6dbff20_, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ call_exit___int_0_); /* gcc_jit_rvalue *rvalue */ gcc_jit_block_end_with_void_return (block__UNNAMED_BLOCK_0x6dbff20_, /*gcc_jit_block *block */ NULL); /* gcc_jit_location *loc */ gcc_jit_location *loc__tmp_dump_c_0_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 0, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_3_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 3, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_5_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 5, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_9_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 9, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_10_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 10, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_11_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 11, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_12_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 12, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_15_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 15, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_19_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 19, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_22_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 22, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_23_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 23, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_26_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 26, /* int line */ 0);/* int column */ gcc_jit_location *loc__tmp_dump_c_29_0 = gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ "/tmp/dump.c", /* const char *filename */ 29, /* int line */ 0);/* int column */ } ++++ dummy.c: #include <stddef.h> void *yyy_make_module (void *thd, void *labels, size_t glob_count) { return NULL; } ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-16 17:17 Memory leaks (detected by Valgrind) Marc Nieper-Wißkirchen @ 2021-12-16 22:00 ` Marc Nieper-Wißkirchen 2021-12-16 22:26 ` Mark Wielaard 0 siblings, 1 reply; 16+ messages in thread From: Marc Nieper-Wißkirchen @ 2021-12-16 22:00 UTC (permalink / raw) To: Marc Nieper-Wißkirchen; +Cc: jit Here is the Valgrind output for a debug GCC build: $ LIBRARY_PATH=~/gcc/build/gcc LD_LIBRARY_PATH=~/gcc/install/lib valgrind --leak-check=full --track-origins=yes ./a.out > valgrind.log 2>&1 $ cat valgrind.log ==22279== Memcheck, a memory error detector ==22279== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==22279== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info ==22279== Command: ./a.out ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4E85EB4: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4E85EB4: mark_pseudo_regno_live(int) (ira-lives.c:326) ==22279== by 0x4E87BB8: process_bb_node_lives(ira_loop_tree_node*) (ira-lives.c:1434) ==22279== by 0x4E6B0D6: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1806) ==22279== by 0x4E885D3: ira_create_allocno_live_ranges() (ira-lives.c:1734) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4E88562: ira_create_allocno_live_ranges() (ira-lives.c:1727) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4E85DC0: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4E85DC0: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4E85DC0: make_object_live(ira_object*) (ira-lives.c:126) ==22279== by 0x4E85ED0: mark_pseudo_regno_live(int) (ira-lives.c:330) ==22279== by 0x4E87BB8: process_bb_node_lives(ira_loop_tree_node*) (ira-lives.c:1434) ==22279== by 0x4E6B0D6: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1806) ==22279== by 0x4E885D3: ira_create_allocno_live_ranges() (ira-lives.c:1734) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4E88562: ira_create_allocno_live_ranges() (ira-lives.c:1727) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x4E85EB9: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4E85EB9: mark_pseudo_regno_live(int) (ira-lives.c:326) ==22279== by 0x4E87BB8: process_bb_node_lives(ira_loop_tree_node*) (ira-lives.c:1434) ==22279== by 0x4E6B0D6: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1806) ==22279== by 0x4E885D3: ira_create_allocno_live_ranges() (ira-lives.c:1734) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4E88562: ira_create_allocno_live_ranges() (ira-lives.c:1727) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x4E85DC2: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4E85DC2: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4E85DC2: make_object_live(ira_object*) (ira-lives.c:126) ==22279== by 0x4E85ED0: mark_pseudo_regno_live(int) (ira-lives.c:330) ==22279== by 0x4E87BB8: process_bb_node_lives(ira_loop_tree_node*) (ira-lives.c:1434) ==22279== by 0x4E6B0D6: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1806) ==22279== by 0x4E885D3: ira_create_allocno_live_ranges() (ira-lives.c:1734) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4E88562: ira_create_allocno_live_ranges() (ira-lives.c:1727) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE69D: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE69D: check_pseudos_live_through_calls(int, function_abi const&) (lra-lives.c:591) ==22279== by 0x4EBFB11: process_bb_lives (lra-lives.c:948) ==22279== by 0x4EBFB11: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF270: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1394) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBF81F: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBF81F: process_bb_lives (lra-lives.c:790) ==22279== by 0x4EBF81F: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== by 0x503A9A3: compile_file() (toplev.c:479) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF262: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1393) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EC0979: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EC0979: process_bb_lives (lra-lives.c:808) ==22279== by 0x4EC0979: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== by 0x503A9A3: compile_file() (toplev.c:479) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF262: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1393) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE69D: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE69D: check_pseudos_live_through_calls(int, function_abi const&) (lra-lives.c:591) ==22279== by 0x4EBF8BB: process_bb_lives (lra-lives.c:864) ==22279== by 0x4EBF8BB: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF270: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1394) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE224: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE224: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4EBE224: make_hard_regno_dead(int) (lra-lives.c:310) ==22279== by 0x4EBE461: mark_regno_dead(int, machine_mode) (lra-lives.c:373) ==22279== by 0x4EBF98A: process_bb_lives (lra-lives.c:888) ==22279== by 0x4EBF98A: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF29A: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1397) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE8F2: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE8F2: update_pseudo_point (lra-lives.c:266) ==22279== by 0x4EBE8F2: update_pseudo_point(int, int, point_type) (lra-lives.c:245) ==22279== by 0x4EBFB3D: process_bb_lives (lra-lives.c:946) ==22279== by 0x4EBFB3D: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF262: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1393) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE4C2: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE4C2: mark_pseudo_live(int) (lra-lives.c:323) ==22279== by 0x4EBE874: mark_regno_live (lra-lives.c:357) ==22279== by 0x4EBE874: mark_regno_live(int, machine_mode) (lra-lives.c:346) ==22279== by 0x4EBFB05: process_bb_lives (lra-lives.c:947) ==22279== by 0x4EBFB05: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF262: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1393) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE4EC: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE4EC: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4EBE4EC: mark_pseudo_live(int) (lra-lives.c:327) ==22279== by 0x4EBE874: mark_regno_live (lra-lives.c:357) ==22279== by 0x4EBE874: mark_regno_live(int, machine_mode) (lra-lives.c:346) ==22279== by 0x4EBFB05: process_bb_lives (lra-lives.c:947) ==22279== by 0x4EBFB05: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF28C: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1396) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x5027B1E: sparseset_bit_p (sparseset.h:146) ==22279== by 0x5027B1E: sparseset_and_compl(sparseset_def*, sparseset_def*, sparseset_def*) (sparseset.c:190) ==22279== by 0x4EBFC1C: process_bb_lives (lra-lives.c:961) ==22279== by 0x4EBFC1C: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF29A: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1397) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x5027B24: sparseset_bit_p (sparseset.h:146) ==22279== by 0x5027B24: sparseset_and_compl(sparseset_def*, sparseset_def*, sparseset_def*) (sparseset.c:190) ==22279== by 0x4EBFC1C: process_bb_lives (lra-lives.c:961) ==22279== by 0x4EBFC1C: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF29A: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1397) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x5027B3A: sparseset_bit_p (sparseset.h:146) ==22279== by 0x5027B3A: sparseset_set_bit (sparseset.h:165) ==22279== by 0x5027B3A: sparseset_and_compl(sparseset_def*, sparseset_def*, sparseset_def*) (sparseset.c:191) ==22279== by 0x4EBFC1C: process_bb_lives (lra-lives.c:961) ==22279== by 0x4EBFC1C: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF2A8: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1398) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x4EBF824: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBF824: process_bb_lives (lra-lives.c:790) ==22279== by 0x4EBF824: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== by 0x503A9A3: compile_file() (toplev.c:479) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF262: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1393) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x4EC0982: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EC0982: process_bb_lives (lra-lives.c:808) ==22279== by 0x4EC0982: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== by 0x503A9A3: compile_file() (toplev.c:479) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF262: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1393) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE3FD: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE3FD: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4EBE3FD: mark_pseudo_dead(int) (lra-lives.c:340) ==22279== by 0x4EBE474: mark_regno_dead (lra-lives.c:377) ==22279== by 0x4EBE474: mark_regno_dead(int, machine_mode) (lra-lives.c:366) ==22279== by 0x4EBF98A: process_bb_lives (lra-lives.c:888) ==22279== by 0x4EBF98A: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF29A: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1397) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE7C5: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE7C5: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4EBE7C5: make_hard_regno_live(int) (lra-lives.c:288) ==22279== by 0x4EBE861: mark_regno_live(int, machine_mode) (lra-lives.c:353) ==22279== by 0x4EBFB05: process_bb_lives (lra-lives.c:947) ==22279== by 0x4EBFB05: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF28C: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1396) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE7C5: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE7C5: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4EBE7C5: make_hard_regno_live(int) (lra-lives.c:288) ==22279== by 0x4EC038D: process_bb_lives (lra-lives.c:959) ==22279== by 0x4EC038D: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF28C: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1396) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x4EBE810: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE810: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4EBE810: make_hard_regno_live(int) (lra-lives.c:288) ==22279== by 0x4EC038D: process_bb_lives (lra-lives.c:959) ==22279== by 0x4EC038D: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF28C: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1396) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x5027B3C: sparseset_bit_p (sparseset.h:146) ==22279== by 0x5027B3C: sparseset_set_bit (sparseset.h:165) ==22279== by 0x5027B3C: sparseset_and_compl(sparseset_def*, sparseset_def*, sparseset_def*) (sparseset.c:191) ==22279== by 0x4EBFC1C: process_bb_lives (lra-lives.c:961) ==22279== by 0x4EBFC1C: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF2A8: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1398) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x4EBE8F7: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE8F7: update_pseudo_point (lra-lives.c:266) ==22279== by 0x4EBE8F7: update_pseudo_point(int, int, point_type) (lra-lives.c:245) ==22279== by 0x4EBFB3D: process_bb_lives (lra-lives.c:946) ==22279== by 0x4EBFB3D: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF262: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1393) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x4EBE4C4: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE4C4: mark_pseudo_live(int) (lra-lives.c:323) ==22279== by 0x4EBE874: mark_regno_live (lra-lives.c:357) ==22279== by 0x4EBE874: mark_regno_live(int, machine_mode) (lra-lives.c:346) ==22279== by 0x4EBFB05: process_bb_lives (lra-lives.c:947) ==22279== by 0x4EBFB05: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF262: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1393) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EA84A1: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EA84A1: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4EA84A1: setup_live_pseudos_and_spill_after_risky_transforms (lra-assigns.c:1206) ==22279== by 0x4EA84A1: lra_assign(bool&) (lra-assigns.c:1638) ==22279== by 0x4EA3B14: lra(_IO_FILE*) (lra.c:2387) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== by 0x503A9A3: compile_file() (toplev.c:479) ==22279== by 0x4B4CEC2: do_compile (toplev.c:2156) ==22279== by 0x4B4CEC2: toplev::main(int, char**) (toplev.c:2308) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EA7D5F: init_lives (lra-assigns.c:346) ==22279== by 0x4EA7D5F: lra_assign(bool&) (lra-assigns.c:1619) ==22279== by 0x4EA3B14: lra(_IO_FILE*) (lra.c:2387) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4E85EB4: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4E85EB4: mark_pseudo_regno_live(int) (ira-lives.c:326) ==22279== by 0x4E8641E: mark_pseudo_reg_live (ira-lives.c:410) ==22279== by 0x4E8641E: make_pseudo_conflict(rtx_def*, reg_class, rtx_def*, rtx_def*, bool) (ira-lives.c:590) ==22279== by 0x4E864A3: check_and_make_def_use_conflict (ira-lives.c:612) ==22279== by 0x4E864A3: check_and_make_def_use_conflict(rtx_def*, rtx_def*, reg_class, int, reg_class, bool) (ira-lives.c:605) ==22279== by 0x4E86886: check_and_make_def_conflict(int, int, reg_class, bool) (ira-lives.c:750) ==22279== by 0x4E87B6F: make_early_clobber_and_input_conflicts (ira-lives.c:799) ==22279== by 0x4E87B6F: process_bb_node_lives(ira_loop_tree_node*) (ira-lives.c:1428) ==22279== by 0x4E6B0D6: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1806) ==22279== by 0x4E885D3: ira_create_allocno_live_ranges() (ira-lives.c:1734) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4E88562: ira_create_allocno_live_ranges() (ira-lives.c:1727) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4E85DC0: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4E85DC0: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4E85DC0: make_object_live(ira_object*) (ira-lives.c:126) ==22279== by 0x4E85ED0: mark_pseudo_regno_live(int) (ira-lives.c:330) ==22279== by 0x4E8641E: mark_pseudo_reg_live (ira-lives.c:410) ==22279== by 0x4E8641E: make_pseudo_conflict(rtx_def*, reg_class, rtx_def*, rtx_def*, bool) (ira-lives.c:590) ==22279== by 0x4E864A3: check_and_make_def_use_conflict (ira-lives.c:612) ==22279== by 0x4E864A3: check_and_make_def_use_conflict(rtx_def*, rtx_def*, reg_class, int, reg_class, bool) (ira-lives.c:605) ==22279== by 0x4E86886: check_and_make_def_conflict(int, int, reg_class, bool) (ira-lives.c:750) ==22279== by 0x4E87B6F: make_early_clobber_and_input_conflicts (ira-lives.c:799) ==22279== by 0x4E87B6F: process_bb_node_lives(ira_loop_tree_node*) (ira-lives.c:1428) ==22279== by 0x4E6B0D6: ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*)) (ira-build.c:1806) ==22279== by 0x4E885D3: ira_create_allocno_live_ranges() (ira-lives.c:1734) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4E88562: ira_create_allocno_live_ranges() (ira-lives.c:1727) ==22279== by 0x4E6C8BC: ira_build() (ira-build.c:3433) ==22279== by 0x4E63C17: ira (ira.c:5752) ==22279== by 0x4E63C17: (anonymous namespace)::pass_ira::execute(function*) (ira.c:6075) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== ==22279== Conditional jump or move depends on uninitialised value(s) ==22279== at 0x4EBE224: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE224: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4EBE224: make_hard_regno_dead(int) (lra-lives.c:310) ==22279== by 0x4EC02E0: process_bb_lives (lra-lives.c:894) ==22279== by 0x4EC02E0: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== by 0x4C19327: symbol_table::finalize_compilation_unit() (cgraphunit.c:2529) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF29A: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1397) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== Use of uninitialised value of size 8 ==22279== at 0x4EBE4EE: sparseset_bit_p (sparseset.h:146) ==22279== by 0x4EBE4EE: sparseset_set_bit (sparseset.h:165) ==22279== by 0x4EBE4EE: mark_pseudo_live(int) (lra-lives.c:327) ==22279== by 0x4EBE874: mark_regno_live (lra-lives.c:357) ==22279== by 0x4EBE874: mark_regno_live(int, machine_mode) (lra-lives.c:346) ==22279== by 0x4EBFB05: process_bb_lives (lra-lives.c:947) ==22279== by 0x4EBFB05: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1415) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== by 0x4C16AE4: output_in_order (cgraphunit.c:2141) ==22279== by 0x4C16AE4: compile (cgraphunit.c:2345) ==22279== by 0x4C16AE4: symbol_table::compile() (cgraphunit.c:2259) ==22279== Uninitialised value was created by a heap allocation ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x50277C2: sparseset_alloc(unsigned int) (sparseset.c:33) ==22279== by 0x4EBF28C: lra_create_live_ranges_1(bool, bool) (lra-lives.c:1396) ==22279== by 0x4EC1A83: lra_create_live_ranges(bool, bool) (lra-lives.c:1484) ==22279== by 0x4EA3AEB: lra(_IO_FILE*) (lra.c:2376) ==22279== by 0x4E5E07C: do_reload (ira.c:5932) ==22279== by 0x4E5E07C: (anonymous namespace)::pass_reload::execute(function*) (ira.c:6118) ==22279== by 0x4F62821: execute_one_pass(opt_pass*) (passes.c:2637) ==22279== by 0x4F63112: execute_pass_list_1(opt_pass*) (passes.c:2737) ==22279== by 0x4F63124: execute_pass_list_1(opt_pass*) (passes.c:2738) ==22279== by 0x4F63155: execute_pass_list(function*, opt_pass*) (passes.c:2748) ==22279== by 0x4C156F1: expand (cgraphunit.c:1834) ==22279== by 0x4C156F1: cgraph_node::expand() (cgraphunit.c:1787) ==22279== ==22279== ==22279== HEAP SUMMARY: ==22279== in use at exit: 1,485,998 bytes in 1,172 blocks ==22279== total heap usage: 5,320 allocs, 4,148 frees, 2,892,811 bytes allocated ==22279== ==22279== 9 bytes in 1 blocks are definitely lost in loss record 6 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B99FD4: set_multilib_dir (gcc.c:9849) ==22279== by 0x4B99FD4: driver::set_up_specs() const (gcc.c:8545) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== by 0x402436: main (in /tmp/a.out) ==22279== ==22279== 12 bytes in 1 blocks are definitely lost in loss record 7 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E2AE8B: make_relative_prefix_1 (make-relative-prefix.c:377) ==22279== by 0x4B90807: process_command(unsigned int, cl_decoded_option*) (gcc.c:4730) ==22279== by 0x4B990B4: driver::set_up_specs() const (gcc.c:8319) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== ==22279== 16 bytes in 1 blocks are definitely lost in loss record 12 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E2AE8B: make_relative_prefix_1 (make-relative-prefix.c:377) ==22279== by 0x4B90825: process_command(unsigned int, cl_decoded_option*) (gcc.c:4733) ==22279== by 0x4B990B4: driver::set_up_specs() const (gcc.c:8319) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== ==22279== 16 bytes in 1 blocks are definitely lost in loss record 13 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B89EFF: save_switch(char const*, unsigned long, char const* const*, bool, bool) (gcc.c:3906) ==22279== by 0x4B8E931: 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:4567) ==22279== by 0x5DAE43E: handle_option(gcc_options*, gcc_options*, cl_decoded_option const*, unsigned int, int, unsigned int, cl_option_handlers const*, bool, diagnostic_context*) (opts-common.c:1181) ==22279== by 0x5DAE5CC: read_cmdline_option(gcc_options*, gcc_options*, cl_decoded_option*, unsigned int, unsigned int, cl_option_handlers const*, diagnostic_context*) (opts-common.c:1431) ==22279== by 0x4B8FF0A: process_command(unsigned int, cl_decoded_option*) (gcc.c:4926) ==22279== by 0x4B990B4: driver::set_up_specs() const (gcc.c:8319) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== ==22279== 16 bytes in 1 blocks are definitely lost in loss record 14 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B997BD: set_multilib_dir (gcc.c:9649) ==22279== by 0x4B997BD: driver::set_up_specs() const (gcc.c:8545) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== by 0x402436: main (in /tmp/a.out) ==22279== ==22279== 16 bytes in 1 blocks are definitely lost in loss record 15 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B91479: record_temp_file(char const*, int, int) (gcc.c:2679) ==22279== by 0x4B918D2: end_going_arg() [clone .part.0] (gcc.c:5648) ==22279== by 0x4B91CB6: end_going_arg (gcc.c:5627) ==22279== by 0x4B91CB6: do_spec_1(char const*, int, char const*) (gcc.c:6060) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== ==22279== 17 bytes in 1 blocks are definitely lost in loss record 16 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B9A012: set_multilib_dir (gcc.c:9857) ==22279== by 0x4B9A012: driver::set_up_specs() const (gcc.c:8545) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== by 0x402436: main (in /tmp/a.out) ==22279== ==22279== 18 bytes in 1 blocks are definitely lost in loss record 17 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B8A0CA: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==22279== by 0x4B96481: find_a_program (gcc.c:3100) ==22279== by 0x4B96481: maybe_putenv_COLLECT_LTO_WRAPPER (gcc.c:8571) ==22279== by 0x4B96481: driver::maybe_putenv_COLLECT_LTO_WRAPPER() const (gcc.c:8564) ==22279== by 0x4B49EE6: driver::main(int, char**) (gcc.c:8130) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== ==22279== 18 bytes in 1 blocks are definitely lost in loss record 18 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B8A0CA: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==22279== by 0x4B8D342: find_a_program (gcc.c:3100) ==22279== by 0x4B8D342: execute() (gcc.c:3283) ==22279== by 0x4B97CEC: driver::do_spec_on_infiles() const (gcc.c:8919) ==22279== by 0x4B4A119: driver::main(int, char**) (gcc.c:8147) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== ==22279== 18 bytes in 1 blocks are definitely lost in loss record 19 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B8A0CA: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==22279== by 0x4B9896C: find_a_program (gcc.c:3100) ==22279== by 0x4B9896C: driver::maybe_run_linker(char const*) const (gcc.c:9084) ==22279== by 0x4B4A128: driver::main(int, char**) (gcc.c:8148) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== ==22279== 18 bytes in 1 blocks are definitely lost in loss record 20 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B8948B: build_search_list(path_prefix const*, char const*, bool, bool) (gcc.c:2974) ==22279== by 0x4B989D8: putenv_from_prefixes (gcc.c:2987) ==22279== by 0x4B989D8: driver::maybe_run_linker(char const*) const (gcc.c:9115) ==22279== by 0x4B4A128: driver::main(int, char**) (gcc.c:8148) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== ==22279== 18 bytes in 1 blocks are definitely lost in loss record 21 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B8948B: build_search_list(path_prefix const*, char const*, bool, bool) (gcc.c:2974) ==22279== by 0x4B98A00: putenv_from_prefixes (gcc.c:2987) ==22279== by 0x4B98A00: driver::maybe_run_linker(char const*) const (gcc.c:9116) ==22279== by 0x4B4A128: driver::main(int, char**) (gcc.c:8148) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== ==22279== 18 bytes in 1 blocks are definitely lost in loss record 22 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B93242: do_spec_1(char const*, int, char const*) (gcc.c:6131) ==22279== by 0x4B92F63: do_spec_1(char const*, int, char const*) (gcc.c:6790) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== ==22279== 18 bytes in 1 blocks are definitely lost in loss record 23 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B8A0CA: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==22279== by 0x4B91920: find_file (gcc.c:7897) ==22279== by 0x4B91920: end_going_arg() [clone .part.0] (gcc.c:5634) ==22279== by 0x4B91CB6: end_going_arg (gcc.c:5627) ==22279== by 0x4B91CB6: do_spec_1(char const*, int, char const*) (gcc.c:6060) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9325E: do_spec_1(char const*, int, char const*) (gcc.c:6622) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== ==22279== 18 bytes in 1 blocks are definitely lost in loss record 24 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B8A0CA: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==22279== by 0x4B91920: find_file (gcc.c:7897) ==22279== by 0x4B91920: end_going_arg() [clone .part.0] (gcc.c:5634) ==22279== by 0x4B91CB6: end_going_arg (gcc.c:5627) ==22279== by 0x4B91CB6: do_spec_1(char const*, int, char const*) (gcc.c:6060) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== ==22279== 18 bytes in 1 blocks are definitely lost in loss record 25 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B8A0CA: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==22279== by 0x4B8D342: find_a_program (gcc.c:3100) ==22279== by 0x4B8D342: execute() (gcc.c:3283) ==22279== by 0x4B91F94: do_spec_1(char const*, int, char const*) (gcc.c:6036) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== ==22279== 21 bytes in 1 blocks are definitely lost in loss record 26 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B9914B: driver::set_up_specs() const (gcc.c:8332) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== ==22279== 28 bytes in 1 blocks are definitely lost in loss record 31 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B9084C: process_command(unsigned int, cl_decoded_option*) (gcc.c:4737) ==22279== by 0x4B990B4: driver::set_up_specs() const (gcc.c:8319) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== ==22279== 28 bytes in 1 blocks are definitely lost in loss record 32 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B99131: driver::set_up_specs() const (gcc.c:8330) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== ==22279== 31 bytes in 1 blocks are definitely lost in loss record 34 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E30ABE: xstrdup (xstrdup.c:34) ==22279== by 0x4B8FAF6: process_command(unsigned int, cl_decoded_option*) (gcc.c:4695) ==22279== by 0x4B990B4: driver::set_up_specs() const (gcc.c:8319) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== ==22279== 32 (16 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 35 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B91441: record_temp_file(char const*, int, int) (gcc.c:2661) ==22279== by 0x4B918D2: end_going_arg() [clone .part.0] (gcc.c:5648) ==22279== by 0x4B91CB6: end_going_arg (gcc.c:5627) ==22279== by 0x4B91CB6: do_spec_1(char const*, int, char const*) (gcc.c:6060) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== ==22279== 34 bytes in 1 blocks are definitely lost in loss record 36 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B4D4BD: init_asm_output (toplev.c:701) ==22279== by 0x4B4D4BD: lang_dependent_init (toplev.c:1852) ==22279== by 0x4B4D4BD: do_compile (toplev.c:2141) ==22279== by 0x4B4D4BD: toplev::main(int, char**) (toplev.c:2308) ==22279== by 0x4B7AE9E: gcc::jit::playback::context::compile() (jit-playback.c:2311) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== by 0x402436: main (in /tmp/a.out) ==22279== ==22279== 36 bytes in 2 blocks are definitely lost in loss record 37 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B8915C: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==22279== by 0x4B8A0CA: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==22279== by 0x4B91920: find_file (gcc.c:7897) ==22279== by 0x4B91920: end_going_arg() [clone .part.0] (gcc.c:5634) ==22279== by 0x4B91CB6: end_going_arg (gcc.c:5627) ==22279== by 0x4B91CB6: do_spec_1(char const*, int, char const*) (gcc.c:6060) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B92792: do_spec_1(char const*, int, char const*) (gcc.c:6667) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== ==22279== 39 bytes in 1 blocks are definitely lost in loss record 38 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B99669: driver::set_up_specs() const (gcc.c:8534) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== ==22279== 40 bytes in 1 blocks are definitely lost in loss record 50 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E30A27: xrealloc (xmalloc.c:179) ==22279== by 0x4B917AE: reserve<char const*> (vec.h:290) ==22279== by 0x4B917AE: reserve (vec.h:1858) ==22279== by 0x4B917AE: safe_push (vec.h:1967) ==22279== by 0x4B917AE: store_arg(char const*, int, int) (gcc.c:2181) ==22279== by 0x4B918D2: end_going_arg() [clone .part.0] (gcc.c:5648) ==22279== by 0x4B93F1A: end_going_arg (gcc.c:5627) ==22279== by 0x4B93F1A: do_spec_2(char const*, char const*) (gcc.c:5743) ==22279== by 0x4B955BC: do_self_spec(char const*) (gcc.c:5805) ==22279== by 0x4B959CB: do_option_spec(char const*, char const*) (gcc.c:5794) ==22279== by 0x4B9AA20: driver_get_configure_time_options(void (*)(char const*, void*), void*) (gcc.c:11257) ==22279== by 0x4B79B9A: gcc::jit::playback::context::make_fake_args(vec<char*, va_heap, vl_ptr>*, char const*, vec<gcc::jit::recording::requested_dump, va_heap, vl_ptr>*) (jit-playback.c:2756) ==22279== by 0x4B7ABBC: gcc::jit::playback::context::compile() (jit-playback.c:2297) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== ==22279== 48 bytes in 1 blocks are definitely lost in loss record 54 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B9949B: driver::set_up_specs() const (gcc.c:8452) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== ==22279== 59 (40 direct, 19 indirect) bytes in 1 blocks are definitely lost in loss record 102 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B934F7: do_spec_1(char const*, int, char const*) (gcc.c:6353) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B92F63: do_spec_1(char const*, int, char const*) (gcc.c:6790) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== ==22279== 74 bytes in 1 blocks are definitely lost in loss record 116 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B89335: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2813) ==22279== by 0x4B8A0CA: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==22279== by 0x4B99167: driver::set_up_specs() const (gcc.c:8334) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== ==22279== 75 bytes in 1 blocks are definitely lost in loss record 118 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B902FF: process_command(unsigned int, cl_decoded_option*) (gcc.c:5409) ==22279== by 0x4B990B4: driver::set_up_specs() const (gcc.c:8319) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== ==22279== 75 bytes in 1 blocks are definitely lost in loss record 119 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E239E1: concat (concat.c:147) ==22279== by 0x4B9032E: process_command(unsigned int, cl_decoded_option*) (gcc.c:5412) ==22279== by 0x4B990B4: driver::set_up_specs() const (gcc.c:8319) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== ==22279== 88 bytes in 1 blocks are definitely lost in loss record 128 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E30A27: xrealloc (xmalloc.c:179) ==22279== by 0x4B95DA7: reserve<char const*> (vec.h:290) ==22279== by 0x4B95DA7: reserve (vec.h:1858) ==22279== by 0x4B95DA7: reserve_exact (vec.h:1878) ==22279== by 0x4B95DA7: create (vec.h:1893) ==22279== by 0x4B95DA7: alloc_args (gcc.c:2156) ==22279== by 0x4B95DA7: driver::global_initializations() (gcc.c:8241) ==22279== by 0x4B49EAC: driver::main(int, char**) (gcc.c:8125) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== by 0x402436: main (in /tmp/a.out) ==22279== ==22279== 88 bytes in 1 blocks are definitely lost in loss record 129 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E30A27: xrealloc (xmalloc.c:179) ==22279== by 0x4B94489: reserve<char const*> (vec.h:290) ==22279== by 0x4B94489: reserve (vec.h:1858) ==22279== by 0x4B94489: reserve_exact (vec.h:1878) ==22279== by 0x4B94489: create (vec.h:1893) ==22279== by 0x4B94489: alloc_args (gcc.c:2156) ==22279== by 0x4B94489: eval_spec_function (gcc.c:6904) ==22279== by 0x4B94489: handle_spec_function(char const*, bool*, char const*) (gcc.c:6993) ==22279== by 0x4B94B6B: handle_braces(char const*) (gcc.c:7147) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B93F08: do_spec_2(char const*, char const*) (gcc.c:5741) ==22279== by 0x4B955BC: do_self_spec(char const*) (gcc.c:5805) ==22279== by 0x4B992AA: driver::set_up_specs() const (gcc.c:8367) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== ==22279== 88 bytes in 1 blocks are definitely lost in loss record 130 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E30A27: xrealloc (xmalloc.c:179) ==22279== by 0x4B94489: reserve<char const*> (vec.h:290) ==22279== by 0x4B94489: reserve (vec.h:1858) ==22279== by 0x4B94489: reserve_exact (vec.h:1878) ==22279== by 0x4B94489: create (vec.h:1893) ==22279== by 0x4B94489: alloc_args (gcc.c:2156) ==22279== by 0x4B94489: eval_spec_function (gcc.c:6904) ==22279== by 0x4B94489: handle_spec_function(char const*, bool*, char const*) (gcc.c:6993) ==22279== by 0x4B94B6B: handle_braces(char const*) (gcc.c:7147) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B92F63: do_spec_1(char const*, int, char const*) (gcc.c:6790) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== ==22279== 88 bytes in 1 blocks are definitely lost in loss record 131 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E30A27: xrealloc (xmalloc.c:179) ==22279== by 0x4B94489: reserve<char const*> (vec.h:290) ==22279== by 0x4B94489: reserve (vec.h:1858) ==22279== by 0x4B94489: reserve_exact (vec.h:1878) ==22279== by 0x4B94489: create (vec.h:1893) ==22279== by 0x4B94489: alloc_args (gcc.c:2156) ==22279== by 0x4B94489: eval_spec_function (gcc.c:6904) ==22279== by 0x4B94489: handle_spec_function(char const*, bool*, char const*) (gcc.c:6993) ==22279== by 0x4B94B6B: handle_braces(char const*) (gcc.c:7147) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B92F63: do_spec_1(char const*, int, char const*) (gcc.c:6790) ==22279== by 0x4B92F63: do_spec_1(char const*, int, char const*) (gcc.c:6790) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== ==22279== 211 bytes in 1 blocks are definitely lost in loss record 146 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x5E30ABE: xstrdup (xstrdup.c:34) ==22279== by 0x4B88BDB: set_spec(char const*, char const*, bool) (gcc.c:2089) ==22279== by 0x4B8BDA8: read_specs(char const*, bool, bool) (gcc.c:2581) ==22279== by 0x4B99543: driver::set_up_specs() const (gcc.c:8337) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== ==22279== 646 bytes in 47 blocks are definitely lost in loss record 166 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B8B982: save_string (gcc.c:9300) ==22279== by 0x4B8B982: read_specs(char const*, bool, bool) (gcc.c:2542) ==22279== by 0x4B99543: driver::set_up_specs() const (gcc.c:8337) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== ==22279== 792 bytes in 9 blocks are definitely lost in loss record 167 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E30A27: xrealloc (xmalloc.c:179) ==22279== by 0x4B94489: reserve<char const*> (vec.h:290) ==22279== by 0x4B94489: reserve (vec.h:1858) ==22279== by 0x4B94489: reserve_exact (vec.h:1878) ==22279== by 0x4B94489: create (vec.h:1893) ==22279== by 0x4B94489: alloc_args (gcc.c:2156) ==22279== by 0x4B94489: eval_spec_function (gcc.c:6904) ==22279== by 0x4B94489: handle_spec_function(char const*, bool*, char const*) (gcc.c:6993) ==22279== by 0x4B94B6B: handle_braces(char const*) (gcc.c:7147) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== by 0x4B92A0C: do_spec_1(char const*, int, char const*) (gcc.c:6675) ==22279== by 0x4B9512A: process_brace_body (gcc.c:7361) ==22279== by 0x4B9512A: handle_braces(char const*) (gcc.c:7268) ==22279== ==22279== 2,842 bytes in 1 blocks are definitely lost in loss record 185 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3098B: xmalloc (xmalloc.c:149) ==22279== by 0x4B8BA0C: save_string (gcc.c:9300) ==22279== by 0x4B8BA0C: read_specs(char const*, bool, bool) (gcc.c:2556) ==22279== by 0x4B99543: driver::set_up_specs() const (gcc.c:8337) ==22279== by 0x4B49EBC: driver::main(int, char**) (gcc.c:8127) ==22279== by 0x4B78DF7: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2979) ==22279== by 0x4B7B632: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2967) ==22279== by 0x4B7C7C2: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2888) ==22279== by 0x4B7C819: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2370) ==22279== by 0x4B7B029: gcc::jit::playback::context::compile() (jit-playback.c:2343) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== ==22279== 12,611 (48 direct, 12,563 indirect) bytes in 1 blocks are definitely lost in loss record 191 of 213 ==22279== at 0x4843839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==22279== by 0x5E3EF2B: operator new(unsigned long) (in /home/mnieper/gcc/install/lib/libgccjit.so.0.0.1) ==22279== by 0x4F642A9: gcc::pass_manager::register_pass_name(opt_pass*, char const*) (passes.c:906) ==22279== by 0x4F644B8: gcc::pass_manager::register_one_dump_file(opt_pass*) (passes.c:878) ==22279== by 0x4F64598: gcc::pass_manager::register_dump_files(opt_pass*) (passes.c:890) ==22279== by 0x4F6AF66: gcc::pass_manager::pass_manager(gcc::context*) (passes.c:1642) ==22279== by 0x4B4BAC8: general_init (toplev.c:1107) ==22279== by 0x4B4BAC8: toplev::main(int, char**) (toplev.c:2240) ==22279== by 0x4B7AE9E: gcc::jit::playback::context::compile() (jit-playback.c:2311) ==22279== by 0x4B6F345: gcc::jit::recording::context::compile() (jit-recording.c:1475) ==22279== by 0x4B5EF58: gcc_jit_context_compile (libgccjit.c:3523) ==22279== by 0x402436: main (in /tmp/a.out) ==22279== ==22279== LEAK SUMMARY: ==22279== definitely lost: 5,740 bytes in 94 blocks ==22279== indirectly lost: 12,598 bytes in 334 blocks ==22279== possibly lost: 0 bytes in 0 blocks ==22279== still reachable: 1,467,660 bytes in 744 blocks ==22279== suppressed: 0 bytes in 0 blocks ==22279== Reachable blocks (those to which a pointer was found) are not shown. ==22279== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==22279== ==22279== For lists of detected and suppressed errors, rerun with: -s ==22279== ERROR SUMMARY: 226 errors from 68 contexts (suppressed: 0 from 0) Am Do., 16. Dez. 2021 um 18:17 Uhr schrieb Marc Nieper-Wißkirchen < marc.nieper+gnu@gmail.com>: > When I compile a gccjit context, Valgrind complains about a lot of memory > leaks. Below I have attached a reproducing file extracted from my > project. To reproduce the errors, I run: > > $ gcc dummy.c reproducer.c -lgccjit -rdynamic > $ valgrind ./a.out > > Thanks, > > Marc > > ++++ > > reproducer.c: > > /* This code was autogenerated by gcc_jit_context_dump_reproducer_to_file. > > libgccjit (Ubuntu 11.2.0-7ubuntu2) version 11.2.0 (x86_64-linux-gnu) > compiled by GNU C version 11.2.0, GMP version 6.2.1, MPFR version 4.1.0, > MPC version 1.2.0, isl version isl-0.24-GMP > > */ > #include <libgccjit.h> > > #pragma GCC diagnostic ignored "-Wunused-variable" > > static void > set_options (gcc_jit_context *ctxt_0x6db8b10, > gcc_jit_context *ctxt_0x6dbd370); > > static void > create_code (gcc_jit_context *ctxt_0x6db8b10, > gcc_jit_context *ctxt_0x6dbd370); > > int > main (int argc, const char **argv) > { > gcc_jit_context *ctxt_0x6db8b10; > gcc_jit_context *ctxt_0x6dbd370; > gcc_jit_result *result; > > ctxt_0x6db8b10 = gcc_jit_context_acquire (); > ctxt_0x6dbd370 = gcc_jit_context_new_child_context (ctxt_0x6db8b10); > set_options (ctxt_0x6db8b10, > ctxt_0x6dbd370); > create_code (ctxt_0x6db8b10, > ctxt_0x6dbd370); > result = gcc_jit_context_compile (ctxt_0x6dbd370); > gcc_jit_context_release (ctxt_0x6dbd370); > gcc_jit_context_release (ctxt_0x6db8b10); > gcc_jit_result_release (result); > return 0; > } > > static void > set_options (gcc_jit_context *ctxt_0x6db8b10, > gcc_jit_context *ctxt_0x6dbd370) > { > /* Set options for ctxt_0x6db8b10. */ > /* String options. */ > gcc_jit_context_set_str_option (ctxt_0x6db8b10, > GCC_JIT_STR_OPTION_PROGNAME, > NULL); > /* Int options. */ > gcc_jit_context_set_int_option (ctxt_0x6db8b10, > GCC_JIT_INT_OPTION_OPTIMIZATION_LEVEL, > 0); > /* Boolean options. */ > gcc_jit_context_set_bool_option (ctxt_0x6db8b10, > GCC_JIT_BOOL_OPTION_DEBUGINFO, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6db8b10, > GCC_JIT_BOOL_OPTION_DUMP_INITIAL_TREE, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6db8b10, > GCC_JIT_BOOL_OPTION_DUMP_INITIAL_GIMPLE, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6db8b10, > GCC_JIT_BOOL_OPTION_DUMP_GENERATED_CODE, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6db8b10, > GCC_JIT_BOOL_OPTION_DUMP_SUMMARY, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6db8b10, > GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6db8b10, > GCC_JIT_BOOL_OPTION_SELFCHECK_GC, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6db8b10, > GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES, > 0); > gcc_jit_context_set_bool_allow_unreachable_blocks (ctxt_0x6db8b10, 0); > gcc_jit_context_set_bool_use_external_driver (ctxt_0x6db8b10, 0); > > /* Set options for ctxt_0x6dbd370. */ > /* String options. */ > gcc_jit_context_set_str_option (ctxt_0x6dbd370, > GCC_JIT_STR_OPTION_PROGNAME, > NULL); > /* Int options. */ > gcc_jit_context_set_int_option (ctxt_0x6dbd370, > GCC_JIT_INT_OPTION_OPTIMIZATION_LEVEL, > 0); > /* Boolean options. */ > gcc_jit_context_set_bool_option (ctxt_0x6dbd370, > GCC_JIT_BOOL_OPTION_DEBUGINFO, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6dbd370, > GCC_JIT_BOOL_OPTION_DUMP_INITIAL_TREE, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6dbd370, > GCC_JIT_BOOL_OPTION_DUMP_INITIAL_GIMPLE, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6dbd370, > GCC_JIT_BOOL_OPTION_DUMP_GENERATED_CODE, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6dbd370, > GCC_JIT_BOOL_OPTION_DUMP_SUMMARY, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6dbd370, > GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6dbd370, > GCC_JIT_BOOL_OPTION_SELFCHECK_GC, > 0); > gcc_jit_context_set_bool_option (ctxt_0x6dbd370, > GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES, > 0); > gcc_jit_context_set_bool_allow_unreachable_blocks (ctxt_0x6dbd370, 0); > gcc_jit_context_set_bool_use_external_driver (ctxt_0x6dbd370, 0); > } > > static void > create_code (gcc_jit_context *ctxt_0x6db8b10, > gcc_jit_context *ctxt_0x6dbd370) > { > /* Replay of API calls for ctxt_0x6db8b10. */ > gcc_jit_type *type_size_t = gcc_jit_context_get_type (ctxt_0x6db8b10, > GCC_JIT_TYPE_SIZE_T); > gcc_jit_type *type_void = gcc_jit_context_get_type (ctxt_0x6db8b10, > GCC_JIT_TYPE_VOID); > gcc_jit_type *type_unsigned_long_long = gcc_jit_context_get_type > (ctxt_0x6db8b10, GCC_JIT_TYPE_UNSIGNED_LONG_LONG); > gcc_jit_type *type_void__ = gcc_jit_context_get_type (ctxt_0x6db8b10, > GCC_JIT_TYPE_VOID_PTR); > gcc_jit_field *field_val = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_unsigned_long_long, /* gcc_jit_type > *type, */ > "val"); /* const char *name */ > gcc_jit_field *field_ptr = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_void__, /* gcc_jit_type *type, */ > "ptr"); /* const char *name */ > gcc_jit_field *fields_for_union_union_yyy_object[2] = { > field_val, > field_ptr, > }; > gcc_jit_type *union_union_yyy_object = > gcc_jit_context_new_union_type (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "yyy_object", /* const char *name */ > 2, /* int num_fields */ > fields_for_union_union_yyy_object); /* > gcc_jit_field **fields */ > gcc_jit_field *field_val_0x6db9660 = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_unsigned_long_long, /* gcc_jit_type > *type, */ > "val"); /* const char *name */ > gcc_jit_field *field_ptr_0x6db97b0 = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_void__, /* gcc_jit_type *type, */ > "ptr"); /* const char *name */ > gcc_jit_field *fields_for_union_union_yyy_header[2] = { > field_val_0x6db9660, > field_ptr_0x6db97b0, > }; > gcc_jit_type *union_union_yyy_header = > gcc_jit_context_new_union_type (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "yyy_header", /* const char *name */ > 2, /* int num_fields */ > fields_for_union_union_yyy_header); /* > gcc_jit_field **fields */ > gcc_jit_struct *struct_struct_yyy_label = > gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "yyy_label"); /* const char *name */ > gcc_jit_type *type_struct_yyy_label__ = > gcc_jit_type_get_pointer (gcc_jit_struct_as_type > (struct_struct_yyy_label)); > gcc_jit_field *field_header = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > union_union_yyy_header, /* gcc_jit_type > *type, */ > "header"); /* const char *name */ > gcc_jit_field *field_ip = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_struct_yyy_label__, /* gcc_jit_type > *type, */ > "ip"); /* const char *name */ > gcc_jit_struct *struct_struct_yyy_thread = > gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "yyy_thread"); /* const char *name > */ > gcc_jit_field *fields_fields[2] = { > field_header, > field_ip, > }; > gcc_jit_struct_set_fields (struct_struct_yyy_thread, /* gcc_jit_struct > *struct_type */ > NULL, /* gcc_jit_location *loc */ > 2, /* int num_fields */ > fields_fields); /* gcc_jit_field **fields */ > gcc_jit_type *type_struct_yyy_thread__ = > gcc_jit_type_get_pointer (gcc_jit_struct_as_type > (struct_struct_yyy_thread)); > gcc_jit_type *params_for_function_type_void__struct_yyy_thread___[1] = { > type_struct_yyy_thread__, > }; > gcc_jit_type *ptr_to_void______struct_yyy_thread___ = > gcc_jit_context_new_function_ptr_type (ctxt_0x6db8b10, /* > gcc_jit_context *ctxt */ > NULL, /* gcc_jit_location *loc > */ > type_void, /* gcc_jit_type > *return_type */ > 1, /* int num_params */ > > params_for_function_type_void__struct_yyy_thread___, /* gcc_jit_type > **param_types */ > 0); /* int is_variadic */ > gcc_jit_struct *struct_struct_yyy_module = > gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "yyy_module"); /* const char *name > */ > gcc_jit_field *fields_fields_0x6dba720[0] = { > }; > gcc_jit_struct_set_fields (struct_struct_yyy_module, /* gcc_jit_struct > *struct_type */ > NULL, /* gcc_jit_location *loc */ > 0, /* int num_fields */ > fields_fields_0x6dba720); /* gcc_jit_field > **fields */ > gcc_jit_type *type_struct_yyy_module__ = > gcc_jit_type_get_pointer (gcc_jit_struct_as_type > (struct_struct_yyy_module)); > gcc_jit_field *field_proc_count = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_size_t, /* gcc_jit_type *type, */ > "proc_count"); /* const char *name */ > gcc_jit_field *field_fv_count = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_size_t, /* gcc_jit_type *type, */ > "fv_count"); /* const char *name */ > gcc_jit_struct *struct_struct_yyy_closure_descriptor = > gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "yyy_closure_descriptor"); /* const > char *name */ > gcc_jit_field *fields_fields_0x6dbae00[2] = { > field_proc_count, > field_fv_count, > }; > gcc_jit_struct_set_fields (struct_struct_yyy_closure_descriptor, /* > gcc_jit_struct *struct_type */ > NULL, /* gcc_jit_location *loc */ > 2, /* int num_fields */ > fields_fields_0x6dbae00); /* gcc_jit_field > **fields */ > gcc_jit_type *type_struct_yyy_closure_descriptor__ = > gcc_jit_type_get_pointer (gcc_jit_struct_as_type > (struct_struct_yyy_closure_descriptor)); > gcc_jit_field *field_cd = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_struct_yyy_closure_descriptor__, /* > gcc_jit_type *type, */ > "cd"); /* const char *name */ > gcc_jit_field *field_clo_off = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_size_t, /* gcc_jit_type *type, */ > "clo_off"); /* const char *name */ > gcc_jit_struct *struct_struct_yyy_procedure_descriptor = > gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "yyy_procedure_descriptor"); /* > const char *name */ > gcc_jit_field *fields_fields_0x6dbb350[2] = { > field_cd, > field_clo_off, > }; > gcc_jit_struct_set_fields (struct_struct_yyy_procedure_descriptor, /* > gcc_jit_struct *struct_type */ > NULL, /* gcc_jit_location *loc */ > 2, /* int num_fields */ > fields_fields_0x6dbb350); /* gcc_jit_field > **fields */ > gcc_jit_type *type_struct_yyy_procedure_descriptor__ = > gcc_jit_type_get_pointer (gcc_jit_struct_as_type > (struct_struct_yyy_procedure_descriptor)); > gcc_jit_field *field_header_0x6dbb570 = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > union_union_yyy_header, /* gcc_jit_type > *type, */ > "header"); /* const char *name */ > gcc_jit_field *field_pd = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_struct_yyy_procedure_descriptor__, /* > gcc_jit_type *type, */ > "pd"); /* const char *name */ > gcc_jit_struct *struct_struct_x = > gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "x"); /* const char *name */ > gcc_jit_field *fields_fields_0x6dbbb60[2] = { > field_header_0x6dbb570, > field_pd, > }; > gcc_jit_struct_set_fields (struct_struct_x, /* gcc_jit_struct > *struct_type */ > NULL, /* gcc_jit_location *loc */ > 2, /* int num_fields */ > fields_fields_0x6dbbb60); /* gcc_jit_field > **fields */ > gcc_jit_field *field_x = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > gcc_jit_struct_as_type (struct_struct_x), > /* gcc_jit_type *type, */ > "x"); /* const char *name */ > gcc_jit_field *field_mod = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_struct_yyy_module__, /* gcc_jit_type > *type, */ > "mod"); /* const char *name */ > gcc_jit_field *field_prog = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > ptr_to_void______struct_yyy_thread___, /* > gcc_jit_type *type, */ > "prog"); /* const char *name */ > gcc_jit_struct *struct_struct_y = > gcc_jit_context_new_opaque_struct (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "y"); /* const char *name */ > gcc_jit_field *fields_fields_0x6dbc250[2] = { > field_mod, > field_prog, > }; > gcc_jit_struct_set_fields (struct_struct_y, /* gcc_jit_struct > *struct_type */ > NULL, /* gcc_jit_location *loc */ > 2, /* int num_fields */ > fields_fields_0x6dbc250); /* gcc_jit_field > **fields */ > gcc_jit_field *field_y = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > gcc_jit_struct_as_type (struct_struct_y), > /* gcc_jit_type *type, */ > "y"); /* const char *name */ > gcc_jit_field *fields_for_union_union_a[2] = { > field_x, > field_y, > }; > gcc_jit_type *union_union_a = > gcc_jit_context_new_union_type (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > "a", /* const char *name */ > 2, /* int num_fields */ > fields_for_union_union_a); /* > gcc_jit_field **fields */ > gcc_jit_field *field_a = > gcc_jit_context_new_field (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > union_union_a, /* gcc_jit_type *type, */ > "a"); /* const char *name */ > gcc_jit_field *fields_fields_0x6dbc800[1] = { > field_a, > }; > gcc_jit_struct_set_fields (struct_struct_yyy_label, /* gcc_jit_struct > *struct_type */ > NULL, /* gcc_jit_location *loc */ > 1, /* int num_fields */ > fields_fields_0x6dbc800); /* gcc_jit_field > **fields */ > gcc_jit_param *param_thd = > gcc_jit_context_new_param (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_struct_yyy_thread__, /*gcc_jit_type > *type */ > "thd"); /* const char *name */ > gcc_jit_param *param_labels = > gcc_jit_context_new_param (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_struct_yyy_label__, /*gcc_jit_type > *type */ > "labels"); /* const char *name */ > gcc_jit_param *param_glob_count = > gcc_jit_context_new_param (ctxt_0x6db8b10, > NULL, /* gcc_jit_location *loc */ > type_size_t, /*gcc_jit_type *type */ > "glob_count"); /* const char *name */ > gcc_jit_param *params_for_func_yyy_make_module[3] = { > param_thd, > param_labels, > param_glob_count, > }; > gcc_jit_function *func_yyy_make_module = > gcc_jit_context_new_function (ctxt_0x6db8b10, /* gcc_jit_context *ctxt > */ > NULL, /* gcc_jit_location *loc */ > GCC_JIT_FUNCTION_IMPORTED, /* enum > gcc_jit_function_kind kind */ > type_struct_yyy_module__, /* > gcc_jit_type *return_type */ > "yyy_make_module", /* const char *name */ > 3, /* int num_params */ > params_for_func_yyy_make_module, /* > gcc_jit_param **params */ > 0); /* int is_variadic */ > gcc_jit_type *type_int = gcc_jit_context_get_type (ctxt_0x6db8b10, > GCC_JIT_TYPE_INT); > gcc_jit_function *func___builtin_trap = > gcc_jit_context_get_builtin_function (ctxt_0x6db8b10, > "__builtin_trap"); > > > /* Replay of API calls for ctxt_0x6dbd370. */ > gcc_jit_type *array_type_struct_yyy_label_1_ = > gcc_jit_context_new_array_type (ctxt_0x6dbd370, > NULL, /* gcc_jit_location *loc */ > gcc_jit_struct_as_type > (struct_struct_yyy_label), /* gcc_jit_type *element_type */ > 1); /* int num_elements */ > gcc_jit_lvalue *block_labels = > gcc_jit_context_new_global (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ > NULL, /* gcc_jit_location *loc */ > GCC_JIT_GLOBAL_INTERNAL, /* enum > gcc_jit_global_kind kind */ > array_type_struct_yyy_label_1_, /* > gcc_jit_type *type */ > "labels"); /* const char *name */ > gcc_jit_rvalue *rvalue__size_t_0 = > gcc_jit_context_new_rvalue_from_int (ctxt_0x6dbd370, /* > gcc_jit_context *ctxt */ > type_size_t, /* gcc_jit_type > *numeric_type */ > 0); /* int value */ > gcc_jit_lvalue *lvalue_labels__size_t_0_ = > gcc_jit_context_new_array_access (ctxt_0x6dbd370, /* gcc_jit_context > *ctxt */ > NULL, /*gcc_jit_location *loc */ > gcc_jit_lvalue_as_rvalue > (block_labels), /* gcc_jit_rvalue *ptr */ > rvalue__size_t_0); /* gcc_jit_rvalue > *index */ > gcc_jit_rvalue *address_of__labels__size_t_0_ = > gcc_jit_lvalue_get_address (lvalue_labels__size_t_0_, /* > gcc_jit_lvalue *lvalue */ > NULL); /* gcc_jit_location *loc */ > gcc_jit_param *param_thd_0x6dbec70 = > gcc_jit_context_new_param (ctxt_0x6dbd370, > NULL, /* gcc_jit_location *loc */ > type_struct_yyy_thread__, /*gcc_jit_type > *type */ > "thd"); /* const char *name */ > gcc_jit_param *params_for_func_yyy_get_entry[1] = { > param_thd_0x6dbec70, > }; > gcc_jit_function *func_yyy_get_entry = > gcc_jit_context_new_function (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > NULL, /* gcc_jit_location *loc */ > GCC_JIT_FUNCTION_EXPORTED, /* enum > gcc_jit_function_kind kind */ > type_struct_yyy_label__, /* gcc_jit_type > *return_type */ > "yyy_get_entry", /* const char *name */ > 1, /* int num_params */ > params_for_func_yyy_get_entry, /* > gcc_jit_param **params */ > 0); /* int is_variadic */ > gcc_jit_param *param_thd_0x6dbf100 = > gcc_jit_context_new_param (ctxt_0x6dbd370, > NULL, /* gcc_jit_location *loc */ > type_struct_yyy_thread__, /*gcc_jit_type > *type */ > "thd"); /* const char *name */ > gcc_jit_param *params_for_func_prog[1] = { > param_thd_0x6dbf100, > }; > gcc_jit_function *func_prog = > gcc_jit_context_new_function (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > NULL, /* gcc_jit_location *loc */ > GCC_JIT_FUNCTION_INTERNAL, /* enum > gcc_jit_function_kind kind */ > type_void, /* gcc_jit_type *return_type > */ > "prog", /* const char *name */ > 1, /* int num_params */ > params_for_func_prog, /* gcc_jit_param > **params */ > 0); /* int is_variadic */ > gcc_jit_block *block_initial = > gcc_jit_function_new_block (func_prog, "initial"); > gcc_jit_lvalue *local_mod = > gcc_jit_function_new_local (func_yyy_get_entry, /* gcc_jit_function > *func */ > NULL, /* gcc_jit_location *loc */ > type_struct_yyy_module__, /* gcc_jit_type > *type */ > "mod"); /* const char *name */ > gcc_jit_block *block_initial_0x6dbf900 = > gcc_jit_function_new_block (func_yyy_get_entry, "initial"); > gcc_jit_rvalue *rvalue__size_t_0_0x6dbfa00 = > gcc_jit_context_new_rvalue_from_long (ctxt_0x6dbd370, /* > gcc_jit_context *ctxt */ > type_size_t, /* gcc_jit_type > *numeric_type */ > 0L); /* long value */ > gcc_jit_rvalue > *args_for__call_yyy_make_module__thd____labels__size_t_0_____size_t_0_[3] = > { > gcc_jit_param_as_rvalue (param_thd_0x6dbec70), > address_of__labels__size_t_0_, > rvalue__size_t_0_0x6dbfa00, > }; > gcc_jit_rvalue > *call_yyy_make_module__thd____labels__size_t_0_____size_t_0_ = > gcc_jit_context_new_call (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ > NULL, /* gcc_jit_location *loc */ > func_yyy_make_module, /* gcc_jit_function > *func */ > 3, /* int numargs */ > > args_for__call_yyy_make_module__thd____labels__size_t_0_____size_t_0_); /* > gcc_jit_rvalue **args*/ > gcc_jit_block_add_assignment (block_initial_0x6dbf900, /*gcc_jit_block > *block */ > NULL, /* gcc_jit_location *loc */ > local_mod, /* gcc_jit_lvalue *lvalue */ > > call_yyy_make_module__thd____labels__size_t_0_____size_t_0_); /* > gcc_jit_rvalue *rvalue */ > gcc_jit_rvalue *rvalue__size_t_0_0x6dbfc90 = > gcc_jit_context_new_rvalue_from_long (ctxt_0x6dbd370, /* > gcc_jit_context *ctxt */ > type_size_t, /* gcc_jit_type > *numeric_type */ > 0L); /* long value */ > gcc_jit_lvalue *lvalue_labels__size_t_0__0x6dbfd20 = > gcc_jit_context_new_array_access (ctxt_0x6dbd370, /* gcc_jit_context > *ctxt */ > NULL, /*gcc_jit_location *loc */ > gcc_jit_lvalue_as_rvalue > (block_labels), /* gcc_jit_rvalue *ptr */ > rvalue__size_t_0_0x6dbfc90); /* > gcc_jit_rvalue *index */ > gcc_jit_block *block__UNNAMED_BLOCK_0x6dbff20_ = > gcc_jit_function_new_block (func_prog, NULL); > gcc_jit_lvalue *lvalue_labels__size_t_0__a = > gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__0x6dbfd20, > /*gcc_jit_lvalue *struct_or_union */ > NULL, /*gcc_jit_location *loc */ > field_a); > gcc_jit_lvalue *lvalue_labels__size_t_0__a_y = > gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__a, > /*gcc_jit_lvalue *struct_or_union */ > NULL, /*gcc_jit_location *loc */ > field_y); > gcc_jit_lvalue *lvalue_labels__size_t_0__a_y_mod = > gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__a_y, > /*gcc_jit_lvalue *struct_or_union */ > NULL, /*gcc_jit_location *loc */ > field_mod); > gcc_jit_block_add_assignment (block_initial_0x6dbf900, /*gcc_jit_block > *block */ > NULL, /* gcc_jit_location *loc */ > lvalue_labels__size_t_0__a_y_mod, /* > gcc_jit_lvalue *lvalue */ > gcc_jit_lvalue_as_rvalue (local_mod)); /* > gcc_jit_rvalue *rvalue */ > gcc_jit_type > *params_for_function_type_void__struct_yyy_thread____0x6dc0230[1] = { > type_struct_yyy_thread__, > }; > gcc_jit_type *ptr_to_void______struct_yyy_thread____0x6dc0320 = > gcc_jit_context_new_function_ptr_type (ctxt_0x6dbd370, /* > gcc_jit_context *ctxt */ > NULL, /* gcc_jit_location *loc > */ > type_void, /* gcc_jit_type > *return_type */ > 1, /* int num_params */ > > params_for_function_type_void__struct_yyy_thread____0x6dc0230, /* > gcc_jit_type **param_types */ > 0); /* int is_variadic */ > gcc_jit_rvalue *address_of_prog = > gcc_jit_function_get_address (func_prog, /* gcc_jit_function *fn */ > NULL); /* gcc_jit_location *loc */ > gcc_jit_lvalue *lvalue_labels__size_t_0__a_0x6dc0420 = > gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__0x6dbfd20, > /*gcc_jit_lvalue *struct_or_union */ > NULL, /*gcc_jit_location *loc */ > field_a); > gcc_jit_lvalue *lvalue_labels__size_t_0__a_y_0x6dc04b0 = > gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__a_0x6dc0420, > /*gcc_jit_lvalue *struct_or_union */ > NULL, /*gcc_jit_location *loc */ > field_y); > gcc_jit_lvalue *lvalue_labels__size_t_0__a_y_prog = > gcc_jit_lvalue_access_field (lvalue_labels__size_t_0__a_y_0x6dc04b0, > /*gcc_jit_lvalue *struct_or_union */ > NULL, /*gcc_jit_location *loc */ > field_prog); > gcc_jit_block_add_assignment (block_initial_0x6dbf900, /*gcc_jit_block > *block */ > NULL, /* gcc_jit_location *loc */ > lvalue_labels__size_t_0__a_y_prog, /* > gcc_jit_lvalue *lvalue */ > address_of_prog); /* gcc_jit_rvalue > *rvalue */ > gcc_jit_rvalue *rvalue__size_t_0_0x6dc0850 = > gcc_jit_context_new_rvalue_from_long (ctxt_0x6dbd370, /* > gcc_jit_context *ctxt */ > type_size_t, /* gcc_jit_type > *numeric_type */ > 0L); /* long value */ > gcc_jit_lvalue *lvalue_labels__size_t_0__0x6dc08e0 = > gcc_jit_context_new_array_access (ctxt_0x6dbd370, /* gcc_jit_context > *ctxt */ > NULL, /*gcc_jit_location *loc */ > gcc_jit_lvalue_as_rvalue > (block_labels), /* gcc_jit_rvalue *ptr */ > rvalue__size_t_0_0x6dc0850); /* > gcc_jit_rvalue *index */ > gcc_jit_rvalue *address_of__labels__size_t_0__0x6dc0970 = > gcc_jit_lvalue_get_address (lvalue_labels__size_t_0__0x6dc08e0, /* > gcc_jit_lvalue *lvalue */ > NULL); /* gcc_jit_location *loc */ > gcc_jit_block_end_with_return (block_initial_0x6dbf900, /*gcc_jit_block > *block */ > NULL, /* gcc_jit_location *loc */ > address_of__labels__size_t_0__0x6dc0970); > /* gcc_jit_rvalue *rvalue */ > gcc_jit_block *block_default = > gcc_jit_function_new_block (func_prog, "default"); > gcc_jit_rvalue *rvalue__size_t_0_0x6dc0c30 = > gcc_jit_context_new_rvalue_from_long (ctxt_0x6dbd370, /* > gcc_jit_context *ctxt */ > type_size_t, /* gcc_jit_type > *numeric_type */ > 0L); /* long value */ > gcc_jit_case > *case_case__size_t_0______size_t_0__goto__UNNAMED_BLOCK_0x6dbff20__ = > gcc_jit_context_new_case (ctxt_0x6dbd370, /*gcc_jit_context *ctxt */ > rvalue__size_t_0_0x6dc0c30, /* > gcc_jit_rvalue *min_value */ > rvalue__size_t_0_0x6dc0c30, /* > gcc_jit_rvalue *max_value */ > block__UNNAMED_BLOCK_0x6dbff20_); /* > gcc_jit_block *dest_block */ > gcc_jit_lvalue *lvalue_thd__ip= > gcc_jit_rvalue_dereference_field (gcc_jit_param_as_rvalue > (param_thd_0x6dbf100), /* gcc_jit_rvalue *ptr */ > NULL, /* gcc_jit_location *loc */ > field_ip); /* gcc_jit_field *field */ > gcc_jit_rvalue *rvalue_thd__ip____labels__size_t_0_ = > gcc_jit_context_new_binary_op (ctxt_0x6dbd370, > NULL, /* gcc_jit_location *loc */ > GCC_JIT_BINARY_OP_MINUS, /* enum > gcc_jit_binary_op op */ > type_size_t, /* gcc_jit_type > *result_type */ > gcc_jit_lvalue_as_rvalue > (lvalue_thd__ip), /* gcc_jit_rvalue *a */ > address_of__labels__size_t_0_); /* > gcc_jit_rvalue *b */ > gcc_jit_case *cases_for_switch_0x6dc0ee0[1] = { > case_case__size_t_0______size_t_0__goto__UNNAMED_BLOCK_0x6dbff20__, > }; > gcc_jit_block_end_with_switch (block_initial, /*gcc_jit_block *block */ > NULL, /* gcc_jit_location *loc */ > rvalue_thd__ip____labels__size_t_0_, /* > gcc_jit_rvalue *expr */ > block_default, /* gcc_jit_block > *default_block */ > 1, /* int num_cases */ > cases_for_switch_0x6dc0ee0); /* > gcc_jit_case **cases */ > gcc_jit_block_end_with_void_return (block_default, /*gcc_jit_block > *block */ > NULL); /* gcc_jit_location *loc */ > gcc_jit_param *param_code = > gcc_jit_context_new_param (ctxt_0x6dbd370, > NULL, /* gcc_jit_location *loc */ > type_int, /*gcc_jit_type *type */ > "code"); /* const char *name */ > gcc_jit_param *params_for_func_exit[1] = { > param_code, > }; > gcc_jit_function *func_exit = > gcc_jit_context_new_function (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > NULL, /* gcc_jit_location *loc */ > GCC_JIT_FUNCTION_IMPORTED, /* enum > gcc_jit_function_kind kind */ > type_void, /* gcc_jit_type *return_type > */ > "exit", /* const char *name */ > 1, /* int num_params */ > params_for_func_exit, /* gcc_jit_param > **params */ > 0); /* int is_variadic */ > gcc_jit_rvalue *rvalue__int_0 = > gcc_jit_context_new_rvalue_from_int (ctxt_0x6dbd370, /* > gcc_jit_context *ctxt */ > type_int, /* gcc_jit_type > *numeric_type */ > 0); /* int value */ > gcc_jit_rvalue *args_for__call_exit___int_0_[1] = { > rvalue__int_0, > }; > gcc_jit_rvalue *call_exit___int_0_ = > gcc_jit_context_new_call (ctxt_0x6dbd370, /* gcc_jit_context *ctxt */ > NULL, /* gcc_jit_location *loc */ > func_exit, /* gcc_jit_function *func */ > 1, /* int numargs */ > args_for__call_exit___int_0_); /* > gcc_jit_rvalue **args*/ > gcc_jit_block_add_eval (block__UNNAMED_BLOCK_0x6dbff20_, /*gcc_jit_block > *block */ > NULL, /* gcc_jit_location *loc */ > call_exit___int_0_); /* gcc_jit_rvalue *rvalue */ > gcc_jit_block_end_with_void_return (block__UNNAMED_BLOCK_0x6dbff20_, > /*gcc_jit_block *block */ > NULL); /* gcc_jit_location *loc */ > gcc_jit_location *loc__tmp_dump_c_0_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 0, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_3_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 3, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_5_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 5, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_9_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 9, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_10_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 10, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_11_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 11, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_12_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 12, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_15_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 15, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_19_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 19, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_22_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 22, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_23_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 23, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_26_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 26, /* int line */ > 0);/* int column */ > gcc_jit_location *loc__tmp_dump_c_29_0 = > gcc_jit_context_new_location (ctxt_0x6dbd370, /* gcc_jit_context *ctxt > */ > "/tmp/dump.c", /* const char *filename */ > 29, /* int line */ > 0);/* int column */ > } > > ++++ > > dummy.c: > > #include <stddef.h> > > void *yyy_make_module (void *thd, void *labels, size_t glob_count) > { > return NULL; > } > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-16 22:00 ` Marc Nieper-Wißkirchen @ 2021-12-16 22:26 ` Mark Wielaard 2021-12-17 10:29 ` Marc Nieper-Wißkirchen 0 siblings, 1 reply; 16+ messages in thread From: Mark Wielaard @ 2021-12-16 22:26 UTC (permalink / raw) To: Marc Nieper-Wißkirchen; +Cc: jit On Thu, Dec 16, 2021 at 11:00:24PM +0100, Marc Nieper-Wißkirchen via Jit wrote: > Here is the Valgrind output for a debug GCC build: You have to build gcc with: configure --enable-valgrind-annotations Mark selected memory related operations in the compiler when run under valgrind to suppress false positives. Cheers, Mark ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-16 22:26 ` Mark Wielaard @ 2021-12-17 10:29 ` Marc Nieper-Wißkirchen 2021-12-17 10:52 ` Alex Coplan 0 siblings, 1 reply; 16+ messages in thread From: Marc Nieper-Wißkirchen @ 2021-12-17 10:29 UTC (permalink / raw) To: Mark Wielaard; +Cc: Marc Nieper-Wißkirchen, jit Thanks! With `--enable-valgrind-annotations`, the "uses of uninitialized values" have gone away, but a lot of small leaks are still present: ==470150== Memcheck, a memory error detector ==470150== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==470150== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info ==470150== Command: ./a.out ==470150== ==470150== ==470150== HEAP SUMMARY: ==470150== in use at exit: 1,485,998 bytes in 1,172 blocks ==470150== total heap usage: 5,358 allocs, 4,186 frees, 2,898,194 bytes allocated ==470150== ==470150== 9 bytes in 1 blocks are definitely lost in loss record 6 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B9536C: set_multilib_dir (gcc.c:9850) ==470150== by 0x4B9536C: driver::set_up_specs() const (gcc.c:8546) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== by 0x40241F: main (in /tmp/a.out) ==470150== ==470150== 12 bytes in 1 blocks are definitely lost in loss record 7 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DDDE03: make_relative_prefix_1 (make-relative-prefix.c:377) ==470150== by 0x4B8BCAA: process_command(unsigned int, cl_decoded_option*) (gcc.c:4731) ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== ==470150== 16 bytes in 1 blocks are definitely lost in loss record 12 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DDDE03: make_relative_prefix_1 (make-relative-prefix.c:377) ==470150== by 0x4B8BCC8: process_command(unsigned int, cl_decoded_option*) (gcc.c:4734) ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== ==470150== 16 bytes in 1 blocks are definitely lost in loss record 13 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B8547F: save_switch(char const*, unsigned long, char const* const*, bool, bool) (gcc.c:3906) ==470150== by 0x4B89EA9: driver_handle_option(gcc_options*, gcc_options*, cl_decoded_option const*, unsigned int, int, unsigned int, cl_option_handlers const*, diagnostic_context*, void (*)()) (gcc.c:4568) ==470150== by 0x5D617CE: handle_option(gcc_options*, gcc_options*, cl_decoded_option const*, unsigned int, int, unsigned int, cl_option_handlers const*, bool, diagnostic_context*) (opts-common.c:1181) ==470150== by 0x5D6195C: read_cmdline_option(gcc_options*, gcc_options*, cl_decoded_option*, unsigned int, unsigned int, cl_option_handlers const*, diagnostic_context*) (opts-common.c:1431) ==470150== by 0x4B8B41A: process_command(unsigned int, cl_decoded_option*) (gcc.c:4927) ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== ==470150== 16 bytes in 1 blocks are definitely lost in loss record 14 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B94C0A: set_multilib_dir (gcc.c:9650) ==470150== by 0x4B94C0A: driver::set_up_specs() const (gcc.c:8546) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== by 0x40241F: main (in /tmp/a.out) ==470150== ==470150== 16 bytes in 1 blocks are definitely lost in loss record 15 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B8C8B9: record_temp_file(char const*, int, int) (gcc.c:2679) ==470150== by 0x4B8CD3B: end_going_arg() [clone .part.0] (gcc.c:5649) ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) (gcc.c:6061) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== ==470150== 17 bytes in 1 blocks are definitely lost in loss record 16 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B953A7: set_multilib_dir (gcc.c:9858) ==470150== by 0x4B953A7: driver::set_up_specs() const (gcc.c:8546) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== by 0x40241F: main (in /tmp/a.out) ==470150== ==470150== 18 bytes in 1 blocks are definitely lost in loss record 17 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==470150== by 0x4B918A9: find_a_program (gcc.c:3100) ==470150== by 0x4B918A9: maybe_putenv_COLLECT_LTO_WRAPPER (gcc.c:8572) ==470150== by 0x4B918A9: driver::maybe_putenv_COLLECT_LTO_WRAPPER() const (gcc.c:8565) ==470150== by 0x4B48616: driver::main(int, char**) (gcc.c:8131) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== ==470150== 18 bytes in 1 blocks are definitely lost in loss record 18 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==470150== by 0x4B8856D: find_a_program (gcc.c:3100) ==470150== by 0x4B8856D: execute() (gcc.c:3283) ==470150== by 0x4B9313C: driver::do_spec_on_infiles() const (gcc.c:8920) ==470150== by 0x4B4884E: driver::main(int, char**) (gcc.c:8148) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== ==470150== 18 bytes in 1 blocks are definitely lost in loss record 19 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==470150== by 0x4B93E5B: find_a_program (gcc.c:3100) ==470150== by 0x4B93E5B: driver::maybe_run_linker(char const*) const (gcc.c:9085) ==470150== by 0x4B4885D: driver::main(int, char**) (gcc.c:8149) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== ==470150== 18 bytes in 1 blocks are definitely lost in loss record 20 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B849EB: build_search_list(path_prefix const*, char const*, bool, bool) (gcc.c:2974) ==470150== by 0x4B93DC5: putenv_from_prefixes (gcc.c:2987) ==470150== by 0x4B93DC5: driver::maybe_run_linker(char const*) const (gcc.c:9116) ==470150== by 0x4B4885D: driver::main(int, char**) (gcc.c:8149) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== ==470150== 18 bytes in 1 blocks are definitely lost in loss record 21 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B849EB: build_search_list(path_prefix const*, char const*, bool, bool) (gcc.c:2974) ==470150== by 0x4B93DF1: putenv_from_prefixes (gcc.c:2987) ==470150== by 0x4B93DF1: driver::maybe_run_linker(char const*) const (gcc.c:9117) ==470150== by 0x4B4885D: driver::main(int, char**) (gcc.c:8149) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== ==470150== 18 bytes in 1 blocks are definitely lost in loss record 22 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B8E5F2: do_spec_1(char const*, int, char const*) (gcc.c:6132) ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) (gcc.c:6791) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== ==470150== 18 bytes in 1 blocks are definitely lost in loss record 23 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==470150== by 0x4B8CD88: find_file (gcc.c:7898) ==470150== by 0x4B8CD88: end_going_arg() [clone .part.0] (gcc.c:5635) ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) (gcc.c:6061) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B8E60E: do_spec_1(char const*, int, char const*) (gcc.c:6623) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== ==470150== 18 bytes in 1 blocks are definitely lost in loss record 24 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==470150== by 0x4B8CD88: find_file (gcc.c:7898) ==470150== by 0x4B8CD88: end_going_arg() [clone .part.0] (gcc.c:5635) ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) (gcc.c:6061) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== ==470150== 18 bytes in 1 blocks are definitely lost in loss record 25 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==470150== by 0x4B8856D: find_a_program (gcc.c:3100) ==470150== by 0x4B8856D: execute() (gcc.c:3283) ==470150== by 0x4B8D3E4: do_spec_1(char const*, int, char const*) (gcc.c:6037) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== ==470150== 21 bytes in 1 blocks are definitely lost in loss record 26 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B9458E: driver::set_up_specs() const (gcc.c:8333) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== ==470150== 28 bytes in 1 blocks are definitely lost in loss record 31 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B8BCEF: process_command(unsigned int, cl_decoded_option*) (gcc.c:4738) ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== ==470150== 28 bytes in 1 blocks are definitely lost in loss record 32 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B94570: driver::set_up_specs() const (gcc.c:8331) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== ==470150== 31 bytes in 1 blocks are definitely lost in loss record 34 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DE3A5E: xstrdup (xstrdup.c:34) ==470150== by 0x4B8B026: process_command(unsigned int, cl_decoded_option*) (gcc.c:4696) ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== ==470150== 32 (16 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 35 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B8C881: record_temp_file(char const*, int, int) (gcc.c:2661) ==470150== by 0x4B8CD3B: end_going_arg() [clone .part.0] (gcc.c:5649) ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) (gcc.c:6061) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== ==470150== 34 bytes in 1 blocks are definitely lost in loss record 36 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B4BC29: init_asm_output (toplev.c:701) ==470150== by 0x4B4BC29: lang_dependent_init (toplev.c:1852) ==470150== by 0x4B4BC29: do_compile (toplev.c:2141) ==470150== by 0x4B4BC29: toplev::main(int, char**) (toplev.c:2308) ==470150== by 0x4B76AEE: gcc::jit::playback::context::compile() (jit-playback.c:2117) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== by 0x40241F: main (in /tmp/a.out) ==470150== ==470150== 36 bytes in 2 blocks are definitely lost in loss record 37 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==470150== by 0x4B8CD88: find_file (gcc.c:7898) ==470150== by 0x4B8CD88: end_going_arg() [clone .part.0] (gcc.c:5635) ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) (gcc.c:6061) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B8DB23: do_spec_1(char const*, int, char const*) (gcc.c:6668) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== ==470150== 39 bytes in 1 blocks are definitely lost in loss record 38 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B94ACF: driver::set_up_specs() const (gcc.c:8535) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== ==470150== 40 bytes in 1 blocks are definitely lost in loss record 50 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) ==470150== by 0x4B8CC0E: reserve<char const*> (vec.h:290) ==470150== by 0x4B8CC0E: reserve (vec.h:1858) ==470150== by 0x4B8CC0E: safe_push (vec.h:1967) ==470150== by 0x4B8CC0E: store_arg(char const*, int, int) (gcc.c:2181) ==470150== by 0x4B8CD3B: end_going_arg() [clone .part.0] (gcc.c:5649) ==470150== by 0x4B8F38A: end_going_arg (gcc.c:5628) ==470150== by 0x4B8F38A: do_spec_2(char const*, char const*) (gcc.c:5744) ==470150== by 0x4B9097C: do_self_spec(char const*) (gcc.c:5806) ==470150== by 0x4B90D9B: do_option_spec(char const*, char const*) (gcc.c:5795) ==470150== by 0x4B95E6F: driver_get_configure_time_options(void (*)(char const*, void*), void*) (gcc.c:11258) ==470150== by 0x4B7580A: gcc::jit::playback::context::make_fake_args(vec<char*, va_heap, vl_ptr>*, char const*, vec<gcc::jit::recording::requested_dump, va_heap, vl_ptr>*) (jit-playback.c:2562) ==470150== by 0x4B7680B: gcc::jit::playback::context::compile() (jit-playback.c:2103) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== ==470150== 48 bytes in 1 blocks are definitely lost in loss record 54 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B948EC: driver::set_up_specs() const (gcc.c:8453) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== ==470150== 59 (40 direct, 19 indirect) bytes in 1 blocks are definitely lost in loss record 102 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B8E8A9: do_spec_1(char const*, int, char const*) (gcc.c:6354) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) (gcc.c:6791) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== ==470150== 74 bytes in 1 blocks are definitely lost in loss record 116 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B848A4: for_each_path(path_prefix const*, bool, unsigned long, void* (*)(char*, void*), void*) (gcc.c:2813) ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, int, bool) (gcc.c:3072) ==470150== by 0x4B945B2: driver::set_up_specs() const (gcc.c:8335) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== ==470150== 75 bytes in 1 blocks are definitely lost in loss record 118 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B8B7C7: process_command(unsigned int, cl_decoded_option*) (gcc.c:5410) ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== ==470150== 75 bytes in 1 blocks are definitely lost in loss record 119 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DD6961: concat (concat.c:147) ==470150== by 0x4B8B802: process_command(unsigned int, cl_decoded_option*) (gcc.c:5413) ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== ==470150== 88 bytes in 1 blocks are definitely lost in loss record 128 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) ==470150== by 0x4B91177: reserve<char const*> (vec.h:290) ==470150== by 0x4B91177: reserve (vec.h:1858) ==470150== by 0x4B91177: reserve_exact (vec.h:1878) ==470150== by 0x4B91177: create (vec.h:1893) ==470150== by 0x4B91177: alloc_args (gcc.c:2156) ==470150== by 0x4B91177: driver::global_initializations() (gcc.c:8242) ==470150== by 0x4B485DC: driver::main(int, char**) (gcc.c:8126) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== by 0x40241F: main (in /tmp/a.out) ==470150== ==470150== 88 bytes in 1 blocks are definitely lost in loss record 129 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) ==470150== by 0x4B8F8EB: reserve (vec.h:1858) ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) ==470150== by 0x4B8F8EB: create (vec.h:1893) ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) ==470150== by 0x4B8F8EB: handle_spec_function(char const*, bool*, char const*) (gcc.c:6994) ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B8F378: do_spec_2(char const*, char const*) (gcc.c:5742) ==470150== by 0x4B9097C: do_self_spec(char const*) (gcc.c:5806) ==470150== by 0x4B9470B: driver::set_up_specs() const (gcc.c:8368) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== ==470150== 88 bytes in 1 blocks are definitely lost in loss record 130 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) ==470150== by 0x4B8F8EB: reserve (vec.h:1858) ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) ==470150== by 0x4B8F8EB: create (vec.h:1893) ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) ==470150== by 0x4B8F8EB: handle_spec_function(char const*, bool*, char const*) (gcc.c:6994) ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) (gcc.c:6791) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== ==470150== 88 bytes in 1 blocks are definitely lost in loss record 131 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) ==470150== by 0x4B8F8EB: reserve (vec.h:1858) ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) ==470150== by 0x4B8F8EB: create (vec.h:1893) ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) ==470150== by 0x4B8F8EB: handle_spec_function(char const*, bool*, char const*) (gcc.c:6994) ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) (gcc.c:6791) ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) (gcc.c:6791) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== ==470150== 211 bytes in 1 blocks are definitely lost in loss record 146 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x5DE3A5E: xstrdup (xstrdup.c:34) ==470150== by 0x4B8413B: set_spec(char const*, char const*, bool) (gcc.c:2089) ==470150== by 0x4B87379: read_specs(char const*, bool, bool) (gcc.c:2581) ==470150== by 0x4B949A0: driver::set_up_specs() const (gcc.c:8338) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== ==470150== 646 bytes in 47 blocks are definitely lost in loss record 166 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B86F12: save_string (gcc.c:9301) ==470150== by 0x4B86F12: read_specs(char const*, bool, bool) (gcc.c:2542) ==470150== by 0x4B949A0: driver::set_up_specs() const (gcc.c:8338) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== ==470150== 792 bytes in 9 blocks are definitely lost in loss record 167 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) ==470150== by 0x4B8F8EB: reserve (vec.h:1858) ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) ==470150== by 0x4B8F8EB: create (vec.h:1893) ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) ==470150== by 0x4B8F8EB: handle_spec_function(char const*, bool*, char const*) (gcc.c:6994) ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) (gcc.c:6676) ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) ==470150== ==470150== 2,842 bytes in 1 blocks are definitely lost in loss record 185 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) ==470150== by 0x4B86F94: save_string (gcc.c:9301) ==470150== by 0x4B86F94: read_specs(char const*, bool, bool) (gcc.c:2556) ==470150== by 0x4B949A0: driver::set_up_specs() const (gcc.c:8338) ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) ==470150== by 0x4B74A57: gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, vl_ptr> const*) (jit-playback.c:2785) ==470150== by 0x4B77212: gcc::jit::playback::context::invoke_driver(char const*, char const*, char const*, timevar_id_t, bool, bool) (jit-playback.c:2773) ==470150== by 0x4B783AA: gcc::jit::playback::context::convert_to_dso(char const*) (jit-playback.c:2694) ==470150== by 0x4B78409: gcc::jit::playback::compile_to_memory::postprocess(char const*) (jit-playback.c:2176) ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() (jit-playback.c:2149) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== ==470150== 12,611 (48 direct, 12,563 indirect) bytes in 1 blocks are definitely lost in loss record 191 of 213 ==470150== at 0x4842839: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==470150== by 0x5DF20A8: operator new(unsigned long) (in /home/mnieper/gcc/install/lib/libgccjit.so.0.0.1) ==470150== by 0x4F62B89: gcc::pass_manager::register_pass_name(opt_pass*, char const*) (passes.c:906) ==470150== by 0x4F62D98: gcc::pass_manager::register_one_dump_file(opt_pass*) (passes.c:878) ==470150== by 0x4F62E88: gcc::pass_manager::register_dump_files(opt_pass*) (passes.c:890) ==470150== by 0x4F698CD: gcc::pass_manager::pass_manager(gcc::context*) (passes.c:1642) ==470150== by 0x4B4A20F: general_init (toplev.c:1107) ==470150== by 0x4B4A20F: toplev::main(int, char**) (toplev.c:2240) ==470150== by 0x4B76AEE: gcc::jit::playback::context::compile() (jit-playback.c:2117) ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() (jit-recording.c:1397) ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) ==470150== by 0x40241F: main (in /tmp/a.out) ==470150== ==470150== LEAK SUMMARY: ==470150== definitely lost: 5,740 bytes in 94 blocks ==470150== indirectly lost: 12,598 bytes in 334 blocks ==470150== possibly lost: 0 bytes in 0 blocks ==470150== still reachable: 1,467,660 bytes in 744 blocks ==470150== suppressed: 0 bytes in 0 blocks ==470150== Reachable blocks (those to which a pointer was found) are not shown. ==470150== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==470150== ==470150== For lists of detected and suppressed errors, rerun with: -s ==470150== ERROR SUMMARY: 39 errors from 39 contexts (suppressed: 0 from 0) Am Do., 16. Dez. 2021 um 23:26 Uhr schrieb Mark Wielaard <mark@klomp.org>: > On Thu, Dec 16, 2021 at 11:00:24PM +0100, Marc Nieper-Wißkirchen via Jit > wrote: > > Here is the Valgrind output for a debug GCC build: > > You have to build gcc with: > > configure --enable-valgrind-annotations > > Mark selected memory related operations in the compiler when run > under valgrind to suppress false positives. > > Cheers, > > Mark > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: Memory leaks (detected by Valgrind) 2021-12-17 10:29 ` Marc Nieper-Wißkirchen @ 2021-12-17 10:52 ` Alex Coplan 2021-12-17 14:03 ` Marc Nieper-Wißkirchen 2021-12-17 23:22 ` David Malcolm 0 siblings, 2 replies; 16+ messages in thread From: Alex Coplan @ 2021-12-17 10:52 UTC (permalink / raw) To: Marc Nieper-Wißkirchen, Mark Wielaard; +Cc: jit Hi, > -----Original Message----- > From: Jit <jit-bounces+alex.coplan=arm.com@gcc.gnu.org> On Behalf Of Marc > Nieper-Wißkirchen via Jit > Sent: 17 December 2021 10:29 > To: Mark Wielaard <mark@klomp.org> > Cc: Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com>; jit@gcc.gnu.org > Subject: Re: Memory leaks (detected by Valgrind) > > Thanks! > > With `--enable-valgrind-annotations`, the "uses of uninitialized values" > have gone away, but a lot of small leaks are still present: Memory leaks with libgccjit are a known issue, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 Thanks, Alex > > ==470150== Memcheck, a memory error detector > ==470150== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et > al. > ==470150== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright > info > ==470150== Command: ./a.out > ==470150== > ==470150== > ==470150== HEAP SUMMARY: > ==470150== in use at exit: 1,485,998 bytes in 1,172 blocks > ==470150== total heap usage: 5,358 allocs, 4,186 frees, 2,898,194 bytes > allocated > ==470150== > ==470150== 9 bytes in 1 blocks are definitely lost in loss record 6 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B9536C: set_multilib_dir (gcc.c:9850) > ==470150== by 0x4B9536C: driver::set_up_specs() const (gcc.c:8546) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== by 0x40241F: main (in /tmp/a.out) > ==470150== > ==470150== 12 bytes in 1 blocks are definitely lost in loss record 7 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DDDE03: make_relative_prefix_1 > (make-relative-prefix.c:377) > ==470150== by 0x4B8BCAA: process_command(unsigned int, > cl_decoded_option*) (gcc.c:4731) > ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== > ==470150== 16 bytes in 1 blocks are definitely lost in loss record 12 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DDDE03: make_relative_prefix_1 > (make-relative-prefix.c:377) > ==470150== by 0x4B8BCC8: process_command(unsigned int, > cl_decoded_option*) (gcc.c:4734) > ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== > ==470150== 16 bytes in 1 blocks are definitely lost in loss record 13 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B8547F: save_switch(char const*, unsigned long, char > const* const*, bool, bool) (gcc.c:3906) > ==470150== by 0x4B89EA9: driver_handle_option(gcc_options*, > gcc_options*, cl_decoded_option const*, unsigned int, int, unsigned int, > cl_option_handlers const*, diagnostic_context*, void (*)()) (gcc.c:4568) > ==470150== by 0x5D617CE: handle_option(gcc_options*, gcc_options*, > cl_decoded_option const*, unsigned int, int, unsigned int, > cl_option_handlers const*, bool, diagnostic_context*) (opts- > common.c:1181) > ==470150== by 0x5D6195C: read_cmdline_option(gcc_options*, > gcc_options*, > cl_decoded_option*, unsigned int, unsigned int, cl_option_handlers > const*, > diagnostic_context*) (opts-common.c:1431) > ==470150== by 0x4B8B41A: process_command(unsigned int, > cl_decoded_option*) (gcc.c:4927) > ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== > ==470150== 16 bytes in 1 blocks are definitely lost in loss record 14 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B94C0A: set_multilib_dir (gcc.c:9650) > ==470150== by 0x4B94C0A: driver::set_up_specs() const (gcc.c:8546) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== by 0x40241F: main (in /tmp/a.out) > ==470150== > ==470150== 16 bytes in 1 blocks are definitely lost in loss record 15 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B8C8B9: record_temp_file(char const*, int, int) > (gcc.c:2679) > ==470150== by 0x4B8CD3B: end_going_arg() [clone .part.0] (gcc.c:5649) > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) > (gcc.c:6061) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== > ==470150== 17 bytes in 1 blocks are definitely lost in loss record 16 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B953A7: set_multilib_dir (gcc.c:9858) > ==470150== by 0x4B953A7: driver::set_up_specs() const (gcc.c:8546) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== by 0x40241F: main (in /tmp/a.out) > ==470150== > ==470150== 18 bytes in 1 blocks are definitely lost in loss record 17 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, > int, bool) (gcc.c:3072) > ==470150== by 0x4B918A9: find_a_program (gcc.c:3100) > ==470150== by 0x4B918A9: maybe_putenv_COLLECT_LTO_WRAPPER (gcc.c:8572) > ==470150== by 0x4B918A9: driver::maybe_putenv_COLLECT_LTO_WRAPPER() > const (gcc.c:8565) > ==470150== by 0x4B48616: driver::main(int, char**) (gcc.c:8131) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== > ==470150== 18 bytes in 1 blocks are definitely lost in loss record 18 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, > int, bool) (gcc.c:3072) > ==470150== by 0x4B8856D: find_a_program (gcc.c:3100) > ==470150== by 0x4B8856D: execute() (gcc.c:3283) > ==470150== by 0x4B9313C: driver::do_spec_on_infiles() const > (gcc.c:8920) > ==470150== by 0x4B4884E: driver::main(int, char**) (gcc.c:8148) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== > ==470150== 18 bytes in 1 blocks are definitely lost in loss record 19 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, > int, bool) (gcc.c:3072) > ==470150== by 0x4B93E5B: find_a_program (gcc.c:3100) > ==470150== by 0x4B93E5B: driver::maybe_run_linker(char const*) const > (gcc.c:9085) > ==470150== by 0x4B4885D: driver::main(int, char**) (gcc.c:8149) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== > ==470150== 18 bytes in 1 blocks are definitely lost in loss record 20 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B849EB: build_search_list(path_prefix const*, char > const*, bool, bool) (gcc.c:2974) > ==470150== by 0x4B93DC5: putenv_from_prefixes (gcc.c:2987) > ==470150== by 0x4B93DC5: driver::maybe_run_linker(char const*) const > (gcc.c:9116) > ==470150== by 0x4B4885D: driver::main(int, char**) (gcc.c:8149) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== > ==470150== 18 bytes in 1 blocks are definitely lost in loss record 21 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B849EB: build_search_list(path_prefix const*, char > const*, bool, bool) (gcc.c:2974) > ==470150== by 0x4B93DF1: putenv_from_prefixes (gcc.c:2987) > ==470150== by 0x4B93DF1: driver::maybe_run_linker(char const*) const > (gcc.c:9117) > ==470150== by 0x4B4885D: driver::main(int, char**) (gcc.c:8149) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== > ==470150== 18 bytes in 1 blocks are definitely lost in loss record 22 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B8E5F2: do_spec_1(char const*, int, char const*) > (gcc.c:6132) > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) > (gcc.c:6791) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== > ==470150== 18 bytes in 1 blocks are definitely lost in loss record 23 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, > int, bool) (gcc.c:3072) > ==470150== by 0x4B8CD88: find_file (gcc.c:7898) > ==470150== by 0x4B8CD88: end_going_arg() [clone .part.0] (gcc.c:5635) > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) > (gcc.c:6061) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B8E60E: do_spec_1(char const*, int, char const*) > (gcc.c:6623) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== > ==470150== 18 bytes in 1 blocks are definitely lost in loss record 24 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, > int, bool) (gcc.c:3072) > ==470150== by 0x4B8CD88: find_file (gcc.c:7898) > ==470150== by 0x4B8CD88: end_going_arg() [clone .part.0] (gcc.c:5635) > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) > (gcc.c:6061) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== > ==470150== 18 bytes in 1 blocks are definitely lost in loss record 25 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, > int, bool) (gcc.c:3072) > ==470150== by 0x4B8856D: find_a_program (gcc.c:3100) > ==470150== by 0x4B8856D: execute() (gcc.c:3283) > ==470150== by 0x4B8D3E4: do_spec_1(char const*, int, char const*) > (gcc.c:6037) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== > ==470150== 21 bytes in 1 blocks are definitely lost in loss record 26 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B9458E: driver::set_up_specs() const (gcc.c:8333) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== > ==470150== 28 bytes in 1 blocks are definitely lost in loss record 31 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B8BCEF: process_command(unsigned int, > cl_decoded_option*) (gcc.c:4738) > ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== > ==470150== 28 bytes in 1 blocks are definitely lost in loss record 32 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B94570: driver::set_up_specs() const (gcc.c:8331) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== > ==470150== 31 bytes in 1 blocks are definitely lost in loss record 34 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DE3A5E: xstrdup (xstrdup.c:34) > ==470150== by 0x4B8B026: process_command(unsigned int, > cl_decoded_option*) (gcc.c:4696) > ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== > ==470150== 32 (16 direct, 16 indirect) bytes in 1 blocks are definitely > lost in loss record 35 of 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B8C881: record_temp_file(char const*, int, int) > (gcc.c:2661) > ==470150== by 0x4B8CD3B: end_going_arg() [clone .part.0] (gcc.c:5649) > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) > (gcc.c:6061) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== > ==470150== 34 bytes in 1 blocks are definitely lost in loss record 36 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B4BC29: init_asm_output (toplev.c:701) > ==470150== by 0x4B4BC29: lang_dependent_init (toplev.c:1852) > ==470150== by 0x4B4BC29: do_compile (toplev.c:2141) > ==470150== by 0x4B4BC29: toplev::main(int, char**) (toplev.c:2308) > ==470150== by 0x4B76AEE: gcc::jit::playback::context::compile() > (jit-playback.c:2117) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== by 0x40241F: main (in /tmp/a.out) > ==470150== > ==470150== 36 bytes in 2 blocks are definitely lost in loss record 37 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, > int, bool) (gcc.c:3072) > ==470150== by 0x4B8CD88: find_file (gcc.c:7898) > ==470150== by 0x4B8CD88: end_going_arg() [clone .part.0] (gcc.c:5635) > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char const*) > (gcc.c:6061) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B8DB23: do_spec_1(char const*, int, char const*) > (gcc.c:6668) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== > ==470150== 39 bytes in 1 blocks are definitely lost in loss record 38 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B94ACF: driver::set_up_specs() const (gcc.c:8535) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== > ==470150== 40 bytes in 1 blocks are definitely lost in loss record 50 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > ==470150== by 0x4B8CC0E: reserve<char const*> (vec.h:290) > ==470150== by 0x4B8CC0E: reserve (vec.h:1858) > ==470150== by 0x4B8CC0E: safe_push (vec.h:1967) > ==470150== by 0x4B8CC0E: store_arg(char const*, int, int) (gcc.c:2181) > ==470150== by 0x4B8CD3B: end_going_arg() [clone .part.0] (gcc.c:5649) > ==470150== by 0x4B8F38A: end_going_arg (gcc.c:5628) > ==470150== by 0x4B8F38A: do_spec_2(char const*, char const*) > (gcc.c:5744) > ==470150== by 0x4B9097C: do_self_spec(char const*) (gcc.c:5806) > ==470150== by 0x4B90D9B: do_option_spec(char const*, char const*) > (gcc.c:5795) > ==470150== by 0x4B95E6F: driver_get_configure_time_options(void > (*)(char > const*, void*), void*) (gcc.c:11258) > ==470150== by 0x4B7580A: > gcc::jit::playback::context::make_fake_args(vec<char*, va_heap, vl_ptr>*, > char const*, vec<gcc::jit::recording::requested_dump, va_heap, vl_ptr>*) > (jit-playback.c:2562) > ==470150== by 0x4B7680B: gcc::jit::playback::context::compile() > (jit-playback.c:2103) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== > ==470150== 48 bytes in 1 blocks are definitely lost in loss record 54 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B948EC: driver::set_up_specs() const (gcc.c:8453) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== > ==470150== 59 (40 direct, 19 indirect) bytes in 1 blocks are definitely > lost in loss record 102 of 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B8E8A9: do_spec_1(char const*, int, char const*) > (gcc.c:6354) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) > (gcc.c:6791) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== > ==470150== 74 bytes in 1 blocks are definitely lost in loss record 116 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B848A4: for_each_path(path_prefix const*, bool, > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2813) > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char const*, > int, bool) (gcc.c:3072) > ==470150== by 0x4B945B2: driver::set_up_specs() const (gcc.c:8335) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== > ==470150== 75 bytes in 1 blocks are definitely lost in loss record 118 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B8B7C7: process_command(unsigned int, > cl_decoded_option*) (gcc.c:5410) > ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== > ==470150== 75 bytes in 1 blocks are definitely lost in loss record 119 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DD6961: concat (concat.c:147) > ==470150== by 0x4B8B802: process_command(unsigned int, > cl_decoded_option*) (gcc.c:5413) > ==470150== by 0x4B944F2: driver::set_up_specs() const (gcc.c:8320) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== > ==470150== 88 bytes in 1 blocks are definitely lost in loss record 128 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > ==470150== by 0x4B91177: reserve<char const*> (vec.h:290) > ==470150== by 0x4B91177: reserve (vec.h:1858) > ==470150== by 0x4B91177: reserve_exact (vec.h:1878) > ==470150== by 0x4B91177: create (vec.h:1893) > ==470150== by 0x4B91177: alloc_args (gcc.c:2156) > ==470150== by 0x4B91177: driver::global_initializations() (gcc.c:8242) > ==470150== by 0x4B485DC: driver::main(int, char**) (gcc.c:8126) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== by 0x40241F: main (in /tmp/a.out) > ==470150== > ==470150== 88 bytes in 1 blocks are definitely lost in loss record 129 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) > ==470150== by 0x4B8F8EB: reserve (vec.h:1858) > ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) > ==470150== by 0x4B8F8EB: create (vec.h:1893) > ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) > ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) > ==470150== by 0x4B8F8EB: handle_spec_function(char const*, bool*, char > const*) (gcc.c:6994) > ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B8F378: do_spec_2(char const*, char const*) > (gcc.c:5742) > ==470150== by 0x4B9097C: do_self_spec(char const*) (gcc.c:5806) > ==470150== by 0x4B9470B: driver::set_up_specs() const (gcc.c:8368) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== > ==470150== 88 bytes in 1 blocks are definitely lost in loss record 130 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) > ==470150== by 0x4B8F8EB: reserve (vec.h:1858) > ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) > ==470150== by 0x4B8F8EB: create (vec.h:1893) > ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) > ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) > ==470150== by 0x4B8F8EB: handle_spec_function(char const*, bool*, char > const*) (gcc.c:6994) > ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) > (gcc.c:6791) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== > ==470150== 88 bytes in 1 blocks are definitely lost in loss record 131 of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) > ==470150== by 0x4B8F8EB: reserve (vec.h:1858) > ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) > ==470150== by 0x4B8F8EB: create (vec.h:1893) > ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) > ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) > ==470150== by 0x4B8F8EB: handle_spec_function(char const*, bool*, char > const*) (gcc.c:6994) > ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) > (gcc.c:6791) > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char const*) > (gcc.c:6791) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== > ==470150== 211 bytes in 1 blocks are definitely lost in loss record 146 > of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x5DE3A5E: xstrdup (xstrdup.c:34) > ==470150== by 0x4B8413B: set_spec(char const*, char const*, bool) > (gcc.c:2089) > ==470150== by 0x4B87379: read_specs(char const*, bool, bool) > (gcc.c:2581) > ==470150== by 0x4B949A0: driver::set_up_specs() const (gcc.c:8338) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== > ==470150== 646 bytes in 47 blocks are definitely lost in loss record 166 > of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B86F12: save_string (gcc.c:9301) > ==470150== by 0x4B86F12: read_specs(char const*, bool, bool) > (gcc.c:2542) > ==470150== by 0x4B949A0: driver::set_up_specs() const (gcc.c:8338) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== > ==470150== 792 bytes in 9 blocks are definitely lost in loss record 167 > of > 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) > ==470150== by 0x4B8F8EB: reserve (vec.h:1858) > ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) > ==470150== by 0x4B8F8EB: create (vec.h:1893) > ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) > ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) > ==470150== by 0x4B8F8EB: handle_spec_function(char const*, bool*, char > const*) (gcc.c:6994) > ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char const*) > (gcc.c:6676) > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > ==470150== > ==470150== 2,842 bytes in 1 blocks are definitely lost in loss record 185 > of 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > ==470150== by 0x4B86F94: save_string (gcc.c:9301) > ==470150== by 0x4B86F94: read_specs(char const*, bool, bool) > (gcc.c:2556) > ==470150== by 0x4B949A0: driver::set_up_specs() const (gcc.c:8338) > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > ==470150== by 0x4B74A57: > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, va_heap, > vl_ptr> const*) (jit-playback.c:2785) > ==470150== by 0x4B77212: > gcc::jit::playback::context::invoke_driver(char > const*, char const*, char const*, timevar_id_t, bool, bool) > (jit-playback.c:2773) > ==470150== by 0x4B783AA: > gcc::jit::playback::context::convert_to_dso(char const*) > (jit-playback.c:2694) > ==470150== by 0x4B78409: > gcc::jit::playback::compile_to_memory::postprocess(char const*) > (jit-playback.c:2176) > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > (jit-playback.c:2149) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== > ==470150== 12,611 (48 direct, 12,563 indirect) bytes in 1 blocks are > definitely lost in loss record 191 of 213 > ==470150== at 0x4842839: malloc (in > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > ==470150== by 0x5DF20A8: operator new(unsigned long) (in > /home/mnieper/gcc/install/lib/libgccjit.so.0.0.1) > ==470150== by 0x4F62B89: > gcc::pass_manager::register_pass_name(opt_pass*, char const*) > (passes.c:906) > ==470150== by 0x4F62D98: > gcc::pass_manager::register_one_dump_file(opt_pass*) (passes.c:878) > ==470150== by 0x4F62E88: > gcc::pass_manager::register_dump_files(opt_pass*) (passes.c:890) > ==470150== by 0x4F698CD: > gcc::pass_manager::pass_manager(gcc::context*) > (passes.c:1642) > ==470150== by 0x4B4A20F: general_init (toplev.c:1107) > ==470150== by 0x4B4A20F: toplev::main(int, char**) (toplev.c:2240) > ==470150== by 0x4B76AEE: gcc::jit::playback::context::compile() > (jit-playback.c:2117) > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > (jit-recording.c:1397) > ==470150== by 0x4B5C708: gcc_jit_context_compile (libgccjit.c:3091) > ==470150== by 0x40241F: main (in /tmp/a.out) > ==470150== > ==470150== LEAK SUMMARY: > ==470150== definitely lost: 5,740 bytes in 94 blocks > ==470150== indirectly lost: 12,598 bytes in 334 blocks > ==470150== possibly lost: 0 bytes in 0 blocks > ==470150== still reachable: 1,467,660 bytes in 744 blocks > ==470150== suppressed: 0 bytes in 0 blocks > ==470150== Reachable blocks (those to which a pointer was found) are not > shown. > ==470150== To see them, rerun with: --leak-check=full --show-leak- > kinds=all > ==470150== > ==470150== For lists of detected and suppressed errors, rerun with: -s > ==470150== ERROR SUMMARY: 39 errors from 39 contexts (suppressed: 0 from > 0) > > Am Do., 16. Dez. 2021 um 23:26 Uhr schrieb Mark Wielaard > <mark@klomp.org>: > > > On Thu, Dec 16, 2021 at 11:00:24PM +0100, Marc Nieper-Wißkirchen via > Jit > > wrote: > > > Here is the Valgrind output for a debug GCC build: > > > > You have to build gcc with: > > > > configure --enable-valgrind-annotations > > > > Mark selected memory related operations in the compiler when run > > under valgrind to suppress false positives. > > > > Cheers, > > > > Mark > > > > IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-17 10:52 ` Alex Coplan @ 2021-12-17 14:03 ` Marc Nieper-Wißkirchen 2021-12-17 14:54 ` Andrea Corallo 2021-12-17 23:22 ` David Malcolm 1 sibling, 1 reply; 16+ messages in thread From: Marc Nieper-Wißkirchen @ 2021-12-17 14:03 UTC (permalink / raw) To: Alex Coplan; +Cc: Marc Nieper-Wißkirchen, Mark Wielaard, jit Am Fr., 17. Dez. 2021 um 11:52 Uhr schrieb Alex Coplan <Alex.Coplan@arm.com >: > Hi, > > > -----Original Message----- > > From: Jit <jit-bounces+alex.coplan=arm.com@gcc.gnu.org> On Behalf Of > Marc > > Nieper-Wißkirchen via Jit > > Sent: 17 December 2021 10:29 > > To: Mark Wielaard <mark@klomp.org> > > Cc: Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com>; jit@gcc.gnu.org > > Subject: Re: Memory leaks (detected by Valgrind) > > > > Thanks! > > > > With `--enable-valgrind-annotations`, the "uses of uninitialized values" > > have gone away, but a lot of small leaks are still present: > > Memory leaks with libgccjit are a known issue, see > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 Oh, that the bug has been open so long and is still open is unfortunate as a process using libgccjit usually lasts a lot longer than a single compiler run by gcc. Thanks, Marc ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-17 14:03 ` Marc Nieper-Wißkirchen @ 2021-12-17 14:54 ` Andrea Corallo 2021-12-17 15:11 ` Marc Nieper-Wißkirchen 0 siblings, 1 reply; 16+ messages in thread From: Andrea Corallo @ 2021-12-17 14:54 UTC (permalink / raw) To: Marc Nieper-Wißkirchen via Jit Cc: Alex Coplan, Marc Nieper-Wißkirchen, Mark Wielaard Marc Nieper-Wißkirchen via Jit <jit@gcc.gnu.org> writes: > Am Fr., 17. Dez. 2021 um 11:52 Uhr schrieb Alex Coplan <Alex.Coplan@arm.com >>: > >> Hi, >> >> > -----Original Message----- >> > From: Jit <jit-bounces+alex.coplan=arm.com@gcc.gnu.org> On Behalf Of >> Marc >> > Nieper-Wißkirchen via Jit >> > Sent: 17 December 2021 10:29 >> > To: Mark Wielaard <mark@klomp.org> >> > Cc: Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com>; jit@gcc.gnu.org >> > Subject: Re: Memory leaks (detected by Valgrind) >> > >> > Thanks! >> > >> > With `--enable-valgrind-annotations`, the "uses of uninitialized values" >> > have gone away, but a lot of small leaks are still present: >> >> Memory leaks with libgccjit are a known issue, see >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 > > > Oh, that the bug has been open so long and is still open is unfortunate as > a process using libgccjit usually lasts a lot longer than a single compiler > run by gcc. That's correct, in Emacs we have to work around this running a sub-processes for compilation tasks. Andrea IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-17 14:54 ` Andrea Corallo @ 2021-12-17 15:11 ` Marc Nieper-Wißkirchen 2021-12-17 16:07 ` Andrea Corallo 0 siblings, 1 reply; 16+ messages in thread From: Marc Nieper-Wißkirchen @ 2021-12-17 15:11 UTC (permalink / raw) To: Andrea Corallo Cc: Marc Nieper-Wißkirchen via Jit, Alex Coplan, Marc Nieper-Wißkirchen, Mark Wielaard Am Fr., 17. Dez. 2021 um 15:54 Uhr schrieb Andrea Corallo < andrea.corallo@arm.com>: > Marc Nieper-Wißkirchen via Jit <jit@gcc.gnu.org> writes: > > > Am Fr., 17. Dez. 2021 um 11:52 Uhr schrieb Alex Coplan < > Alex.Coplan@arm.com > >>: > > > >> Hi, > >> > >> > -----Original Message----- > >> > From: Jit <jit-bounces+alex.coplan=arm.com@gcc.gnu.org> On Behalf Of > >> Marc > >> > Nieper-Wißkirchen via Jit > >> > Sent: 17 December 2021 10:29 > >> > To: Mark Wielaard <mark@klomp.org> > >> > Cc: Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com>; > jit@gcc.gnu.org > >> > Subject: Re: Memory leaks (detected by Valgrind) > >> > > >> > Thanks! > >> > > >> > With `--enable-valgrind-annotations`, the "uses of uninitialized > values" > >> > have gone away, but a lot of small leaks are still present: > >> > >> Memory leaks with libgccjit are a known issue, see > >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 > > > > > > Oh, that the bug has been open so long and is still open is unfortunate > as > > a process using libgccjit usually lasts a lot longer than a single > compiler > > run by gcc. > > That's correct, in Emacs we have to work around this running a > sub-processes for compilation tasks. > This weakens the usefulness of libgccjit considerably, doesn't it? If I have to start a new process to invoke it, only a bit is won compared to writing out C and using the C frontend of GCC through exec, no? How to you pass back the result of the compilation from the subprocess to the original process in Emacs? PS How difficult is it to fix the memory leaks? ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-17 15:11 ` Marc Nieper-Wißkirchen @ 2021-12-17 16:07 ` Andrea Corallo 2021-12-17 17:53 ` Marc Nieper-Wißkirchen 0 siblings, 1 reply; 16+ messages in thread From: Andrea Corallo @ 2021-12-17 16:07 UTC (permalink / raw) To: Marc Nieper-Wißkirchen Cc: Marc Nieper-Wißkirchen via Jit, Alex Coplan, Mark Wielaard Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> writes: > Am Fr., 17. Dez. 2021 um 15:54 Uhr schrieb Andrea Corallo <mailto:andrea.corallo@arm.com>:Marc Nieper-Wißkirchen via Jit <mailto:jit@gcc.gnu.org> writes: > >> Am Fr., 17. Dez. 2021 um 11:52 Uhr schrieb Alex Coplan <mailto:Alex.Coplan@arm.com >>>: >> >>> Hi, >>> >>> > -----Original Message----- >>> > From: Jit <jit-bounces+alex.coplan=mailto:arm.com@gcc.gnu.org> On Behalf Of >>> Marc >>> > Nieper-Wißkirchen via Jit >>> > Sent: 17 December 2021 10:29 >>> > To: Mark Wielaard <mailto:mark@klomp.org> >>> > Cc: Marc Nieper-Wißkirchen <mailto:marc.nieper%2Bgnu@gmail.com>; mailto:jit@gcc.gnu.org >>> > Subject: Re: Memory leaks (detected by Valgrind) >>> > >>> > Thanks! >>> > >>> > With `--enable-valgrind-annotations`, the "uses of uninitialized values" >>> > have gone away, but a lot of small leaks are still present: >>> >>> Memory leaks with libgccjit are a known issue, see >>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 >> >> >> Oh, that the bug has been open so long and is still open is unfortunate as >> a process using libgccjit usually lasts a lot longer than a single compiler >> run by gcc. > > This weakens the usefulness of libgccjit considerably, doesn't it? Agree, IMO it does. > If I have to start a new process to invoke it, only a bit is won > compared to writing out C and using the C frontend of GCC through > exec, no? Correct. We leave with that also because we use subprocesses to obtain parallelism (we have no posix thread exposure in Elisp) *and* in any case we would not be able to backport the hypothetical fix to old distros. > How to you pass back the result of the compilation from the > subprocess to the original process in Emacs? For us it's easy as the output of the compilation is a file (we'll reuse it in different sessions). > PS How difficult is it to fix the memory leaks? Good question. Andrea IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-17 16:07 ` Andrea Corallo @ 2021-12-17 17:53 ` Marc Nieper-Wißkirchen 2021-12-17 18:48 ` Andrea Corallo 0 siblings, 1 reply; 16+ messages in thread From: Marc Nieper-Wißkirchen @ 2021-12-17 17:53 UTC (permalink / raw) To: Andrea Corallo Cc: Marc Nieper-Wißkirchen, Marc Nieper-Wißkirchen via Jit, Alex Coplan, Mark Wielaard Am Fr., 17. Dez. 2021 um 17:07 Uhr schrieb Andrea Corallo < andrea.corallo@arm.com>: > Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> writes: > > > Am Fr., 17. Dez. 2021 um 15:54 Uhr schrieb Andrea Corallo <mailto: > andrea.corallo@arm.com>:Marc Nieper-Wißkirchen via Jit <mailto: > jit@gcc.gnu.org> writes: > > > >> Am Fr., 17. Dez. 2021 um 11:52 Uhr schrieb Alex Coplan <mailto: > Alex.Coplan@arm.com > >>>: > >> > >>> Hi, > >>> > >>> > -----Original Message----- > >>> > From: Jit <jit-bounces+alex.coplan=mailto:arm.com@gcc.gnu.org> On > Behalf Of > >>> Marc > >>> > Nieper-Wißkirchen via Jit > >>> > Sent: 17 December 2021 10:29 > >>> > To: Mark Wielaard <mailto:mark@klomp.org> > >>> > Cc: Marc Nieper-Wißkirchen <mailto:marc.nieper%2Bgnu@gmail.com>; > mailto:jit@gcc.gnu.org > >>> > Subject: Re: Memory leaks (detected by Valgrind) > >>> > > >>> > Thanks! > >>> > > >>> > With `--enable-valgrind-annotations`, the "uses of uninitialized > values" > >>> > have gone away, but a lot of small leaks are still present: > >>> > >>> Memory leaks with libgccjit are a known issue, see > >>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 > >> > >> > >> Oh, that the bug has been open so long and is still open is unfortunate > as > >> a process using libgccjit usually lasts a lot longer than a single > compiler > >> run by gcc. > > > > This weakens the usefulness of libgccjit considerably, doesn't it? > > Agree, IMO it does. > > > If I have to start a new process to invoke it, only a bit is won > > compared to writing out C and using the C frontend of GCC through > > exec, no? > > Correct. We leave with that also because we use subprocesses to obtain > parallelism (we have no posix thread exposure in Elisp) *and* in any > case we would not be able to backport the hypothetical fix to old > distros. > Speaking of parallelism: When I tried to find where the memory losses come from, I saw a lot of global variables like `link_command_spec' in `gcc.c'. Does it mean that compiling the context is not thread-safe? (I may have missed that in libgccjit's documentation.) > > How to you pass back the result of the compilation from the > > subprocess to the original process in Emacs? > > For us it's easy as the output of the compilation is a file (we'll reuse > it in different sessions). > > > PS How difficult is it to fix the memory leaks? > > Good question. > > Andrea > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-17 17:53 ` Marc Nieper-Wißkirchen @ 2021-12-17 18:48 ` Andrea Corallo 0 siblings, 0 replies; 16+ messages in thread From: Andrea Corallo @ 2021-12-17 18:48 UTC (permalink / raw) To: Marc Nieper-Wißkirchen Cc: Marc Nieper-Wißkirchen via Jit, Alex Coplan, Mark Wielaard, nd Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> writes: > Speaking of parallelism: When I tried to find where the memory losses come from, I saw a lot of global variables like `link_command_spec' in `gcc.c'. Does it mean that compiling the context is not thread-safe? (I may have missed that in libgccjit's documentation.) It is thread safe because in practice the compilation itself it's all guarded by a mutex, see [1] for more details. That's another good reason (I forgot to mention) why sub-processes are a good option for Emacs (we run many compilations in parallel). Best Regards Andrea PS please use ascii only email on list. [1] <https://gcc.gnu.org/onlinedocs/jit/internals/index.html#design-notes> ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-17 10:52 ` Alex Coplan 2021-12-17 14:03 ` Marc Nieper-Wißkirchen @ 2021-12-17 23:22 ` David Malcolm 2021-12-18 13:57 ` Marc Nieper-Wißkirchen 1 sibling, 1 reply; 16+ messages in thread From: David Malcolm @ 2021-12-17 23:22 UTC (permalink / raw) To: Alex Coplan, Marc Nieper-Wißkirchen, Mark Wielaard; +Cc: jit On Fri, 2021-12-17 at 10:52 +0000, Alex Coplan via Jit wrote: > Hi, > > > -----Original Message----- > > From: Jit <jit-bounces+alex.coplan=arm.com@gcc.gnu.org> On Behalf > > Of Marc > > Nieper-Wißkirchen via Jit > > Sent: 17 December 2021 10:29 > > To: Mark Wielaard <mark@klomp.org> > > Cc: Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com>; > > jit@gcc.gnu.org > > Subject: Re: Memory leaks (detected by Valgrind) > > > > Thanks! > > > > With `--enable-valgrind-annotations`, the "uses of uninitialized > > values" > > have gone away, but a lot of small leaks are still present: > > Memory leaks with libgccjit are a known issue, see > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 FWIW, it looks like all of the remaining leaks are in gcc.c (the "driver" code, for the "gcc" binary). IIRC most of this relates to long-standing code that was written with the assumption that it will only be run once and not persist in memory, and so it tends to mix up string literals and dynamically-allocated strings without bothering to free them (the pointer values persist to the end of "main" when run from gcc, but get cleared when run from libgccjit.so). Patches to clean these up would be great. That said, I'm not the driver/gcc.c maintainer, so I can't formally approve them (but can post +1 emails if they look good to me) [1] Dave [1] also, I'm on vacation, so sorry in advance for any slow responses to email. > > Thanks, > Alex > > > > > ==470150== Memcheck, a memory error detector > > ==470150== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward > > et > > al. > > ==470150== Using Valgrind-3.17.0 and LibVEX; rerun with -h for > > copyright > > info > > ==470150== Command: ./a.out > > ==470150== > > ==470150== > > ==470150== HEAP SUMMARY: > > ==470150== in use at exit: 1,485,998 bytes in 1,172 blocks > > ==470150== total heap usage: 5,358 allocs, 4,186 frees, 2,898,194 > > bytes > > allocated > > ==470150== > > ==470150== 9 bytes in 1 blocks are definitely lost in loss record 6 > > of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B9536C: set_multilib_dir (gcc.c:9850) > > ==470150== by 0x4B9536C: driver::set_up_specs() const > > (gcc.c:8546) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== by 0x40241F: main (in /tmp/a.out) > > ==470150== > > ==470150== 12 bytes in 1 blocks are definitely lost in loss record > > 7 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DDDE03: make_relative_prefix_1 > > (make-relative-prefix.c:377) > > ==470150== by 0x4B8BCAA: process_command(unsigned int, > > cl_decoded_option*) (gcc.c:4731) > > ==470150== by 0x4B944F2: driver::set_up_specs() const > > (gcc.c:8320) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== > > ==470150== 16 bytes in 1 blocks are definitely lost in loss record > > 12 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DDDE03: make_relative_prefix_1 > > (make-relative-prefix.c:377) > > ==470150== by 0x4B8BCC8: process_command(unsigned int, > > cl_decoded_option*) (gcc.c:4734) > > ==470150== by 0x4B944F2: driver::set_up_specs() const > > (gcc.c:8320) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== > > ==470150== 16 bytes in 1 blocks are definitely lost in loss record > > 13 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B8547F: save_switch(char const*, unsigned long, > > char > > const* const*, bool, bool) (gcc.c:3906) > > ==470150== by 0x4B89EA9: driver_handle_option(gcc_options*, > > gcc_options*, cl_decoded_option const*, unsigned int, int, unsigned > > int, > > cl_option_handlers const*, diagnostic_context*, void (*)()) > > (gcc.c:4568) > > ==470150== by 0x5D617CE: handle_option(gcc_options*, > > gcc_options*, > > cl_decoded_option const*, unsigned int, int, unsigned int, > > cl_option_handlers const*, bool, diagnostic_context*) (opts- > > common.c:1181) > > ==470150== by 0x5D6195C: read_cmdline_option(gcc_options*, > > gcc_options*, > > cl_decoded_option*, unsigned int, unsigned int, cl_option_handlers > > const*, > > diagnostic_context*) (opts-common.c:1431) > > ==470150== by 0x4B8B41A: process_command(unsigned int, > > cl_decoded_option*) (gcc.c:4927) > > ==470150== by 0x4B944F2: driver::set_up_specs() const > > (gcc.c:8320) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== > > ==470150== 16 bytes in 1 blocks are definitely lost in loss record > > 14 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B94C0A: set_multilib_dir (gcc.c:9650) > > ==470150== by 0x4B94C0A: driver::set_up_specs() const > > (gcc.c:8546) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== by 0x40241F: main (in /tmp/a.out) > > ==470150== > > ==470150== 16 bytes in 1 blocks are definitely lost in loss record > > 15 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B8C8B9: record_temp_file(char const*, int, int) > > (gcc.c:2679) > > ==470150== by 0x4B8CD3B: end_going_arg() [clone .part.0] > > (gcc.c:5649) > > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6061) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== > > ==470150== 17 bytes in 1 blocks are definitely lost in loss record > > 16 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B953A7: set_multilib_dir (gcc.c:9858) > > ==470150== by 0x4B953A7: driver::set_up_specs() const > > (gcc.c:8546) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== by 0x40241F: main (in /tmp/a.out) > > ==470150== > > ==470150== 18 bytes in 1 blocks are definitely lost in loss record > > 17 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char > > const*, > > int, bool) (gcc.c:3072) > > ==470150== by 0x4B918A9: find_a_program (gcc.c:3100) > > ==470150== by 0x4B918A9: maybe_putenv_COLLECT_LTO_WRAPPER > > (gcc.c:8572) > > ==470150== by 0x4B918A9: > > driver::maybe_putenv_COLLECT_LTO_WRAPPER() > > const (gcc.c:8565) > > ==470150== by 0x4B48616: driver::main(int, char**) (gcc.c:8131) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== > > ==470150== 18 bytes in 1 blocks are definitely lost in loss record > > 18 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char > > const*, > > int, bool) (gcc.c:3072) > > ==470150== by 0x4B8856D: find_a_program (gcc.c:3100) > > ==470150== by 0x4B8856D: execute() (gcc.c:3283) > > ==470150== by 0x4B9313C: driver::do_spec_on_infiles() const > > (gcc.c:8920) > > ==470150== by 0x4B4884E: driver::main(int, char**) (gcc.c:8148) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== > > ==470150== 18 bytes in 1 blocks are definitely lost in loss record > > 19 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char > > const*, > > int, bool) (gcc.c:3072) > > ==470150== by 0x4B93E5B: find_a_program (gcc.c:3100) > > ==470150== by 0x4B93E5B: driver::maybe_run_linker(char const*) > > const > > (gcc.c:9085) > > ==470150== by 0x4B4885D: driver::main(int, char**) (gcc.c:8149) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== > > ==470150== 18 bytes in 1 blocks are definitely lost in loss record > > 20 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B849EB: build_search_list(path_prefix const*, > > char > > const*, bool, bool) (gcc.c:2974) > > ==470150== by 0x4B93DC5: putenv_from_prefixes (gcc.c:2987) > > ==470150== by 0x4B93DC5: driver::maybe_run_linker(char const*) > > const > > (gcc.c:9116) > > ==470150== by 0x4B4885D: driver::main(int, char**) (gcc.c:8149) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== > > ==470150== 18 bytes in 1 blocks are definitely lost in loss record > > 21 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B849EB: build_search_list(path_prefix const*, > > char > > const*, bool, bool) (gcc.c:2974) > > ==470150== by 0x4B93DF1: putenv_from_prefixes (gcc.c:2987) > > ==470150== by 0x4B93DF1: driver::maybe_run_linker(char const*) > > const > > (gcc.c:9117) > > ==470150== by 0x4B4885D: driver::main(int, char**) (gcc.c:8149) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== > > ==470150== 18 bytes in 1 blocks are definitely lost in loss record > > 22 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B8E5F2: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6132) > > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6791) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== > > ==470150== 18 bytes in 1 blocks are definitely lost in loss record > > 23 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char > > const*, > > int, bool) (gcc.c:3072) > > ==470150== by 0x4B8CD88: find_file (gcc.c:7898) > > ==470150== by 0x4B8CD88: end_going_arg() [clone .part.0] > > (gcc.c:5635) > > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6061) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B8E60E: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6623) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== > > ==470150== 18 bytes in 1 blocks are definitely lost in loss record > > 24 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char > > const*, > > int, bool) (gcc.c:3072) > > ==470150== by 0x4B8CD88: find_file (gcc.c:7898) > > ==470150== by 0x4B8CD88: end_going_arg() [clone .part.0] > > (gcc.c:5635) > > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6061) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== > > ==470150== 18 bytes in 1 blocks are definitely lost in loss record > > 25 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char > > const*, > > int, bool) (gcc.c:3072) > > ==470150== by 0x4B8856D: find_a_program (gcc.c:3100) > > ==470150== by 0x4B8856D: execute() (gcc.c:3283) > > ==470150== by 0x4B8D3E4: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6037) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== > > ==470150== 21 bytes in 1 blocks are definitely lost in loss record > > 26 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B9458E: driver::set_up_specs() const > > (gcc.c:8333) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== > > ==470150== 28 bytes in 1 blocks are definitely lost in loss record > > 31 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B8BCEF: process_command(unsigned int, > > cl_decoded_option*) (gcc.c:4738) > > ==470150== by 0x4B944F2: driver::set_up_specs() const > > (gcc.c:8320) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== > > ==470150== 28 bytes in 1 blocks are definitely lost in loss record > > 32 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B94570: driver::set_up_specs() const > > (gcc.c:8331) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== > > ==470150== 31 bytes in 1 blocks are definitely lost in loss record > > 34 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DE3A5E: xstrdup (xstrdup.c:34) > > ==470150== by 0x4B8B026: process_command(unsigned int, > > cl_decoded_option*) (gcc.c:4696) > > ==470150== by 0x4B944F2: driver::set_up_specs() const > > (gcc.c:8320) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== > > ==470150== 32 (16 direct, 16 indirect) bytes in 1 blocks are > > definitely > > lost in loss record 35 of 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B8C881: record_temp_file(char const*, int, int) > > (gcc.c:2661) > > ==470150== by 0x4B8CD3B: end_going_arg() [clone .part.0] > > (gcc.c:5649) > > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6061) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== > > ==470150== 34 bytes in 1 blocks are definitely lost in loss record > > 36 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B4BC29: init_asm_output (toplev.c:701) > > ==470150== by 0x4B4BC29: lang_dependent_init (toplev.c:1852) > > ==470150== by 0x4B4BC29: do_compile (toplev.c:2141) > > ==470150== by 0x4B4BC29: toplev::main(int, char**) > > (toplev.c:2308) > > ==470150== by 0x4B76AEE: gcc::jit::playback::context::compile() > > (jit-playback.c:2117) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== by 0x40241F: main (in /tmp/a.out) > > ==470150== > > ==470150== 36 bytes in 2 blocks are definitely lost in loss record > > 37 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B846CC: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2789) > > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char > > const*, > > int, bool) (gcc.c:3072) > > ==470150== by 0x4B8CD88: find_file (gcc.c:7898) > > ==470150== by 0x4B8CD88: end_going_arg() [clone .part.0] > > (gcc.c:5635) > > ==470150== by 0x4B8D116: end_going_arg (gcc.c:5628) > > ==470150== by 0x4B8D116: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6061) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B8DB23: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6668) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== > > ==470150== 39 bytes in 1 blocks are definitely lost in loss record > > 38 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B94ACF: driver::set_up_specs() const > > (gcc.c:8535) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== > > ==470150== 40 bytes in 1 blocks are definitely lost in loss record > > 50 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > > ==470150== by 0x4B8CC0E: reserve<char const*> (vec.h:290) > > ==470150== by 0x4B8CC0E: reserve (vec.h:1858) > > ==470150== by 0x4B8CC0E: safe_push (vec.h:1967) > > ==470150== by 0x4B8CC0E: store_arg(char const*, int, int) > > (gcc.c:2181) > > ==470150== by 0x4B8CD3B: end_going_arg() [clone .part.0] > > (gcc.c:5649) > > ==470150== by 0x4B8F38A: end_going_arg (gcc.c:5628) > > ==470150== by 0x4B8F38A: do_spec_2(char const*, char const*) > > (gcc.c:5744) > > ==470150== by 0x4B9097C: do_self_spec(char const*) (gcc.c:5806) > > ==470150== by 0x4B90D9B: do_option_spec(char const*, char > > const*) > > (gcc.c:5795) > > ==470150== by 0x4B95E6F: driver_get_configure_time_options(void > > (*)(char > > const*, void*), void*) (gcc.c:11258) > > ==470150== by 0x4B7580A: > > gcc::jit::playback::context::make_fake_args(vec<char*, va_heap, > > vl_ptr>*, > > char const*, vec<gcc::jit::recording::requested_dump, va_heap, > > vl_ptr>*) > > (jit-playback.c:2562) > > ==470150== by 0x4B7680B: gcc::jit::playback::context::compile() > > (jit-playback.c:2103) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== > > ==470150== 48 bytes in 1 blocks are definitely lost in loss record > > 54 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B948EC: driver::set_up_specs() const > > (gcc.c:8453) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== > > ==470150== 59 (40 direct, 19 indirect) bytes in 1 blocks are > > definitely > > lost in loss record 102 of 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B8E8A9: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6354) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6791) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== > > ==470150== 74 bytes in 1 blocks are definitely lost in loss record > > 116 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B848A4: for_each_path(path_prefix const*, bool, > > unsigned long, void* (*)(char*, void*), void*) (gcc.c:2813) > > ==470150== by 0x4B8564A: find_a_file(path_prefix const*, char > > const*, > > int, bool) (gcc.c:3072) > > ==470150== by 0x4B945B2: driver::set_up_specs() const > > (gcc.c:8335) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== > > ==470150== 75 bytes in 1 blocks are definitely lost in loss record > > 118 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B8B7C7: process_command(unsigned int, > > cl_decoded_option*) (gcc.c:5410) > > ==470150== by 0x4B944F2: driver::set_up_specs() const > > (gcc.c:8320) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== > > ==470150== 75 bytes in 1 blocks are definitely lost in loss record > > 119 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DD6961: concat (concat.c:147) > > ==470150== by 0x4B8B802: process_command(unsigned int, > > cl_decoded_option*) (gcc.c:5413) > > ==470150== by 0x4B944F2: driver::set_up_specs() const > > (gcc.c:8320) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== > > ==470150== 88 bytes in 1 blocks are definitely lost in loss record > > 128 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > > ==470150== by 0x4B91177: reserve<char const*> (vec.h:290) > > ==470150== by 0x4B91177: reserve (vec.h:1858) > > ==470150== by 0x4B91177: reserve_exact (vec.h:1878) > > ==470150== by 0x4B91177: create (vec.h:1893) > > ==470150== by 0x4B91177: alloc_args (gcc.c:2156) > > ==470150== by 0x4B91177: driver::global_initializations() > > (gcc.c:8242) > > ==470150== by 0x4B485DC: driver::main(int, char**) (gcc.c:8126) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== by 0x40241F: main (in /tmp/a.out) > > ==470150== > > ==470150== 88 bytes in 1 blocks are definitely lost in loss record > > 129 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > > ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) > > ==470150== by 0x4B8F8EB: reserve (vec.h:1858) > > ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) > > ==470150== by 0x4B8F8EB: create (vec.h:1893) > > ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) > > ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) > > ==470150== by 0x4B8F8EB: handle_spec_function(char const*, > > bool*, char > > const*) (gcc.c:6994) > > ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B8F378: do_spec_2(char const*, char const*) > > (gcc.c:5742) > > ==470150== by 0x4B9097C: do_self_spec(char const*) (gcc.c:5806) > > ==470150== by 0x4B9470B: driver::set_up_specs() const > > (gcc.c:8368) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== > > ==470150== 88 bytes in 1 blocks are definitely lost in loss record > > 130 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > > ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) > > ==470150== by 0x4B8F8EB: reserve (vec.h:1858) > > ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) > > ==470150== by 0x4B8F8EB: create (vec.h:1893) > > ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) > > ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) > > ==470150== by 0x4B8F8EB: handle_spec_function(char const*, > > bool*, char > > const*) (gcc.c:6994) > > ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6791) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== > > ==470150== 88 bytes in 1 blocks are definitely lost in loss record > > 131 of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > > ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) > > ==470150== by 0x4B8F8EB: reserve (vec.h:1858) > > ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) > > ==470150== by 0x4B8F8EB: create (vec.h:1893) > > ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) > > ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) > > ==470150== by 0x4B8F8EB: handle_spec_function(char const*, > > bool*, char > > const*) (gcc.c:6994) > > ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6791) > > ==470150== by 0x4B8E30B: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6791) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== > > ==470150== 211 bytes in 1 blocks are definitely lost in loss record > > 146 > > of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x5DE3A5E: xstrdup (xstrdup.c:34) > > ==470150== by 0x4B8413B: set_spec(char const*, char const*, > > bool) > > (gcc.c:2089) > > ==470150== by 0x4B87379: read_specs(char const*, bool, bool) > > (gcc.c:2581) > > ==470150== by 0x4B949A0: driver::set_up_specs() const > > (gcc.c:8338) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== > > ==470150== 646 bytes in 47 blocks are definitely lost in loss > > record 166 > > of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B86F12: save_string (gcc.c:9301) > > ==470150== by 0x4B86F12: read_specs(char const*, bool, bool) > > (gcc.c:2542) > > ==470150== by 0x4B949A0: driver::set_up_specs() const > > (gcc.c:8338) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== > > ==470150== 792 bytes in 9 blocks are definitely lost in loss record > > 167 > > of > > 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE39CF: xrealloc (xmalloc.c:179) > > ==470150== by 0x4B8F8EB: reserve<char const*> (vec.h:290) > > ==470150== by 0x4B8F8EB: reserve (vec.h:1858) > > ==470150== by 0x4B8F8EB: reserve_exact (vec.h:1878) > > ==470150== by 0x4B8F8EB: create (vec.h:1893) > > ==470150== by 0x4B8F8EB: alloc_args (gcc.c:2156) > > ==470150== by 0x4B8F8EB: eval_spec_function (gcc.c:6905) > > ==470150== by 0x4B8F8EB: handle_spec_function(char const*, > > bool*, char > > const*) (gcc.c:6994) > > ==470150== by 0x4B8FE92: handle_braces(char const*) (gcc.c:7148) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== by 0x4B8DDAD: do_spec_1(char const*, int, char > > const*) > > (gcc.c:6676) > > ==470150== by 0x4B904FC: process_brace_body (gcc.c:7362) > > ==470150== by 0x4B904FC: handle_braces(char const*) (gcc.c:7269) > > ==470150== > > ==470150== 2,842 bytes in 1 blocks are definitely lost in loss > > record 185 > > of 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DE3938: xmalloc (xmalloc.c:149) > > ==470150== by 0x4B86F94: save_string (gcc.c:9301) > > ==470150== by 0x4B86F94: read_specs(char const*, bool, bool) > > (gcc.c:2556) > > ==470150== by 0x4B949A0: driver::set_up_specs() const > > (gcc.c:8338) > > ==470150== by 0x4B485EC: driver::main(int, char**) (gcc.c:8128) > > ==470150== by 0x4B74A57: > > gcc::jit::playback::context::invoke_embedded_driver(vec<char*, > > va_heap, > > vl_ptr> const*) (jit-playback.c:2785) > > ==470150== by 0x4B77212: > > gcc::jit::playback::context::invoke_driver(char > > const*, char const*, char const*, timevar_id_t, bool, bool) > > (jit-playback.c:2773) > > ==470150== by 0x4B783AA: > > gcc::jit::playback::context::convert_to_dso(char const*) > > (jit-playback.c:2694) > > ==470150== by 0x4B78409: > > gcc::jit::playback::compile_to_memory::postprocess(char const*) > > (jit-playback.c:2176) > > ==470150== by 0x4B76C79: gcc::jit::playback::context::compile() > > (jit-playback.c:2149) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== > > ==470150== 12,611 (48 direct, 12,563 indirect) bytes in 1 blocks > > are > > definitely lost in loss record 191 of 213 > > ==470150== at 0x4842839: malloc (in > > /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) > > ==470150== by 0x5DF20A8: operator new(unsigned long) (in > > /home/mnieper/gcc/install/lib/libgccjit.so.0.0.1) > > ==470150== by 0x4F62B89: > > gcc::pass_manager::register_pass_name(opt_pass*, char const*) > > (passes.c:906) > > ==470150== by 0x4F62D98: > > gcc::pass_manager::register_one_dump_file(opt_pass*) (passes.c:878) > > ==470150== by 0x4F62E88: > > gcc::pass_manager::register_dump_files(opt_pass*) (passes.c:890) > > ==470150== by 0x4F698CD: > > gcc::pass_manager::pass_manager(gcc::context*) > > (passes.c:1642) > > ==470150== by 0x4B4A20F: general_init (toplev.c:1107) > > ==470150== by 0x4B4A20F: toplev::main(int, char**) > > (toplev.c:2240) > > ==470150== by 0x4B76AEE: gcc::jit::playback::context::compile() > > (jit-playback.c:2117) > > ==470150== by 0x4B6BA25: gcc::jit::recording::context::compile() > > (jit-recording.c:1397) > > ==470150== by 0x4B5C708: gcc_jit_context_compile > > (libgccjit.c:3091) > > ==470150== by 0x40241F: main (in /tmp/a.out) > > ==470150== > > ==470150== LEAK SUMMARY: > > ==470150== definitely lost: 5,740 bytes in 94 blocks > > ==470150== indirectly lost: 12,598 bytes in 334 blocks > > ==470150== possibly lost: 0 bytes in 0 blocks > > ==470150== still reachable: 1,467,660 bytes in 744 blocks > > ==470150== suppressed: 0 bytes in 0 blocks > > ==470150== Reachable blocks (those to which a pointer was found) > > are not > > shown. > > ==470150== To see them, rerun with: --leak-check=full --show-leak- > > kinds=all > > ==470150== > > ==470150== For lists of detected and suppressed errors, rerun with: > > -s > > ==470150== ERROR SUMMARY: 39 errors from 39 contexts (suppressed: 0 > > from > > 0) > > > > Am Do., 16. Dez. 2021 um 23:26 Uhr schrieb Mark Wielaard > > <mark@klomp.org>: > > > > > On Thu, Dec 16, 2021 at 11:00:24PM +0100, Marc Nieper-Wißkirchen > > > via > > Jit > > > wrote: > > > > Here is the Valgrind output for a debug GCC build: > > > > > > You have to build gcc with: > > > > > > configure --enable-valgrind-annotations > > > > > > Mark selected memory related operations in the compiler when > > > run > > > under valgrind to suppress false positives. > > > > > > Cheers, > > > > > > Mark > > > > > > > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose > the contents to any other person, use it for any purpose, or store or > copy the information in any medium. Thank you. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-17 23:22 ` David Malcolm @ 2021-12-18 13:57 ` Marc Nieper-Wißkirchen 2021-12-18 16:45 ` David Malcolm 0 siblings, 1 reply; 16+ messages in thread From: Marc Nieper-Wißkirchen @ 2021-12-18 13:57 UTC (permalink / raw) To: David Malcolm Cc: Alex Coplan, Marc Nieper-Wißkirchen, Mark Wielaard, jit Am Sa., 18. Dez. 2021 um 00:23 Uhr schrieb David Malcolm <dmalcolm@redhat.com>: > > On Fri, 2021-12-17 at 10:52 +0000, Alex Coplan via Jit wrote: > > Hi, > > > > > -----Original Message----- > > > From: Jit <jit-bounces+alex.coplan=arm.com@gcc.gnu.org> On Behalf > > > Of Marc > > > Nieper-Wißkirchen via Jit > > > Sent: 17 December 2021 10:29 > > > To: Mark Wielaard <mark@klomp.org> > > > Cc: Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com>; > > > jit@gcc.gnu.org > > > Subject: Re: Memory leaks (detected by Valgrind) > > > > > > Thanks! > > > > > > With `--enable-valgrind-annotations`, the "uses of uninitialized > > > values" > > > have gone away, but a lot of small leaks are still present: > > > > Memory leaks with libgccjit are a known issue, see > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 > > FWIW, it looks like all of the remaining leaks are in gcc.c (the > "driver" code, for the "gcc" binary). IIRC most of this relates to > long-standing code that was written with the assumption that it will > only be run once and not persist in memory, and so it tends to mix up > string literals and dynamically-allocated strings without bothering to > free them (the pointer values persist to the end of "main" when run > from gcc, but get cleared when run from libgccjit.so). > > Patches to clean these up would be great. That said, I'm not the > driver/gcc.c maintainer, so I can't formally approve them (but can post > +1 emails if they look good to me) [1] I am currently trying to find my way through the code in gcc.c. During my experiments, I fixed a single leak where a dynamically allocated string was assigned in place of a statically allocated one by moving the dynamically allocated string onto the obstack. I hope that such an approach is acceptable. > > Dave > [1] also, I'm on vacation, so sorry in advance for any slow responses > to email. I wish you a good time on your vacation! [...] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-18 13:57 ` Marc Nieper-Wißkirchen @ 2021-12-18 16:45 ` David Malcolm 2021-12-18 17:50 ` Marc Nieper-Wißkirchen 2021-12-18 19:36 ` Marc Nieper-Wißkirchen 0 siblings, 2 replies; 16+ messages in thread From: David Malcolm @ 2021-12-18 16:45 UTC (permalink / raw) To: Marc Nieper-Wißkirchen; +Cc: Alex Coplan, Mark Wielaard, jit, Joseph Myers On Sat, 2021-12-18 at 14:57 +0100, Marc Nieper-Wißkirchen wrote: > Am Sa., 18. Dez. 2021 um 00:23 Uhr schrieb David Malcolm < > dmalcolm@redhat.com>: > > > > On Fri, 2021-12-17 at 10:52 +0000, Alex Coplan via Jit wrote: > > > Hi, > > > > > > > -----Original Message----- > > > > From: Jit <jit-bounces+alex.coplan=arm.com@gcc.gnu.org> On > > > > Behalf > > > > Of Marc > > > > Nieper-Wißkirchen via Jit > > > > Sent: 17 December 2021 10:29 > > > > To: Mark Wielaard <mark@klomp.org> > > > > Cc: Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com>; > > > > jit@gcc.gnu.org > > > > Subject: Re: Memory leaks (detected by Valgrind) > > > > > > > > Thanks! > > > > > > > > With `--enable-valgrind-annotations`, the "uses of > > > > uninitialized > > > > values" > > > > have gone away, but a lot of small leaks are still present: > > > > > > Memory leaks with libgccjit are a known issue, see > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 > > > > FWIW, it looks like all of the remaining leaks are in gcc.c (the > > "driver" code, for the "gcc" binary). IIRC most of this relates > > to > > long-standing code that was written with the assumption that it > > will > > only be run once and not persist in memory, and so it tends to mix > > up > > string literals and dynamically-allocated strings without bothering > > to > > free them (the pointer values persist to the end of "main" when run > > from gcc, but get cleared when run from libgccjit.so). > > > > Patches to clean these up would be great. That said, I'm not the > > driver/gcc.c maintainer, so I can't formally approve them (but can > > post > > +1 emails if they look good to me) [1] > > I am currently trying to find my way through the code in gcc.c. > During > my experiments, I fixed a single leak where a dynamically allocated > string was assigned in place of a statically allocated one by moving > the dynamically allocated string onto the obstack. I hope that such > an > approach is acceptable. IIRC I tried that approach, and the maintainer (Joseph Myers, I think), wasn't keen on it, but this was a few years ago. I've tried finding the discussion in the archives, but couldn't. IIRC, he preferred adding a flag to strings in gcc.c, tracking if they needed to be freed. I'm CCing Joseph. FWIW there's a class in libcpp/include/line-map.h: class label_text which does this. Perhaps it could be used for this (and maybe renamed???) Commit 9376dd63e6a2d94823f6faf8212c9f37bef5a656 added the code to run gcc.c in-process (before it was run in a subprocess), so maybe the discussion was some time around then? (2015-08-25) Note that it's still possible to run this code in a subprocess rather than in-process (and thus workaround the leak) using gcc_jit_context_set_bool_use_external_driver. > > > > > Dave > > > [1] also, I'm on vacation, so sorry in advance for any slow > > responses > > to email. > > I wish you a good time on your vacation! Thanks! Dave ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-18 16:45 ` David Malcolm @ 2021-12-18 17:50 ` Marc Nieper-Wißkirchen 2021-12-18 19:36 ` Marc Nieper-Wißkirchen 1 sibling, 0 replies; 16+ messages in thread From: Marc Nieper-Wißkirchen @ 2021-12-18 17:50 UTC (permalink / raw) To: David Malcolm Cc: Marc Nieper-Wißkirchen, Alex Coplan, Mark Wielaard, jit, Joseph Myers Am Sa., 18. Dez. 2021 um 17:45 Uhr schrieb David Malcolm <dmalcolm@redhat.com>: > > On Sat, 2021-12-18 at 14:57 +0100, Marc Nieper-Wißkirchen wrote: > > Am Sa., 18. Dez. 2021 um 00:23 Uhr schrieb David Malcolm < > > dmalcolm@redhat.com>: > > > > > > On Fri, 2021-12-17 at 10:52 +0000, Alex Coplan via Jit wrote: > > > > Hi, > > > > > > > > > -----Original Message----- > > > > > From: Jit <jit-bounces+alex.coplan=arm.com@gcc.gnu.org> On > > > > > Behalf > > > > > Of Marc > > > > > Nieper-Wißkirchen via Jit > > > > > Sent: 17 December 2021 10:29 > > > > > To: Mark Wielaard <mark@klomp.org> > > > > > Cc: Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com>; > > > > > jit@gcc.gnu.org > > > > > Subject: Re: Memory leaks (detected by Valgrind) > > > > > > > > > > Thanks! > > > > > > > > > > With `--enable-valgrind-annotations`, the "uses of > > > > > uninitialized > > > > > values" > > > > > have gone away, but a lot of small leaks are still present: > > > > > > > > Memory leaks with libgccjit are a known issue, see > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 > > > > > > FWIW, it looks like all of the remaining leaks are in gcc.c (the > > > "driver" code, for the "gcc" binary). IIRC most of this relates > > > to > > > long-standing code that was written with the assumption that it > > > will > > > only be run once and not persist in memory, and so it tends to mix > > > up > > > string literals and dynamically-allocated strings without bothering > > > to > > > free them (the pointer values persist to the end of "main" when run > > > from gcc, but get cleared when run from libgccjit.so). > > > > > > Patches to clean these up would be great. That said, I'm not the > > > driver/gcc.c maintainer, so I can't formally approve them (but can > > > post > > > +1 emails if they look good to me) [1] > > > > I am currently trying to find my way through the code in gcc.c. > > During > > my experiments, I fixed a single leak where a dynamically allocated > > string was assigned in place of a statically allocated one by moving > > the dynamically allocated string onto the obstack. I hope that such > > an > > approach is acceptable. > > IIRC I tried that approach, and the maintainer (Joseph Myers, I think), > wasn't keen on it, but this was a few years ago. I've tried finding > the discussion in the archives, but couldn't. IIRC, he preferred > adding a flag to strings in gcc.c, tracking if they needed to be freed. > I'm CCing Joseph. FWIW there's a class in libcpp/include/line-map.h: > class label_text which does this. Perhaps it could be used for this > (and maybe renamed???) Okay, no problem to do it that way. > Commit 9376dd63e6a2d94823f6faf8212c9f37bef5a656 added the code to run > gcc.c in-process (before it was run in a subprocess), so maybe the > discussion was some time around then? (2015-08-25) > > Note that it's still possible to run this code in a subprocess rather > than in-process (and thus workaround the leak) using > gcc_jit_context_set_bool_use_external_driver. There are still leaks using the external driver as far as I can tell. In passes.c, the pass map is not deleted. It seems that the following fixes it: diff --git a/gcc/passes.c b/gcc/passes.c index 4bea6ae5b6a..0c70ece5321 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -903,7 +903,7 @@ void pass_manager::register_pass_name (opt_pass *pass, const char *name) { if (!m_name_to_pass_map) - m_name_to_pass_map = new hash_map<nofree_string_hash, opt_pass *> (256); + m_name_to_pass_map = new hash_map<free_string_hash, opt_pass *> (256); if (m_name_to_pass_map->get (name)) return; /* Ignore plugin passes. */ @@ -1674,6 +1674,7 @@ pass_manager::~pass_manager () GCC_PASS_LISTS #undef DEF_PASS_LIST + delete m_name_to_pass_map; } diff --git a/gcc/pass_manager.h b/gcc/pass_manager.h index aaf72cf6803..f5615e1fda8 100644 --- a/gcc/pass_manager.h +++ b/gcc/pass_manager.h @@ -106,7 +106,7 @@ private: private: context *m_ctxt; - hash_map<nofree_string_hash, opt_pass *> *m_name_to_pass_map; + hash_map<free_string_hash, opt_pass *> *m_name_to_pass_map; /* References to all of the individual passes. These fields are generated via macro expansion. @@ -146,4 +146,3 @@ private: } // namespace gcc diff --git a/gcc/hash-traits.h b/gcc/hash-traits.h index 6f0373ec27f..1c08d6874ab 100644 --- a/gcc/hash-traits.h +++ b/gcc/hash-traits.h @@ -28,6 +28,11 @@ struct typed_free_remove static inline void remove (Type *p); }; +template <typename Type> +struct typed_const_free_remove +{ + static inline void remove (const Type *p); +}; /* Remove with free. */ @@ -38,6 +43,13 @@ typed_free_remove <Type>::remove (Type *p) free (p); } +template <typename Type> +inline void +typed_const_free_remove <Type>::remove (const Type *p) +{ + free (const_cast <Type *> (p)); +} + /* Helpful type for removing with delete. */ template <typename Type> @@ -305,6 +317,11 @@ struct ggc_ptr_hash : pointer_hash <T>, ggc_remove <T *> {}; template <typename T> struct ggc_cache_ptr_hash : pointer_hash <T>, ggc_cache_remove <T *> {}; +/* Traits for string elements that should be freed when an element is + deleted. */ + +struct free_string_hash : string_hash, typed_const_free_remove <char> {}; + /* Traits for string elements that should not be freed when an element is deleted. */ -- Marc ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Memory leaks (detected by Valgrind) 2021-12-18 16:45 ` David Malcolm 2021-12-18 17:50 ` Marc Nieper-Wißkirchen @ 2021-12-18 19:36 ` Marc Nieper-Wißkirchen 1 sibling, 0 replies; 16+ messages in thread From: Marc Nieper-Wißkirchen @ 2021-12-18 19:36 UTC (permalink / raw) To: David Malcolm Cc: Marc Nieper-Wißkirchen, Alex Coplan, Mark Wielaard, jit, Joseph Myers Am Sa., 18. Dez. 2021 um 17:45 Uhr schrieb David Malcolm <dmalcolm@redhat.com>: [...] > IIRC I tried that approach, and the maintainer (Joseph Myers, I think), > wasn't keen on it, but this was a few years ago. I've tried finding > the discussion in the archives, but couldn't. IIRC, he preferred > adding a flag to strings in gcc.c, tracking if they needed to be freed. > I'm CCing Joseph. FWIW there's a class in libcpp/include/line-map.h: > class label_text which does this. Perhaps it could be used for this > (and maybe renamed???) Using label_text (suitably renamed) everywhere looks like the most elegant solution but it would be a very invasive change to the existing code of gcc.c. It contains and uses a lot of functions that handle strings and allocate new ones (like find_file or concat), which would have to be rewritten to take a label_text argument. A much simpler solution is IMO to maintain a vector of pointers that have to be eventually freed. A function template <typename T> T *gc (T *s) adds the argument to the vector of addresses to be garbage-collected (= freed) later. Many calls to, say, concat would then be rewritten in the form gc (concat (...)) Marc ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2021-12-18 19:36 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-12-16 17:17 Memory leaks (detected by Valgrind) Marc Nieper-Wißkirchen 2021-12-16 22:00 ` Marc Nieper-Wißkirchen 2021-12-16 22:26 ` Mark Wielaard 2021-12-17 10:29 ` Marc Nieper-Wißkirchen 2021-12-17 10:52 ` Alex Coplan 2021-12-17 14:03 ` Marc Nieper-Wißkirchen 2021-12-17 14:54 ` Andrea Corallo 2021-12-17 15:11 ` Marc Nieper-Wißkirchen 2021-12-17 16:07 ` Andrea Corallo 2021-12-17 17:53 ` Marc Nieper-Wißkirchen 2021-12-17 18:48 ` Andrea Corallo 2021-12-17 23:22 ` David Malcolm 2021-12-18 13:57 ` Marc Nieper-Wißkirchen 2021-12-18 16:45 ` David Malcolm 2021-12-18 17:50 ` Marc Nieper-Wißkirchen 2021-12-18 19:36 ` Marc Nieper-Wißkirchen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).