Surelog license will expire 6/30/2019
********************************************
*  SURELOG System Verilog Compiler/Linter  *
********************************************

[INFO :CM0023] Creating log file ./slpp_all/surelog.log.

[NOTE :CM0009] Command line argument "+vcs+flush+all" ignored.

[NOTE :CM0009] Command line argument "+warn=all" ignored.

[WARNI:CM0010] Command line argument "-sverilog" ignored.

[INFO :CM0024] Executing with 4 threads.

[INFO :PP0122] Preprocessing source file "../../dist/surelog/surelog".

[INFO :PP0122] Preprocessing source file "../../../UVM/uvm-1.2/src/uvm_pkg.sv".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_object_defines.svh, line 1573, col 8: Unused macro argument "VAL".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_object_defines.svh, line 1580, col 8: Unused macro argument "ARG".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_object_defines.svh, line 1580, col 8: Unused macro argument "VAL".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_object_defines.svh, line 3341, col 12: Unused macro argument "TR_HANDLE".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_printer_defines.svh, line 399, col 8: Unused macro argument "KEY".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_callback_defines.svh, line 294, col 8: Unused macro argument "CB".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_callback_defines.svh, line 294, col 8: Unused macro argument "OPER".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_callback_defines.svh, line 295, col 8: Unused macro argument "CB".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_callback_defines.svh, line 295, col 8: Unused macro argument "OBJ".

[WARNI:PP0113] ../../../UVM/uvm-1.2/src/macros/uvm_callback_defines.svh, line 295, col 8: Unused macro argument "OPER".

[INFO :PP0122] Preprocessing source file "../../../UVM/svaunit/sv/svaunit_pkg.sv".

[INFO :PP0122] Preprocessing source file "../../../UVM/svaunit/sv/svaunit_vpi_interface.sv".

[INFO :PP0122] Preprocessing source file "design.sv".

[INFO :PP0122] Preprocessing source file "testbench.sv".

[INFO :PP0122] Preprocessing source file "an_interface.sv".

[INFO :PP0122] Preprocessing source file "apb_top.sv".

[INFO :PA0201] Parsing source file "../../dist/surelog/surelog".

[INFO :PA0201] Parsing source file "../../../UVM/uvm-1.2/src/uvm_pkg.sv".

[INFO :PA0201] Parsing source file "../../../UVM/svaunit/sv/svaunit_pkg.sv".

[INFO :PA0201] Parsing source file "../../../UVM/svaunit/sv/svaunit_pkg.sv".

[INFO :PA0201] Parsing source file "../../../UVM/svaunit/sv/svaunit_pkg.sv".

[INFO :PA0201] Parsing source file "../../../UVM/svaunit/sv/svaunit_pkg.sv".

[INFO :PA0201] Parsing source file "../../../UVM/svaunit/sv/svaunit_vpi_interface.sv".

[INFO :PA0201] Parsing source file "design.sv".

[INFO :PA0201] Parsing source file "testbench.sv".

[INFO :PA0201] Parsing source file "testbench.sv".

[INFO :PA0201] Parsing source file "testbench.sv".

[INFO :PA0201] Parsing source file "testbench.sv".

[INFO :PA0201] Parsing source file "testbench.sv".

[INFO :PA0201] Parsing source file "an_interface.sv".

[INFO :PA0201] Parsing source file "an_interface.sv".

[INFO :PA0201] Parsing source file "an_interface.sv".

[INFO :PA0201] Parsing source file "apb_top.sv".

[INFO :PA0201] Parsing source file "apb_top.sv".

[INFO :PA0201] Parsing source file "apb_top.sv".

[INFO :PA0201] Parsing source file "apb_top.sv".

[INFO :PA0201] Parsing source file "apb_top.sv".

[INFO :PA0201] Parsing source file "apb_top.sv".

[ERROR:PA0207] ../../dist/surelog/surelog, line 1: Syntax error: mismatched input '#' expecting <EOF>.

[INFO :PA0201] Parsing source file "../../../UVM/svaunit/sv/svaunit_pkg.sv".

[INFO :PA0201] Parsing source file "testbench.sv".

[INFO :PA0201] Parsing source file "an_interface.sv".

[INFO :PA0201] Parsing source file "apb_top.sv".

[WARNI:PA0205] ../../../UVM/svaunit/sv/svaunit_pkg.sv, line 22: No timescale set for "svaunit_pkg".

[WARNI:PA0205] uvm-1.2/src/uvm_pkg.sv, line 27: No timescale set for "uvm_pkg".

[WARNI:PA0205] ../../../UVM/svaunit/sv/svaunit_vpi_interface.sv, line 23: No timescale set for "svaunit_vpi_interface".

[INFO :CP0300] Compilation...

[INFO :CP0301] uvm-1.2/src/uvm_pkg.sv, line 27: Compile package "uvm_pkg".

[INFO :CP0301] ../../../UVM/svaunit/sv/svaunit_pkg.sv, line 22: Compile package "svaunit_pkg".

[INFO :CP0301] amiq_svaunit_ex_simple_pkg.sv, line 26: Compile package "amiq_svaunit_ex_simple_pkg".

[INFO :CP0301] amiq_svaunit_ex_simple_pkg.sv, line 26: Compile package "amiq_svaunit_ex_simple_pkg".

[INFO :CP0302] amiq_svaunit_ex_simple_test_head_sequence.sv, line 24: Compile class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_head_sequence".

[INFO :CP0302] amiq_svaunit_ex_simple_pkg.sv, line 4339: Compile class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_head_sequence".

[INFO :CP0302] amiq_svaunit_ex_simple_test_sequence.sv, line 24: Compile class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_sequence".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 330: Compile class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_suite".

[INFO :CP0302] amiq_svaunit_ex_simple_pkg.sv, line 4526: Compile class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_unit".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 330: Compile class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_unit".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 245: Compile class "svaunit_pkg::svaunit_concurrent_assertion_info".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 245: Compile class "svaunit_pkg::svaunit_concurrent_assertion_details".

[INFO :CP0302] ../../../UVM/svaunit/sv/svaunit_base.svh, line 23: Compile class "svaunit_pkg::svaunit_base".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 245: Compile class "svaunit_pkg::svaunit_immediate_assertion_details".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 334: Compile class "svaunit_pkg::svaunit_sequence_test".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 245: Compile class "svaunit_pkg::svaunit_immediate_assertion_info".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 245: Compile class "svaunit_pkg::svaunit_reporter".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 330: Compile class "svaunit_pkg::svaunit_test".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 330: Compile class "svaunit_pkg::svaunit_sequencer".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 330: Compile class "svaunit_pkg::svaunit_test_suite".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource.svh, line 590: Compile class "uvm_pkg::get_t".

[INFO :CP0302] uvm-1.2/src/base/uvm_tr_stream.svh, line 31: Compile class "uvm_pkg::m_uvm_tr_stream_cfg".

[INFO :CP0302] uvm-1.2/src/base/uvm_config_db.svh, line 38: Compile class "uvm_pkg::m_uvm_waiter".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_catcher.svh, line 32: Compile class "uvm_pkg::sev_id_struct".

[INFO :CP0302] uvm-1.2/src/comps/uvm_agent.svh, line 39: Compile class "uvm_pkg::uvm_agent".

[INFO :CP0302] uvm-1.2/src/comps/uvm_algorithmic_comparator.svh, line 68: Compile class "uvm_pkg::uvm_algorithmic_comparator".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 101: Compile class "uvm_pkg::uvm_blocking_get_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 136: Compile class "uvm_pkg::uvm_blocking_get_peek_port".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_analysis_port.svh, line 127: Compile class "uvm_pkg::uvm_analysis_export".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource_specializations.svh, line 131: Compile class "uvm_pkg::uvm_bit_rsrc".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 233: Compile class "uvm_pkg::uvm_blocking_master_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_analysis_port.svh, line 111: Compile class "uvm_pkg::uvm_analysis_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 99: Compile class "uvm_pkg::uvm_blocking_get_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 80: Compile class "uvm_pkg::uvm_blocking_put_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_analysis_port.svh, line 56: Compile class "uvm_pkg::uvm_analysis_port".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 137: Compile class "uvm_pkg::uvm_blocking_get_peek_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 222: Compile class "uvm_pkg::uvm_blocking_slave_export".

[INFO :CP0302] uvm-1.2/src/base/uvm_barrier.svh, line 34: Compile class "uvm_pkg::uvm_barrier".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 201: Compile class "uvm_pkg::uvm_blocking_master_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 243: Compile class "uvm_pkg::uvm_blocking_transport_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 246: Compile class "uvm_pkg::uvm_blocking_transport_port".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 117: Compile class "uvm_pkg::uvm_blocking_peek_export".

[INFO :CP0302] uvm-1.2/src/base/uvm_common_phases.svh, line 63: Compile class "uvm_pkg::uvm_build_phase".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 118: Compile class "uvm_pkg::uvm_blocking_peek_port".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 135: Compile class "uvm_pkg::uvm_blocking_get_peek_export".

[INFO :CP0302] uvm-1.2/src/comps/uvm_policies.svh, line 59: Compile class "uvm_pkg::uvm_built_in_converter".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 81: Compile class "uvm_pkg::uvm_blocking_put_port".

[INFO :CP0302] uvm-1.2/src/base/uvm_traversal.svh, line 178: Compile class "uvm_pkg::uvm_by_level_visitor_adapter".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 100: Compile class "uvm_pkg::uvm_blocking_get_port".

[INFO :CP0302] amiq_svaunit_ex_simple_pkg.sv, line 4181: Compile class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_sequence".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource_specializations.svh, line 154: Compile class "uvm_pkg::uvm_byte_rsrc".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 204: Compile class "uvm_pkg::uvm_blocking_master_port".

[INFO :CP0302] uvm-1.2/src/base/uvm_callback.svh, line 87: Compile class "uvm_pkg::uvm_callbacks_base".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 119: Compile class "uvm_pkg::uvm_blocking_peek_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 225: Compile class "uvm_pkg::uvm_blocking_slave_port".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 82: Compile class "uvm_pkg::uvm_blocking_put_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 299: Compile class "uvm_pkg::uvm_blocking_transport_imp".

[INFO :CP0302] amiq_svaunit_ex_simple_pkg.sv, line 4708: Compile class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_suite".

[INFO :CP0302] uvm-1.2/src/base/uvm_common_phases.svh, line 351: Compile class "uvm_pkg::uvm_check_phase".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 266: Compile class "uvm_pkg::uvm_blocking_slave_imp".

[INFO :CP0302] uvm-1.2/src/base/uvm_bottomup_phase.svh, line 36: Compile class "uvm_pkg::uvm_bottomup_phase".

[INFO :CP0302] uvm-1.2/src/comps/uvm_policies.svh, line 134: Compile class "uvm_pkg::uvm_class_clone".

[INFO :CP0302] ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 245: Compile class "svaunit_pkg::svaunit_base_sequence".

[INFO :CP0302] uvm-1.2/src/comps/uvm_policies.svh, line 93: Compile class "uvm_pkg::uvm_class_comp".

[INFO :CP0302] uvm-1.2/src/base/uvm_traversal.svh, line 147: Compile class "uvm_pkg::uvm_bottom_up_visitor_adapter".

[INFO :CP0302] uvm-1.2/src/comps/uvm_policies.svh, line 113: Compile class "uvm_pkg::uvm_class_converter".

[INFO :CP0302] uvm-1.2/src/base/uvm_callback.svh, line 1140: Compile class "uvm_pkg::uvm_callback".

[INFO :CP0302] uvm-1.2/src/comps/uvm_pair.svh, line 37: Compile class "uvm_pkg::uvm_class_pair".

[INFO :CP0302] uvm-1.2/src/comps/uvm_policies.svh, line 74: Compile class "uvm_pkg::uvm_built_in_clone".

[INFO :CP0302] uvm-1.2/src/comps/uvm_policies.svh, line 41: Compile class "uvm_pkg::uvm_built_in_comp".

[INFO :CP0302] uvm-1.2/src/base/uvm_callback.svh, line 1037: Compile class "uvm_pkg::uvm_callback_iter".

[INFO :CP0302] uvm-1.2/src/comps/uvm_pair.svh, line 116: Compile class "uvm_pkg::uvm_built_in_pair".

[INFO :CP0302] uvm-1.2/src/base/uvm_links.svh, line 221: Compile class "uvm_pkg::uvm_cause_effect_link".

[INFO :CP0302] uvm-1.2/src/base/uvm_comparer.svh, line 34: Compile class "uvm_pkg::uvm_comparer".

[INFO :CP0302] uvm-1.2/src/base/uvm_callback.svh, line 470: Compile class "uvm_pkg::uvm_callbacks".

[INFO :CP0302] uvm-1.2/src/base/uvm_cmdline_processor.svh, line 25: Compile class "uvm_pkg::uvm_cmd_line_verb".

[INFO :CP0302] uvm-1.2/src/base/uvm_cmdline_processor.svh, line 48: Compile class "uvm_pkg::uvm_cmdline_processor".

[INFO :CP0302] ../../../UVM/svaunit/sv/svaunit_vpi_wrapper.svh, line 23: Compile class "svaunit_pkg::svaunit_vpi_wrapper".

[INFO :CP0302] uvm-1.2/src/base/uvm_component.svh, line 2975: Compile class "uvm_pkg::uvm_config_object_wrapper".

[INFO :CP0302] uvm-1.2/src/base/uvm_component.svh, line 60: Compile class "uvm_pkg::uvm_component".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 248: Compile class "uvm_pkg::uvm_configure_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_coreservice.svh, line 50: Compile class "uvm_pkg::uvm_coreservice_t".

[INFO :CP0302] uvm-1.2/src/base/uvm_factory.svh, line 330: Compile class "uvm_pkg::uvm_default_factory".

[INFO :CP0302] uvm-1.2/src/base/uvm_config_db.svh, line 65: Compile class "uvm_pkg::uvm_config_db".

[INFO :CP0302] uvm-1.2/src/base/uvm_domain.svh, line 65: Compile class "uvm_pkg::uvm_domain".

[INFO :CP0302] uvm-1.2/src/comps/uvm_driver.svh, line 44: Compile class "uvm_pkg::uvm_driver".

[INFO :CP0302] uvm-1.2/src/base/uvm_common_phases.svh, line 151: Compile class "uvm_pkg::uvm_end_of_elaboration_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_event_callback.svh, line 40: Compile class "uvm_pkg::uvm_event_callback".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequence_builtin.svh, line 161: Compile class "uvm_pkg::uvm_exhaustive_sequence".

[INFO :CP0302] uvm-1.2/src/comps/uvm_env.svh, line 33: Compile class "uvm_pkg::uvm_env".

[INFO :CP0302] uvm-1.2/src/base/uvm_event.svh, line 254: Compile class "uvm_pkg::uvm_event".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_server.svh, line 244: Compile class "uvm_pkg::uvm_default_report_server".

[INFO :CP0302] uvm-1.2/src/base/uvm_common_phases.svh, line 431: Compile class "uvm_pkg::uvm_final_phase".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 147: Compile class "uvm_pkg::uvm_get_peek_export".

[INFO :CP0302] uvm-1.2/src/base/uvm_factory.svh, line 75: Compile class "uvm_pkg::uvm_factory".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 112: Compile class "uvm_pkg::uvm_get_port".

[INFO :CP0302] uvm-1.2/src/base/uvm_heartbeat.svh, line 53: Compile class "uvm_pkg::uvm_heartbeat".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 113: Compile class "uvm_pkg::uvm_get_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 148: Compile class "uvm_pkg::uvm_get_peek_port".

[INFO :CP0302] uvm-1.2/src/base/uvm_traversal.svh, line 243: Compile class "uvm_pkg::uvm_component_name_check_visitor".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_mem_access_seq.svh, line 195: Compile class "uvm_pkg::uvm_mem_access_seq".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_model.svh, line 347: Compile class "uvm_pkg::uvm_hdl_path_concat".

[INFO :CP0302] uvm-1.2/src/base/uvm_heartbeat.svh, line 290: Compile class "uvm_pkg::uvm_heartbeat_callback".

[INFO :CP0302] uvm-1.2/src/base/uvm_traversal.svh, line 214: Compile class "uvm_pkg::uvm_component_proxy".

[INFO :CP0302] uvm-1.2/src/comps/uvm_in_order_comparator.svh, line 212: Compile class "uvm_pkg::uvm_in_order_built_in_comparator".

[INFO :CP0302] uvm-1.2/src/base/uvm_registry.svh, line 49: Compile class "uvm_pkg::uvm_component_registry".

[INFO :CP0302] uvm-1.2/src/comps/uvm_in_order_comparator.svh, line 241: Compile class "uvm_pkg::uvm_in_order_class_comparator".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_mem_walk_seq.svh, line 60: Compile class "uvm_pkg::uvm_mem_single_walk_seq".

[INFO :CP0302] uvm-1.2/src/comps/uvm_in_order_comparator.svh, line 72: Compile class "uvm_pkg::uvm_in_order_comparator".

[INFO :CP0302] uvm-1.2/src/base/uvm_config_db.svh, line 360: Compile class "uvm_pkg::uvm_config_db_options".

[INFO :CP0302] uvm-1.2/src/base/uvm_printer.svh, line 390: Compile class "uvm_pkg::uvm_line_printer".

[INFO :CP0302] uvm-1.2/src/base/uvm_links.svh, line 59: Compile class "uvm_pkg::uvm_link_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_common_phases.svh, line 109: Compile class "uvm_pkg::uvm_connect_phase".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 218: Compile class "uvm_pkg::uvm_master_port".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 372: Compile class "uvm_pkg::uvm_main_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_coreservice.svh, line 123: Compile class "uvm_pkg::uvm_default_coreservice_t".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 141: Compile class "uvm_pkg::uvm_nonblocking_get_peek_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 255: Compile class "uvm_pkg::uvm_master_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 106: Compile class "uvm_pkg::uvm_nonblocking_get_port".

[INFO :CP0302] uvm-1.2/src/reg/uvm_mem_mam.svh, line 562: Compile class "uvm_pkg::uvm_mem_mam_cfg".

[INFO :CP0302] uvm-1.2/src/base/uvm_callback.svh, line 966: Compile class "uvm_pkg::uvm_derived_callbacks".

[INFO :CP0302] uvm-1.2/src/reg/uvm_mem_mam.svh, line 520: Compile class "uvm_pkg::uvm_mem_mam_policy".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 123: Compile class "uvm_pkg::uvm_nonblocking_peek_export".

[INFO :CP0302] uvm-1.2/src/reg/uvm_mem_mam.svh, line 64: Compile class "uvm_pkg::uvm_mem_mam".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_mem_shared_access_seq.svh, line 205: Compile class "uvm_pkg::uvm_mem_shared_access_seq".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 87: Compile class "uvm_pkg::uvm_nonblocking_put_export".

[INFO :CP0302] uvm-1.2/src/base/uvm_globals.svh, line 499: Compile class "uvm_pkg::uvm_enum_wrapper".

[INFO :CP0302] uvm-1.2/src/reg/uvm_mem_mam.svh, line 276: Compile class "uvm_pkg::uvm_mem_region".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 277: Compile class "uvm_pkg::uvm_nonblocking_slave_imp".

[INFO :CP0302] uvm-1.2/src/base/uvm_event.svh, line 34: Compile class "uvm_pkg::uvm_event_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_registry.svh, line 187: Compile class "uvm_pkg::uvm_object_registry".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_mem_access_seq.svh, line 50: Compile class "uvm_pkg::uvm_mem_single_access_seq".

[INFO :CP0302] uvm-1.2/src/comps/uvm_monitor.svh, line 34: Compile class "uvm_pkg::uvm_monitor".

[INFO :CP0302] uvm-1.2/src/base/uvm_common_phases.svh, line 313: Compile class "uvm_pkg::uvm_extract_phase".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 105: Compile class "uvm_pkg::uvm_nonblocking_get_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 129: Compile class "uvm_pkg::uvm_peek_export".

[INFO :CP0302] uvm-1.2/src/base/uvm_factory.svh, line 853: Compile class "uvm_pkg::uvm_factory_override".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 107: Compile class "uvm_pkg::uvm_nonblocking_get_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 131: Compile class "uvm_pkg::uvm_peek_imp".

[INFO :CP0302] uvm-1.2/src/base/uvm_factory.svh, line 32: Compile class "uvm_pkg::uvm_factory_queue_class".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 142: Compile class "uvm_pkg::uvm_nonblocking_get_peek_port".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 111: Compile class "uvm_pkg::uvm_get_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 130: Compile class "uvm_pkg::uvm_peek_port".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 244: Compile class "uvm_pkg::uvm_nonblocking_master_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 211: Compile class "uvm_pkg::uvm_nonblocking_master_port".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 149: Compile class "uvm_pkg::uvm_get_peek_imp".

[INFO :CP0302] uvm-1.2/src/base/uvm_phase.svh, line 731: Compile class "uvm_pkg::uvm_phase_cb".

[INFO :CP0302] uvm-1.2/src/base/uvm_phase.svh, line 675: Compile class "uvm_pkg::uvm_phase_state_change".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 124: Compile class "uvm_pkg::uvm_nonblocking_peek_port".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 89: Compile class "uvm_pkg::uvm_nonblocking_put_imp".

[INFO :CP0302] uvm-1.2/src/dap/uvm_get_to_lock_dap.svh, line 35: Compile class "uvm_pkg::uvm_get_to_lock_dap".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 229: Compile class "uvm_pkg::uvm_nonblocking_slave_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 232: Compile class "uvm_pkg::uvm_nonblocking_slave_port".

[INFO :CP0302] uvm-1.2/src/base/uvm_port_base.svh, line 196: Compile class "uvm_pkg::uvm_port_base".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 305: Compile class "uvm_pkg::uvm_nonblocking_transport_imp".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource_specializations.svh, line 114: Compile class "uvm_pkg::uvm_obj_rsrc".

[INFO :CP0302] uvm-1.2/src/base/uvm_object.svh, line 46: Compile class "uvm_pkg::uvm_object".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource_specializations.svh, line 52: Compile class "uvm_pkg::uvm_int_rsrc".

[INFO :CP0302] uvm-1.2/src/base/uvm_factory.svh, line 810: Compile class "uvm_pkg::uvm_object_wrapper".

[INFO :CP0302] uvm-1.2/src/macros/uvm_callback_defines.svh, line 59: Compile class "uvm_pkg::uvm_objection".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 215: Compile class "uvm_pkg::uvm_master_export".

[INFO :CP0302] uvm-1.2/src/base/uvm_objection.svh, line 32: Compile class "uvm_pkg::uvm_objection_events".

[INFO :CP0302] uvm-1.2/src/reg/uvm_mem.svh, line 40: Compile class "uvm_pkg::uvm_mem".

[INFO :CP0302] uvm-1.2/src/base/uvm_packer.svh, line 40: Compile class "uvm_pkg::uvm_packer".

[INFO :CP0302] uvm-1.2/src/base/uvm_pool.svh, line 35: Compile class "uvm_pkg::uvm_pool".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_access_seq.svh, line 193: Compile class "uvm_pkg::uvm_reg_access_seq".

[INFO :CP0302] uvm-1.2/src/base/uvm_port_base.svh, line 109: Compile class "uvm_pkg::uvm_port_component".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_adapter.svh, line 39: Compile class "uvm_pkg::uvm_reg_adapter".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_mem_walk_seq.svh, line 197: Compile class "uvm_pkg::uvm_mem_walk_seq".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_backdoor.svh, line 37: Compile class "uvm_pkg::uvm_reg_backdoor".

[INFO :CP0302] uvm-1.2/src/base/uvm_port_base.svh, line 51: Compile class "uvm_pkg::uvm_port_component_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 290: Compile class "uvm_pkg::uvm_post_configure_phase".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 143: Compile class "uvm_pkg::uvm_nonblocking_get_peek_imp".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 163: Compile class "uvm_pkg::uvm_post_reset_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 206: Compile class "uvm_pkg::uvm_pre_configure_phase".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 208: Compile class "uvm_pkg::uvm_nonblocking_master_export".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_fifo.svh, line 35: Compile class "uvm_pkg::uvm_reg_fifo".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 74: Compile class "uvm_pkg::uvm_pre_reset_phase".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 125: Compile class "uvm_pkg::uvm_nonblocking_peek_imp".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_predictor.svh, line 34: Compile class "uvm_pkg::uvm_predict_s".

[INFO :CP0302] uvm-1.2/src/base/uvm_printer.svh, line 74: Compile class "uvm_pkg::uvm_printer".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 88: Compile class "uvm_pkg::uvm_nonblocking_put_port".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_bit_bash_seq.svh, line 203: Compile class "uvm_pkg::uvm_reg_bit_bash_seq".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 249: Compile class "uvm_pkg::uvm_nonblocking_transport_export".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_indirect.svh, line 39: Compile class "uvm_pkg::uvm_reg_indirect_data".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 252: Compile class "uvm_pkg::uvm_nonblocking_transport_port".

[INFO :CP0302] uvm-1.2/src/comps/uvm_push_driver.svh, line 39: Compile class "uvm_pkg::uvm_push_driver".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_file.svh, line 34: Compile class "uvm_pkg::uvm_reg_file".

[INFO :CP0302] uvm-1.2/src/base/uvm_pool.svh, line 247: Compile class "uvm_pkg::uvm_object_string_pool".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 93: Compile class "uvm_pkg::uvm_put_export".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_sequence.svh, line 518: Compile class "uvm_pkg::uvm_reg_frontdoor".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 94: Compile class "uvm_pkg::uvm_put_port".

[INFO :CP0302] uvm-1.2/src/base/uvm_objection.svh, line 1418: Compile class "uvm_pkg::uvm_objection_callback".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_hw_reset_seq.svh, line 48: Compile class "uvm_pkg::uvm_reg_hw_reset_seq".

[INFO :CP0302] uvm-1.2/src/base/uvm_objection.svh, line 1368: Compile class "uvm_pkg::uvm_objection_context_object".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequence_builtin.svh, line 48: Compile class "uvm_pkg::uvm_random_sequence".

[INFO :CP0302] uvm-1.2/src/base/uvm_links.svh, line 141: Compile class "uvm_pkg::uvm_parent_child_link".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_predictor.svh, line 54: Compile class "uvm_pkg::uvm_reg_predictor".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_map.svh, line 23: Compile class "uvm_pkg::uvm_reg_map_info".

[INFO :CP0302] uvm-1.2/src/base/uvm_recorder.svh, line 43: Compile class "uvm_pkg::uvm_recorder".

[INFO :CP0302] uvm-1.2/src/base/uvm_phase.svh, line 134: Compile class "uvm_pkg::uvm_phase".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_mem_shared_access_seq.svh, line 57: Compile class "uvm_pkg::uvm_reg_shared_access_seq".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_access_seq.svh, line 318: Compile class "uvm_pkg::uvm_reg_mem_access_seq".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_cbs.svh, line 44: Compile class "uvm_pkg::uvm_reg_cbs".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 411: Compile class "uvm_pkg::uvm_post_main_phase".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_map.svh, line 38: Compile class "uvm_pkg::uvm_reg_transaction_order_policy".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_cbs.svh, line 455: Compile class "uvm_pkg::uvm_reg_write_only_cbs".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_field.svh, line 39: Compile class "uvm_pkg::uvm_reg_field".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 535: Compile class "uvm_pkg::uvm_post_shutdown_phase".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_mem_built_in_seq.svh, line 31: Compile class "uvm_pkg::uvm_reg_mem_built_in_seq".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 329: Compile class "uvm_pkg::uvm_pre_main_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 450: Compile class "uvm_pkg::uvm_pre_shutdown_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_catcher.svh, line 107: Compile class "uvm_pkg::uvm_report_catcher".

[INFO :CP0302] uvm-1.2/src/base/uvm_printer.svh, line 416: Compile class "uvm_pkg::uvm_printer_knobs".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_cbs.svh, line 369: Compile class "uvm_pkg::uvm_reg_read_only_cbs".

[INFO :CP0302] uvm-1.2/src/seq/uvm_push_sequencer.svh, line 29: Compile class "uvm_pkg::uvm_push_sequencer".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_item.svh, line 41: Compile class "uvm_pkg::uvm_reg_item".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 95: Compile class "uvm_pkg::uvm_put_imp".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_access_seq.svh, line 62: Compile class "uvm_pkg::uvm_reg_single_access_seq".

[INFO :CP0302] uvm-1.2/src/base/uvm_queue.svh, line 34: Compile class "uvm_pkg::uvm_queue".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_mem_hdl_paths_seq.svh, line 48: Compile class "uvm_pkg::uvm_reg_mem_hdl_paths_seq".

[INFO :CP0302] uvm-1.2/src/comps/uvm_random_stimulus.svh, line 45: Compile class "uvm_pkg::uvm_random_stimulus".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_adapter.svh, line 170: Compile class "uvm_pkg::uvm_reg_tlm_adapter".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 122: Compile class "uvm_pkg::uvm_reset_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource.svh, line 1369: Compile class "uvm_pkg::uvm_resource".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg.svh, line 37: Compile class "uvm_pkg::uvm_reg".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_handler.svh, line 53: Compile class "uvm_pkg::uvm_report_handler".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource.svh, line 158: Compile class "uvm_pkg::uvm_resource_options".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource.svh, line 658: Compile class "uvm_pkg::uvm_resource_pool".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_bit_bash_seq.svh, line 54: Compile class "uvm_pkg::uvm_reg_single_bit_bash_seq".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_block.svh, line 38: Compile class "uvm_pkg::uvm_reg_block".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_message.svh, line 38: Compile class "uvm_pkg::uvm_report_message_element_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_message.svh, line 284: Compile class "uvm_pkg::uvm_report_message_element_container".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequencer_param_base.svh, line 31: Compile class "uvm_pkg::uvm_sequencer_param_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_message.svh, line 108: Compile class "uvm_pkg::uvm_report_message_int_element".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_indirect.svh, line 283: Compile class "uvm_pkg::uvm_reg_indirect_ftdr_seq".

[INFO :CP0302] uvm-1.2/src/comps/uvm_scoreboard.svh, line 36: Compile class "uvm_pkg::uvm_scoreboard".

[INFO :CP0302] uvm-1.2/src/base/uvm_misc.svh, line 318: Compile class "uvm_pkg::uvm_seed_map".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_sqr_connections.svh, line 62: Compile class "uvm_pkg::uvm_seq_item_pull_export".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_message.svh, line 228: Compile class "uvm_pkg::uvm_report_message_object_element".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_map.svh, line 68: Compile class "uvm_pkg::uvm_reg_map".

[INFO :CP0302] uvm-1.2/src/dap/uvm_set_get_dap_base.svh, line 32: Compile class "uvm_pkg::uvm_set_get_dap_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_runtime_phases.svh, line 492: Compile class "uvm_pkg::uvm_shutdown_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_object.svh, line 79: Compile class "uvm_pkg::uvm_report_object".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_sqr_connections.svh, line 42: Compile class "uvm_pkg::uvm_seq_item_pull_port".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequence_builtin.svh, line 265: Compile class "uvm_pkg::uvm_simple_sequence".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequence_item.svh, line 37: Compile class "uvm_pkg::uvm_sequence_item".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 288: Compile class "uvm_pkg::uvm_slave_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_sqr_ifs.svh, line 36: Compile class "uvm_pkg::uvm_sqr_if_base".

[INFO :CP0302] uvm-1.2/src/reg/sequences/uvm_reg_mem_shared_access_seq.svh, line 353: Compile class "uvm_pkg::uvm_reg_mem_shared_access_seq".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource_db.svh, line 54: Compile class "uvm_pkg::uvm_resource_db".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource_specializations.svh, line 93: Compile class "uvm_pkg::uvm_string_rsrc".

[INFO :CP0302] uvm-1.2/src/base/uvm_traversal.svh, line 73: Compile class "uvm_pkg::uvm_structure_proxy".

[INFO :CP0302] uvm-1.2/src/comps/uvm_subscriber.svh, line 36: Compile class "uvm_pkg::uvm_subscriber".

[INFO :CP0302] uvm-1.2/src/dap/uvm_set_before_get_dap.svh, line 68: Compile class "uvm_pkg::uvm_set_before_get_dap".

[INFO :CP0302] uvm-1.2/src/reg/uvm_reg_sequence.svh, line 57: Compile class "uvm_pkg::uvm_reg_sequence".

[INFO :CP0302] uvm-1.2/src/comps/uvm_test.svh, line 62: Compile class "uvm_pkg::uvm_test".

[INFO :CP0302] uvm-1.2/src/base/uvm_objection.svh, line 1119: Compile class "uvm_pkg::uvm_test_done_objection".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_sqr_connections.svh, line 78: Compile class "uvm_pkg::uvm_seq_item_pull_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 236: Compile class "uvm_pkg::uvm_slave_export".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequence.svh, line 33: Compile class "uvm_pkg::uvm_sequence".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 239: Compile class "uvm_pkg::uvm_slave_port".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequence_library.svh, line 64: Compile class "uvm_pkg::uvm_sequence_library".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_tlm_fifos.svh, line 200: Compile class "uvm_pkg::uvm_tlm_analysis_fifo".

[INFO :CP0302] uvm-1.2/src/base/uvm_spell_chkr.svh, line 28: Compile class "uvm_pkg::uvm_spell_chkr".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets_base.svh, line 66: Compile class "uvm_pkg::uvm_tlm_b_initiator_socket_base".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets.svh, line 308: Compile class "uvm_pkg::uvm_tlm_b_passthrough_target_socket".

[INFO :CP0302] uvm-1.2/src/base/uvm_links.svh, line 300: Compile class "uvm_pkg::uvm_related_link".

[INFO :CP0302] uvm-1.2/src/macros/uvm_object_defines.svh, line 245: Compile class "uvm_pkg::uvm_sequence_library_cfg".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets_base.svh, line 47: Compile class "uvm_pkg::uvm_tlm_b_target_socket_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_recorder.svh, line 728: Compile class "uvm_pkg::uvm_text_recorder".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_imps.svh, line 135: Compile class "uvm_pkg::uvm_tlm_b_transport_imp".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_message.svh, line 475: Compile class "uvm_pkg::uvm_report_message".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequencer_base.svh, line 27: Compile class "uvm_pkg::uvm_sequence_process_wrapper".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_generic_payload.svh, line 948: Compile class "uvm_pkg::uvm_tlm_extension_base".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequencer_base.svh, line 1765: Compile class "uvm_pkg::uvm_sequence_request".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_tlm_fifos.svh, line 46: Compile class "uvm_pkg::uvm_tlm_fifo".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequencer.svh, line 30: Compile class "uvm_pkg::uvm_sequencer".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequencer_analysis_fifo.svh, line 23: Compile class "uvm_pkg::uvm_sequencer_analysis_fifo".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets.svh, line 155: Compile class "uvm_pkg::uvm_tlm_nb_initiator_socket".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequencer_base.svh, line 41: Compile class "uvm_pkg::uvm_sequencer_base".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_generic_payload.svh, line 103: Compile class "uvm_pkg::uvm_tlm_generic_payload".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets.svh, line 395: Compile class "uvm_pkg::uvm_tlm_nb_passthrough_target_socket".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets.svh, line 223: Compile class "uvm_pkg::uvm_tlm_nb_target_socket".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_ports.svh, line 67: Compile class "uvm_pkg::uvm_tlm_nb_transport_bw_port".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_ports.svh, line 51: Compile class "uvm_pkg::uvm_tlm_nb_transport_fw_port".

[INFO :CP0302] uvm-1.2/src/dap/uvm_simple_lock_dap.svh, line 35: Compile class "uvm_pkg::uvm_simple_lock_dap".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_tlm_req_rsp.svh, line 304: Compile class "uvm_pkg::uvm_tlm_transport_channel".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_message.svh, line 174: Compile class "uvm_pkg::uvm_report_message_string_element".

[INFO :CP0302] uvm-1.2/src/base/uvm_traversal.svh, line 115: Compile class "uvm_pkg::uvm_top_down_visitor_adapter".

[INFO :CP0302] uvm-1.2/src/base/uvm_common_phases.svh, line 390: Compile class "uvm_pkg::uvm_report_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_topdown_phase.svh, line 35: Compile class "uvm_pkg::uvm_topdown_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_common_phases.svh, line 198: Compile class "uvm_pkg::uvm_start_of_simulation_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_report_server.svh, line 46: Compile class "uvm_pkg::uvm_report_server".

[INFO :CP0302] uvm-1.2/src/base/uvm_misc.svh, line 206: Compile class "uvm_pkg::uvm_status_container".

[INFO :CP0302] uvm-1.2/src/base/uvm_tr_stream.svh, line 54: Compile class "uvm_pkg::uvm_tr_stream".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource.svh, line 199: Compile class "uvm_pkg::uvm_resource_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_printer.svh, line 309: Compile class "uvm_pkg::uvm_table_printer".

[INFO :CP0302] uvm-1.2/src/base/uvm_task_phase.svh, line 58: Compile class "uvm_pkg::uvm_task_phase".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource_db.svh, line 350: Compile class "uvm_pkg::uvm_resource_db_options".

[INFO :CP0302] uvm-1.2/src/base/uvm_tr_database.svh, line 295: Compile class "uvm_pkg::uvm_text_tr_database".

[INFO :CP0302] uvm-1.2/src/base/uvm_traversal.svh, line 30: Compile class "uvm_pkg::uvm_visitor".

[INFO :CP0302] uvm-1.2/src/base/uvm_resource.svh, line 111: Compile class "uvm_pkg::uvm_resource_types".

[INFO :CP0302] amiq_svaunit_ex_simple_pkg.sv, line 2644: Compile class "work@amiq_svaunit_ex_simple_test_head_sequence".

[INFO :CP0302] uvm-1.2/src/base/uvm_misc.svh, line 39: Compile class "uvm_pkg::uvm_void".

[INFO :CP0302] uvm-1.2/src/base/uvm_root.svh, line 71: Compile class "uvm_pkg::uvm_root".

[INFO :CP0302] uvm-1.2/src/reg/uvm_vreg.svh, line 57: Compile class "uvm_pkg::uvm_vreg".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets.svh, line 271: Compile class "uvm_pkg::uvm_tlm_b_passthrough_initiator_socket".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets_base.svh, line 188: Compile class "uvm_pkg::uvm_tlm_b_passthrough_target_socket_base".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_exports.svh, line 33: Compile class "uvm_pkg::uvm_tlm_b_transport_export".

[INFO :CP0302] uvm-1.2/src/base/uvm_common_phases.svh, line 267: Compile class "uvm_pkg::uvm_run_phase".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_ports.svh, line 34: Compile class "uvm_pkg::uvm_tlm_b_transport_port".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_ifs.svh, line 79: Compile class "uvm_pkg::uvm_tlm_if".

[INFO :CP0302] uvm-1.2/src/base/uvm_misc.svh, line 63: Compile class "uvm_pkg::uvm_scope_stack".

[INFO :CP0302] uvm-1.2/src/reg/uvm_vreg_field.svh, line 379: Compile class "uvm_pkg::uvm_vreg_field_cbs".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_tlm_ifs.svh, line 46: Compile class "uvm_pkg::uvm_tlm_if_base".

[INFO :CP0302] amiq_svaunit_ex_simple_pkg.sv, line 2487: Compile class "work@amiq_svaunit_ex_simple_test_sequence".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets_base.svh, line 101: Compile class "uvm_pkg::uvm_tlm_nb_initiator_socket_base".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets.svh, line 345: Compile class "uvm_pkg::uvm_tlm_nb_passthrough_initiator_socket".

[INFO :CP0302] uvm-1.2/src/seq/uvm_sequence_base.svh, line 134: Compile class "uvm_pkg::uvm_sequence_base".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets_base.svh, line 149: Compile class "uvm_pkg::uvm_tlm_nb_passthrough_target_socket_base".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_exports.svh, line 59: Compile class "uvm_pkg::uvm_tlm_nb_transport_bw_export".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_exports.svh, line 46: Compile class "uvm_pkg::uvm_tlm_nb_transport_fw_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_tlm_req_rsp.svh, line 46: Compile class "uvm_pkg::uvm_tlm_req_rsp_channel".

[INFO :CP0302] uvm-1.2/src/base/uvm_transaction.svh, line 124: Compile class "uvm_pkg::uvm_transaction".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_exports.svh, line 255: Compile class "uvm_pkg::uvm_transport_export".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_imps.svh, line 311: Compile class "uvm_pkg::uvm_transport_imp".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_ports.svh, line 258: Compile class "uvm_pkg::uvm_transport_port".

[INFO :CP0302] uvm-1.2/src/base/uvm_printer.svh, line 358: Compile class "uvm_pkg::uvm_tree_printer".

[INFO :CP0302] uvm-1.2/src/base/uvm_tr_stream.svh, line 510: Compile class "uvm_pkg::uvm_text_tr_stream".

[INFO :CP0302] uvm-1.2/src/base/uvm_callback.svh, line 61: Compile class "uvm_pkg::uvm_typeid".

[INFO :CP0302] uvm-1.2/src/base/uvm_callback.svh, line 47: Compile class "uvm_pkg::uvm_typeid_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_misc.svh, line 635: Compile class "uvm_pkg::uvm_utils".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets.svh, line 56: Compile class "uvm_pkg::uvm_tlm_b_initiator_socket".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets_base.svh, line 174: Compile class "uvm_pkg::uvm_tlm_b_passthrough_initiator_socket_base".

[INFO :CP0302] uvm-1.2/src/base/uvm_traversal.svh, line 92: Compile class "uvm_pkg::uvm_visitor_adapter".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets.svh, line 104: Compile class "uvm_pkg::uvm_tlm_b_target_socket".

[INFO :CP0302] uvm-1.2/src/reg/uvm_vreg.svh, line 618: Compile class "uvm_pkg::uvm_vreg_cbs".

[INFO :CP0302] uvm-1.2/src/reg/uvm_vreg_field.svh, line 49: Compile class "uvm_pkg::uvm_vreg_field".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_tlm_fifo_base.svh, line 24: Compile class "uvm_pkg::uvm_tlm_event".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_generic_payload.svh, line 1013: Compile class "uvm_pkg::uvm_tlm_extension".

[INFO :CP0302] uvm-1.2/src/tlm1/uvm_tlm_fifo_base.svh, line 46: Compile class "uvm_pkg::uvm_tlm_fifo_base".

[INFO :CP0302] amiq_svaunit_ex_simple_pkg.sv, line 3126: Compile class "work@amiq_svaunit_ex_simple_test_suite".

[INFO :CP0302] amiq_svaunit_ex_simple_pkg.sv, line 2830: Compile class "work@amiq_svaunit_ex_simple_test_unit".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets_base.svh, line 124: Compile class "uvm_pkg::uvm_tlm_nb_passthrough_initiator_socket_base".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_sockets_base.svh, line 79: Compile class "uvm_pkg::uvm_tlm_nb_target_socket_base".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_imps.svh, line 197: Compile class "uvm_pkg::uvm_tlm_nb_transport_bw_imp".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_imps.svh, line 181: Compile class "uvm_pkg::uvm_tlm_nb_transport_fw_imp".

[INFO :CP0302] uvm-1.2/src/tlm2/uvm_tlm2_time.svh, line 31: Compile class "uvm_pkg::uvm_tlm_time".

[INFO :CP0302] uvm-1.2/src/base/uvm_tr_database.svh, line 52: Compile class "uvm_pkg::uvm_tr_database".

[INFO :CP0302] uvm-1.2/src/base/uvm_callback.svh, line 175: Compile class "uvm_pkg::uvm_typed_callbacks".

[INFO :CP0304] amiq_apb_if.sv, line 34: Compile interface "work@amiq_apb_if".

[INFO :CP0304] an_interface.sv, line 27: Compile interface "work@an_interface".

[INFO :CP0304] another_interface.sv, line 23: Compile interface "work@another_interface".

[INFO :CP0303] apb_top.sv, line 28: Compile module "work@apb_top".

[INFO :CP0304] ../../../UVM/svaunit/sv/svaunit_vpi_interface.sv, line 23: Compile interface "work@svaunit_vpi_interface".

[INFO :CP0303] testbench.sv, line 28: Compile module "work@top".

[NOTE :CP0309] amiq_apb_if.sv, line 34: Implicit port type (wire) for "clk",
               there are 5 more instances of this message.

[NOTE :CP0309] an_interface.sv, line 27: Implicit port type (wire) for "clk",
               there are 3 more instances of this message.

[NOTE :CP0309] another_interface.sv, line 23: Implicit port type (wire) for "clk",
               there are 5 more instances of this message.

[ERROR:CP0316] apb_top.sv, line 35: Undefined package "amiq_svaunit_ex_apb_test_pkg".

[INFO :EL0526] Design Elaboration...

[NOTE :EL0503] testbench.sv, line 28: Top level module "work@top".

[NOTE :EL0503] apb_top.sv, line 28: Top level module "work@apb_top".

[WARNI:CP0319] amiq_svaunit_ex_simple_pkg.sv, line 4339: Multiply defined class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_head_sequence",
               amiq_svaunit_ex_simple_test_head_sequence.sv, line 24: previous definition.

[WARNI:CP0319] amiq_svaunit_ex_simple_pkg.sv, line 4181: Multiply defined class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_sequence",
               amiq_svaunit_ex_simple_test_sequence.sv, line 24: previous definition.

[NOTE :EL0504] Multiple top level modules in design.

[WARNI:CP0319] amiq_svaunit_ex_simple_pkg.sv, line 4708: Multiply defined class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_suite",
               ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 330: previous definition.

[WARNI:CP0319] amiq_svaunit_ex_simple_pkg.sv, line 4526: Multiply defined class "amiq_svaunit_ex_simple_pkg::amiq_svaunit_ex_simple_test_unit",
               ../../../UVM/uvm-1.2/src/uvm_pkg.sv, line 330: previous definition.

[ERROR:CP0328] amiq_svaunit_ex_simple_pkg.sv, line 2644: Unknown base class "svaunit_base_sequence" extended by "work@amiq_svaunit_ex_simple_test_head_sequence".

[ERROR:CP0328] amiq_svaunit_ex_simple_pkg.sv, line 2487: Unknown base class "svaunit_base_sequence" extended by "work@amiq_svaunit_ex_simple_test_sequence".

[ERROR:CP0328] amiq_svaunit_ex_simple_pkg.sv, line 3126: Unknown base class "svaunit_test_suite" extended by "work@amiq_svaunit_ex_simple_test_suite".

[ERROR:CP0328] amiq_svaunit_ex_simple_pkg.sv, line 2830: Unknown base class "svaunit_test" extended by "work@amiq_svaunit_ex_simple_test_unit".

[ERROR:EL0528] apb_top.sv, line 35: Undefined imported package: "amiq_svaunit_ex_apb_test_pkg".

[NOTE :EL0508] Nb Top level modules: 2.

[NOTE :EL0509] Max instance depth: 1.

[NOTE :EL0510] Nb instances: 2.

[NOTE :EL0511] Nb leaf instances: 0.

[  FATAL] : 0
[  ERROR] : 7
[WARNING] : 18
[   NOTE] : 12

********************************************
*   End SURELOG SVerilog Compiler/Linter   *
********************************************


=================================================================
==32741==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 1520 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25250127 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:156
    #2 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #3 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #4 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #5 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #6 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #7 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #8 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #9 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Direct leak of 1472 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2538a7ec in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:272
    #2 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #3 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #4 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #5 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Direct leak of 600 byte(s) in 15 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #6 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #7 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #8 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #9 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #10 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #11 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #12 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Direct leak of 320 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #6 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #7 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #8 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #9 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #10 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #11 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Direct leak of 80 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #7 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #8 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #9 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #10 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #11 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #12 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Direct leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2539165a in SURELOG::Compiler::parseLibrariesDef_() SourceCompile/Compiler.cpp:740
    #2 0x55cf2538db25 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:579
    #3 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #4 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #5 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #4 0x55cf2521b9ed in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:680
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #4 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #5 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #6 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #7 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #8 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #9 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #10 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #11 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #8 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #9 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #10 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #11 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Direct leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2521c3ff in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:703
    #2 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #3 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #4 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #5 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #6 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #7 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #8 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #9 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #10 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #11 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Direct leak of 1 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf252175c3 in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:407
    #2 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #3 0x55cf2520d460 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:54
    #4 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #5 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #6 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #7 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #8 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #9 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #10 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Direct leak of 1 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2521609b in SURELOG::DesignElaboration::createBuiltinPrimitives_() DesignCompile/DesignElaboration.cpp:339
    #2 0x55cf2520d437 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:51
    #3 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #4 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #5 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #6 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #7 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #8 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #9 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 25559424 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251182a9 in __gnu_cxx::new_allocator<SURELOG::VObject>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25117667 in std::allocator_traits<std::allocator<SURELOG::VObject> >::allocate(std::allocator<SURELOG::VObject>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25115a51 in std::__cxx1998::_Vector_base<SURELOG::VObject, std::allocator<SURELOG::VObject> >::_M_allocate(unsigned long) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xebea51)
    #4 0x55cf251129e2 in void std::__cxx1998::vector<SURELOG::VObject, std::allocator<SURELOG::VObject> >::_M_realloc_insert<SURELOG::VObject const&>(__gnu_cxx::__normal_iterator<SURELOG::VObject*, std::__cxx1998::vector<SURELOG::VObject, std::allocator<SURELOG::VObject> > >, SURELOG::VObject const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25110a9e in std::__cxx1998::vector<SURELOG::VObject, std::allocator<SURELOG::VObject> >::push_back(SURELOG::VObject const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2510f9c1 in std::__debug::vector<SURELOG::VObject, std::allocator<SURELOG::VObject> >::push_back(SURELOG::VObject const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25109b8a in SURELOG::ParseCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/ParseCache.cpp:132
    #8 0x55cf2510a91f in SURELOG::ParseCache::restore() Cache/ParseCache.cpp:184
    #9 0x55cf253b613c in SURELOG::ParseFile::parse() SourceCompile/ParseFile.cpp:302
    #10 0x55cf25377332 in SURELOG::CompileSourceFile::parse_() SourceCompile/CompileSourceFile.cpp:186
    #11 0x55cf25375aef in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:96
    #12 0x55cf2538c86b in operator() SourceCompile/Compiler.cpp:531
    #13 0x55cf25391e62 in __invoke_impl<void, SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #14 0x55cf25391859 in __invoke<SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #15 0x55cf253921d3 in _M_invoke<0> /usr/include/c++/7/thread:234
    #16 0x55cf25392159 in operator() /usr/include/c++/7/thread:243
    #17 0x55cf253920bd in _M_run /usr/include/c++/7/thread:186
    #18 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 12115968 byte(s) in 18 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251182a9 in __gnu_cxx::new_allocator<SURELOG::VObject>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25117667 in std::allocator_traits<std::allocator<SURELOG::VObject> >::allocate(std::allocator<SURELOG::VObject>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25115a51 in std::__cxx1998::_Vector_base<SURELOG::VObject, std::allocator<SURELOG::VObject> >::_M_allocate(unsigned long) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xebea51)
    #4 0x55cf251129e2 in void std::__cxx1998::vector<SURELOG::VObject, std::allocator<SURELOG::VObject> >::_M_realloc_insert<SURELOG::VObject const&>(__gnu_cxx::__normal_iterator<SURELOG::VObject*, std::__cxx1998::vector<SURELOG::VObject, std::allocator<SURELOG::VObject> > >, SURELOG::VObject const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25110a9e in std::__cxx1998::vector<SURELOG::VObject, std::allocator<SURELOG::VObject> >::push_back(SURELOG::VObject const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2510f9c1 in std::__debug::vector<SURELOG::VObject, std::allocator<SURELOG::VObject> >::push_back(SURELOG::VObject const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25109b8a in SURELOG::ParseCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/ParseCache.cpp:132
    #8 0x55cf2510a91f in SURELOG::ParseCache::restore() Cache/ParseCache.cpp:184
    #9 0x55cf253b63fc in SURELOG::ParseFile::parse() SourceCompile/ParseFile.cpp:317
    #10 0x55cf25377332 in SURELOG::CompileSourceFile::parse_() SourceCompile/CompileSourceFile.cpp:186
    #11 0x55cf25375aef in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:96
    #12 0x55cf2538c86b in operator() SourceCompile/Compiler.cpp:531
    #13 0x55cf25391e62 in __invoke_impl<void, SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #14 0x55cf25391859 in __invoke<SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #15 0x55cf253921d3 in _M_invoke<0> /usr/include/c++/7/thread:234
    #16 0x55cf25392159 in operator() /usr/include/c++/7/thread:243
    #17 0x55cf253920bd in _M_run /usr/include/c++/7/thread:186
    #18 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1326355 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24fc6167 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:317
    #5 0x55cf24fbcd3e in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:370
    #6 0x55cf24fb25c6 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:1203
    #7 0x55cf24fa774a in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:1150
    #8 0x55cf253c48eb in SURELOG::PreprocessFile::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) SourceCompile/PreprocessFile.cpp:351
    #9 0x55cf250df4da in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:130
    #10 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #11 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #12 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #13 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #14 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #15 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #16 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 579393 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24fc6167 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:317
    #5 0x55cf24fbcd3e in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:370
    #6 0x55cf24fb25c6 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:1203
    #7 0x55cf24fa774a in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:1150
    #8 0x55cf253c48eb in SURELOG::PreprocessFile::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) SourceCompile/PreprocessFile.cpp:351
    #9 0x55cf250df4da in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:130
    #10 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #11 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #12 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #13 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #14 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #15 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #16 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #17 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #18 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #19 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #20 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 405416 byte(s) in 2981 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25467ffa in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf254674df in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf254664e0 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25464f45 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25461823 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf254599f3 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf254512ff in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2544bc5f in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf25445b85 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf25440a7a in SURELOG::ClassDefinition::insertFunction(SURELOG::FunctionMethod&) Testbench/ClassDefinition.cpp:77
    #11 0x55cf251aaf3b in SURELOG::CompileClass::compile_class_method_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:447
    #12 0x55cf251a7865 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:165
    #13 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #14 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #15 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #16 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #17 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 403368 byte(s) in 343 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2524f02b in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:117
    #2 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #3 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #4 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #5 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #6 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #7 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #8 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #9 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 364560 byte(s) in 294 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25468cfb in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25467dc1 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf254671b8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2546628b in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf254647e5 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf2545efb3 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf25455e37 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2544e643 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf25449501 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2544326a in SURELOG::ClassDefinition::insertBaseClass(SURELOG::ClassDefinition&) Testbench/ClassDefinition.cpp:177
    #11 0x55cf251b0929 in SURELOG::CompileClass::compile_class_type_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:639
    #12 0x55cf251a78b8 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:168
    #13 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #14 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #15 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #16 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #17 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 140352 byte(s) in 1032 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25467f30 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2546746d in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf254663f6 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25464ec5 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf254614e1 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf254589db in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf2545052d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2544b317 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf25444d57 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf254403cf in SURELOG::ClassDefinition::insertProperty(SURELOG::Property&) Testbench/ClassDefinition.cpp:61
    #11 0x55cf251a8d38 in SURELOG::CompileClass::compile_class_property_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:265
    #12 0x55cf251a75e6 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:141
    #13 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #14 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #15 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #16 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #17 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 65664 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251181c0 in __gnu_cxx::new_allocator<SURELOG::DesignElement>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2511746f in std::allocator_traits<std::allocator<SURELOG::DesignElement> >::allocate(std::allocator<SURELOG::DesignElement>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251150b1 in std::__cxx1998::_Vector_base<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251122d2 in void std::__cxx1998::vector<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> >::_M_realloc_insert<SURELOG::DesignElement const&>(__gnu_cxx::__normal_iterator<SURELOG::DesignElement*, std::__cxx1998::vector<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> > >, SURELOG::DesignElement const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf251108f9 in std::__cxx1998::vector<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> >::push_back(SURELOG::DesignElement const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2510f8c9 in std::__debug::vector<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> >::push_back(SURELOG::DesignElement const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2510973a in SURELOG::ParseCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/ParseCache.cpp:102
    #8 0x55cf2510a91f in SURELOG::ParseCache::restore() Cache/ParseCache.cpp:184
    #9 0x55cf253b613c in SURELOG::ParseFile::parse() SourceCompile/ParseFile.cpp:302
    #10 0x55cf25377332 in SURELOG::CompileSourceFile::parse_() SourceCompile/CompileSourceFile.cpp:186
    #11 0x55cf25375aef in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:96
    #12 0x55cf2538c86b in operator() SourceCompile/Compiler.cpp:531
    #13 0x55cf25391e62 in __invoke_impl<void, SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #14 0x55cf25391859 in __invoke<SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #15 0x55cf253921d3 in _M_invoke<0> /usr/include/c++/7/thread:234
    #16 0x55cf25392159 in operator() /usr/include/c++/7/thread:243
    #17 0x55cf253920bd in _M_run /usr/include/c++/7/thread:186
    #18 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 57992 byte(s) in 659 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516dba8 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516d552 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516d1dc in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2516cde1 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15de1)
    #5 0x55cf2516ca67 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15a67)
    #6 0x55cf2516b411 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_Alloc_node&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf14411)
    #7 0x55cf251671ab in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2516348d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c48d)
    #9 0x55cf251607d9 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2515e614 in SURELOG::DesignComponent::addNamedObject(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileCNodeId, SURELOG::DesignComponent*) Design/DesignComponent.cpp:54
    #11 0x55cf251fb141 in SURELOG::CompileModule::collectModuleObjects_() DesignCompile/CompileModule.cpp:477
    #12 0x55cf251f60e9 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:80
    #13 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #14 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #15 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #16 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #17 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 52480 byte(s) in 410 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf254680ba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25467551 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf254665ca in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25464fc5 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25461b65 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf2545aa0b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf254520d1 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2544c5a7 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf254466bd in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf25441126 in SURELOG::ClassDefinition::insertTask(SURELOG::TaskMethod&) Testbench/ClassDefinition.cpp:93
    #11 0x55cf251aa7b9 in SURELOG::CompileClass::compile_class_method_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:432
    #12 0x55cf251a7865 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:165
    #13 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #14 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #15 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #16 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #17 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 38808 byte(s) in 441 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519a7ea in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2519a622 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2519a04e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25199ccb in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25198ba9 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf25194f11 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251902c5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2518c5ab in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf2518987d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2543fb18 in SURELOG::ClassDefinition::insertDataType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) Testbench/ClassDefinition.cpp:32
    #11 0x55cf251a83c8 in SURELOG::CompileClass::compile_class_property_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:241
    #12 0x55cf251a75e6 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:141
    #13 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #14 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #15 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #16 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #17 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 33728 byte(s) in 70 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24f4c710 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_create_storage(unsigned long) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xcf5710)
    #5 0x55cf24f4acd8 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Vector_base(unsigned long, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) /usr/include/c++/7/bits/stl_vector.h:138
    #6 0x55cf24f49133 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/bits/stl_vector.h:328
    #7 0x55cf24f4898a in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/debug/vector:195
    #8 0x55cf253db85b in SURELOG::MacroInfo::MacroInfo(SURELOG::MacroInfo const&) SourceCompile/MacroInfo.h:23
    #9 0x55cf253dfb0a in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #10 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #11 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #12 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #13 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #14 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #15 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #16 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #17 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #18 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #19 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #20 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #21 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #22 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #23 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #24 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #25 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 29128 byte(s) in 331 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516dba8 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516d552 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516d1dc in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2516cde1 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15de1)
    #5 0x55cf2516ca67 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15a67)
    #6 0x55cf2516b411 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_Alloc_node&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf14411)
    #7 0x55cf251671ab in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2516348d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c48d)
    #9 0x55cf251607d9 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> > > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2515e614 in SURELOG::DesignComponent::addNamedObject(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileCNodeId, SURELOG::DesignComponent*) Design/DesignComponent.cpp:54
    #11 0x55cf2520537e in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:111
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 24984 byte(s) in 347 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6efa in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e50fe in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e3288 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e1583 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df173 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d90e9 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ceb4f in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_equal<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2121
    #8 0x55cf251c6d71 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::__cxx1998::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_multimap.h:546
    #9 0x55cf251bc2dd in __gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > > std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/debug/multimap.h:258
    #10 0x55cf251bab0c in SURELOG::Design::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:82
    #11 0x55cf251b6fa7 in collectObjects DesignCompile/CompileDesign.cpp:178
    #12 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 24696 byte(s) in 343 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6efa in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e50fe in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e3288 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e1583 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df173 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d90e9 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ceb4f in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_equal<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2121
    #8 0x55cf251c6d71 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::__cxx1998::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_multimap.h:546
    #9 0x55cf251bc2dd in __gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > > std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/debug/multimap.h:258
    #10 0x55cf25253d84 in SURELOG::Package::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) Package/Package.h:57
    #11 0x55cf2524f1b5 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:119
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 24696 byte(s) in 343 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6efa in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e50fe in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e3288 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e1583 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df173 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d90e9 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ceb4f in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_equal<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2121
    #8 0x55cf251c6d71 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::__cxx1998::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_multimap.h:546
    #9 0x55cf251bc2dd in __gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > > std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/debug/multimap.h:258
    #10 0x55cf252537f6 in SURELOG::FileContent::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) DesignCompile/../Design/FileContent.h:119
    #11 0x55cf2524f13f in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:118
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 24696 byte(s) in 343 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6efa in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e50fe in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e3288 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e1583 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df173 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d90e9 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251cee93 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6da5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bc45b in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251baca1 in SURELOG::Design::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:82
    #11 0x55cf251b6fa7 in collectObjects DesignCompile/CompileDesign.cpp:178
    #12 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 23320 byte(s) in 265 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25468e94 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25467ea5 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2546738c in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2546638b in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25464e69 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf25460f63 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf254579db in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2544f8b7 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf2544a9bf in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Parameter> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Parameter>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf254438ae in SURELOG::ClassDefinition::insertParameter(SURELOG::Parameter&) Testbench/ClassDefinition.cpp:198
    #11 0x55cf251b0d44 in SURELOG::CompileClass::compile_class_parameters_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:670
    #12 0x55cf251a71d5 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:95
    #13 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #14 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #15 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #16 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #17 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 21648 byte(s) in 246 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519a7ea in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2519a622 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2519a04e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25199ccb in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25198ba9 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf25194f11 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251902c5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2518c5ab in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf2518987d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf25186c70 in SURELOG::ModuleDefinition::insertDataType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) Design/ModuleDefinition.cpp:65
    #11 0x55cf251fb3b2 in SURELOG::CompileModule::collectModuleObjects_() DesignCompile/CompileModule.cpp:483
    #12 0x55cf251f60e9 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:80
    #13 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #14 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #15 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #16 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #17 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 19200 byte(s) in 160 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2546824e in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25467635 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2546679e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf254650c5 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf254621e9 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf2545ca3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf25453c75 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2544d837 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf25447c1b in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf25441e52 in SURELOG::ClassDefinition::insertTypeDef(SURELOG::TypeDef&) Testbench/ClassDefinition.cpp:125
    #11 0x55cf251ac930 in SURELOG::CompileClass::compile_type_declaration_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:500
    #12 0x55cf251a8e23 in SURELOG::CompileClass::compile_class_property_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:272
    #13 0x55cf251a75e6 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:141
    #14 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #15 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #16 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #17 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #18 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #19 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #20 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 19000 byte(s) in 25 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521648f in SURELOG::DesignElaboration::createBuiltinPrimitives_() DesignCompile/DesignElaboration.cpp:352
    #3 0x55cf2520d437 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:51
    #4 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #5 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #6 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #7 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #8 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #9 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #10 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 18864 byte(s) in 18 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2538b67f in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:320
    #2 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #3 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #4 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #5 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 17440 byte(s) in 39 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24f4c710 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_create_storage(unsigned long) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xcf5710)
    #5 0x55cf24f4acd8 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Vector_base(unsigned long, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) /usr/include/c++/7/bits/stl_vector.h:138
    #6 0x55cf24f49133 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/bits/stl_vector.h:328
    #7 0x55cf24f4898a in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/debug/vector:195
    #8 0x55cf253db85b in SURELOG::MacroInfo::MacroInfo(SURELOG::MacroInfo const&) SourceCompile/MacroInfo.h:23
    #9 0x55cf253dfb0a in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #10 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #11 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #12 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #13 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #14 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #15 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #16 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #17 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #18 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #19 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #20 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #21 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #22 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #23 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 16128 byte(s) in 18 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251181c0 in __gnu_cxx::new_allocator<SURELOG::DesignElement>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2511746f in std::allocator_traits<std::allocator<SURELOG::DesignElement> >::allocate(std::allocator<SURELOG::DesignElement>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251150b1 in std::__cxx1998::_Vector_base<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251122d2 in void std::__cxx1998::vector<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> >::_M_realloc_insert<SURELOG::DesignElement const&>(__gnu_cxx::__normal_iterator<SURELOG::DesignElement*, std::__cxx1998::vector<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> > >, SURELOG::DesignElement const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf251108f9 in std::__cxx1998::vector<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> >::push_back(SURELOG::DesignElement const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2510f8c9 in std::__debug::vector<SURELOG::DesignElement, std::allocator<SURELOG::DesignElement> >::push_back(SURELOG::DesignElement const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2510973a in SURELOG::ParseCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/ParseCache.cpp:102
    #8 0x55cf2510a91f in SURELOG::ParseCache::restore() Cache/ParseCache.cpp:184
    #9 0x55cf253b63fc in SURELOG::ParseFile::parse() SourceCompile/ParseFile.cpp:317
    #10 0x55cf25377332 in SURELOG::CompileSourceFile::parse_() SourceCompile/CompileSourceFile.cpp:186
    #11 0x55cf25375aef in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:96
    #12 0x55cf2538c86b in operator() SourceCompile/Compiler.cpp:531
    #13 0x55cf25391e62 in __invoke_impl<void, SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #14 0x55cf25391859 in __invoke<SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #15 0x55cf253921d3 in _M_invoke<0> /usr/include/c++/7/thread:234
    #16 0x55cf25392159 in operator() /usr/include/c++/7/thread:243
    #17 0x55cf253920bd in _M_run /usr/include/c++/7/thread:186
    #18 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 15200 byte(s) in 76 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253edb0b in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf253ed900 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf253ed4b8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf253ece49 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf253ebf55 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf253e96a1 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf253e421d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf253dfb5b in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf253dc25b in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf253c67bb in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #11 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #12 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #13 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #14 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #15 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #16 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #17 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #18 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #19 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #20 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #21 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #22 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #23 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #24 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 14440 byte(s) in 19 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25250127 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:156
    #2 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #3 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #4 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #5 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #6 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #7 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #8 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #9 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 13880 byte(s) in 638 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2544565e in SURELOG::Function::Function(SURELOG::Function const&) Testbench/../Design/Function.h:23
    #9 0x55cf254456fa in SURELOG::FunctionMethod::FunctionMethod(SURELOG::FunctionMethod const&) Testbench/FunctionMethod.h:22
    #10 0x55cf25468fec in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod, true>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/bits/stl_pair.h:351
    #11 0x55cf25468049 in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/ext/new_allocator.h:136
    #12 0x55cf25467517 in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/bits/alloc_traits.h:475
    #13 0x55cf25466546 in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/bits/stl_tree.h:626
    #14 0x55cf25464f6b in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/bits/stl_tree.h:643
    #15 0x55cf25461823 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #16 0x55cf254599f3 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #17 0x55cf254512ff in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #18 0x55cf2544bc5f in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/bits/stl_map.h:810
    #19 0x55cf25445b85 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::FunctionMethod> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FunctionMethod>&&) /usr/include/c++/7/debug/map.h:278
    #20 0x55cf25440a7a in SURELOG::ClassDefinition::insertFunction(SURELOG::FunctionMethod&) Testbench/ClassDefinition.cpp:77
    #21 0x55cf251aaf3b in SURELOG::CompileClass::compile_class_method_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:447
    #22 0x55cf251a7865 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:165
    #23 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #24 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #25 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #26 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #27 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #28 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #29 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186

Indirect leak of 13880 byte(s) in 638 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25443a98 in SURELOG::Function::getName[abi:cxx11]() Testbench/../Design/Function.h:28
    #9 0x55cf25440973 in SURELOG::ClassDefinition::insertFunction(SURELOG::FunctionMethod&) Testbench/ClassDefinition.cpp:77
    #10 0x55cf251aaf3b in SURELOG::CompileClass::compile_class_method_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:447
    #11 0x55cf251a7865 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:165
    #12 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #13 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #14 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #15 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #16 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 11400 byte(s) in 57 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253edb0b in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf253ed900 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf253ed4b8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf253ece49 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf253ebf55 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf253e96a1 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf253e421d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf253dfb5b in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf253dc25b in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf253c67bb in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #11 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #12 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #13 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #14 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #15 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #16 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #17 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #18 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #19 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #20 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #21 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #22 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 11176 byte(s) in 127 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519a7ea in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2519a622 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2519a04e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25199ccb in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25198ba9 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf25194f11 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251902c5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2518c5ab in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf2518987d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::DataType> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf25350494 in SURELOG::Package::insertDataType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) Package/Package.cpp:59
    #11 0x55cf2520568f in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:132
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 11088 byte(s) in 459 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2516335b in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c35b)
    #9 0x55cf251606bc in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>&&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf2515e597 in SURELOG::DesignComponent::addNamedObject(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileCNodeId, SURELOG::DesignComponent*) Design/DesignComponent.cpp:54
    #11 0x55cf251fb141 in SURELOG::CompileModule::collectModuleObjects_() DesignCompile/CompileModule.cpp:477
    #12 0x55cf251f60e9 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:80
    #13 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #14 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #15 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #16 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #17 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 10666 byte(s) in 346 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c6ce1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bc1d0 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ClassDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251baa8c in SURELOG::Design::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:82
    #11 0x55cf251b6fa7 in collectObjects DesignCompile/CompileDesign.cpp:178
    #12 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 10500 byte(s) in 342 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c6ce1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bc1d0 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ClassDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25253d07 in SURELOG::Package::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) Package/Package.h:57
    #11 0x55cf2524f1b5 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:119
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 10500 byte(s) in 342 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c6ce1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bc1d0 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ClassDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25253779 in SURELOG::FileContent::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) DesignCompile/../Design/FileContent.h:119
    #11 0x55cf2524f13f in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:118
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 10500 byte(s) in 342 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251b305f in SURELOG::ClassDefinition::ClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Library*, SURELOG::Package*, SURELOG::FileContent*, unsigned int, SURELOG::ClassDefinition*) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf5c05f)
    #9 0x55cf2524f092 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:117
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 10408 byte(s) in 342 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c6ce1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bc1d0 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ClassDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251bac24 in SURELOG::Design::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:82
    #11 0x55cf251b6fa7 in collectObjects DesignCompile/CompileDesign.cpp:178
    #12 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 10240 byte(s) in 64 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf2521d64d in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:819
    #3 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8448 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cc68 in __gnu_cxx::new_allocator<SURELOG::FileCNodeId>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516c237 in std::allocator_traits<std::allocator<SURELOG::FileCNodeId> >::allocate(std::allocator<SURELOG::FileCNodeId>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516995b in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251662a4 in void std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_realloc_insert<SURELOG::FileCNodeId const&>(__gnu_cxx::__normal_iterator<SURELOG::FileCNodeId*, std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162f44 in std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf251602cd in std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2515e20d in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:48
    #8 0x55cf25205031 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:105
    #9 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #10 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #11 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 7360 byte(s) in 46 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf2521d64d in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:819
    #3 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #4 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 6912 byte(s) in 96 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251a1eee in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251a1d9d in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251a1c8e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251a1b8b in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251a1969 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251a0fdd in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf2519f999 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2519eb3d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf2519e08f in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2519cd08 in SURELOG::ModuleInstance::setValue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, SURELOG::ExprBuilder&) Design/ModuleInstance.cpp:152
    #11 0x55cf25224fa2 in SURELOG::DesignElaboration::collectParams_(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, unsigned int) DesignCompile/DesignElaboration.cpp:1183
    #12 0x55cf25219672 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:477
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 5600 byte(s) in 231 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2516335b in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c35b)
    #9 0x55cf251606bc in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::pair<SURELOG::FileCNodeId, SURELOG::DesignComponent*>&&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf2515e597 in SURELOG::DesignComponent::addNamedObject(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileCNodeId, SURELOG::DesignComponent*) Design/DesignComponent.cpp:54
    #11 0x55cf2520537e in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:111
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 5440 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2524e654 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:104
    #2 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #3 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #4 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #5 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #6 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #7 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #8 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #9 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4800 byte(s) in 30 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf2521d64d in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:819
    #3 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #4 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4704 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2524ffb1 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:147
    #2 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #3 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #4 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #5 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #6 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #7 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #8 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #9 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4192 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2538aade in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:282
    #2 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #3 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #4 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #5 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 4192 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25108ffc in SURELOG::ParseCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/ParseCache.cpp:84
    #2 0x55cf2510a91f in SURELOG::ParseCache::restore() Cache/ParseCache.cpp:184
    #3 0x55cf253b613c in SURELOG::ParseFile::parse() SourceCompile/ParseFile.cpp:302
    #4 0x55cf25377332 in SURELOG::CompileSourceFile::parse_() SourceCompile/CompileSourceFile.cpp:186
    #5 0x55cf25375aef in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:96
    #6 0x55cf2538c86b in operator() SourceCompile/Compiler.cpp:531
    #7 0x55cf25391e62 in __invoke_impl<void, SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #8 0x55cf25391859 in __invoke<SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*>&)::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #9 0x55cf253921d3 in _M_invoke<0> /usr/include/c++/7/thread:234
    #10 0x55cf25392159 in operator() /usr/include/c++/7/thread:243
    #11 0x55cf253920bd in _M_run /usr/include/c++/7/thread:186
    #12 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4152 byte(s) in 343 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2515a922 in __gnu_cxx::new_allocator<SURELOG::Package*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251597d1 in std::allocator_traits<std::allocator<SURELOG::Package*> >::allocate(std::allocator<SURELOG::Package*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2515790f in std::__cxx1998::_Vector_base<SURELOG::Package*, std::allocator<SURELOG::Package*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251b47ca in void std::__cxx1998::vector<SURELOG::Package*, std::allocator<SURELOG::Package*> >::_M_realloc_insert<SURELOG::Package* const&>(__gnu_cxx::__normal_iterator<SURELOG::Package**, std::__cxx1998::vector<SURELOG::Package*, std::allocator<SURELOG::Package*> > >, SURELOG::Package* const&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf5d7ca)
    #5 0x55cf251b3fae in std::__cxx1998::vector<SURELOG::Package*, std::allocator<SURELOG::Package*> >::push_back(SURELOG::Package* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf251b38cd in std::__debug::vector<SURELOG::Package*, std::allocator<SURELOG::Package*> >::push_back(SURELOG::Package* const&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf5c8cd)
    #7 0x55cf251b339f in SURELOG::ClassDefinition::addAccessPackage(SURELOG::Package*) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf5c39f)
    #8 0x55cf251a7128 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:91
    #9 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #10 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #11 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #12 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #13 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #14 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #15 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #16 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4136 byte(s) in 187 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2544497b in SURELOG::Property::Property(SURELOG::Property const&) Testbench/Property.h:23
    #9 0x55cf25468f56 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property, true>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/bits/stl_pair.h:351
    #10 0x55cf25467f7f in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/ext/new_allocator.h:136
    #11 0x55cf254674a5 in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/bits/alloc_traits.h:475
    #12 0x55cf2546645c in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/bits/stl_tree.h:626
    #13 0x55cf25464eeb in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/bits/stl_tree.h:643
    #14 0x55cf254614e1 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #15 0x55cf254589db in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #16 0x55cf2545052d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #17 0x55cf2544b317 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/bits/stl_map.h:810
    #18 0x55cf25444d57 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Property> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Property>&&) /usr/include/c++/7/debug/map.h:278
    #19 0x55cf254403cf in SURELOG::ClassDefinition::insertProperty(SURELOG::Property&) Testbench/ClassDefinition.cpp:61
    #20 0x55cf251a8d38 in SURELOG::CompileClass::compile_class_property_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:265
    #21 0x55cf251a75e6 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:141
    #22 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #23 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #24 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #25 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #26 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #27 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #28 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #29 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4136 byte(s) in 187 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25443a6a in SURELOG::Property::getName[abi:cxx11]() Testbench/Property.h:32
    #9 0x55cf254402c8 in SURELOG::ClassDefinition::insertProperty(SURELOG::Property&) Testbench/ClassDefinition.cpp:61
    #10 0x55cf251a8d38 in SURELOG::CompileClass::compile_class_property_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:265
    #11 0x55cf251a75e6 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:141
    #12 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #13 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #14 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #15 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #16 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4096 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25360cd4 in __gnu_cxx::new_allocator<SURELOG::IncludeFileInfo>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25360742 in std::allocator_traits<std::allocator<SURELOG::IncludeFileInfo> >::allocate(std::allocator<SURELOG::IncludeFileInfo>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2535f793 in std::__cxx1998::_Deque_base<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::_M_allocate_node() /usr/include/c++/7/bits/stl_deque.h:602
    #4 0x55cf2539eb50 in std::__cxx1998::_Deque_base<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::_M_create_nodes(SURELOG::IncludeFileInfo**, SURELOG::IncludeFileInfo**) /usr/include/c++/7/bits/stl_deque.h:727
    #5 0x55cf2539ced5 in std::__cxx1998::_Deque_base<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::_M_initialize_map(unsigned long) /usr/include/c++/7/bits/stl_deque.h:701
    #6 0x55cf25399909 in std::__cxx1998::_Deque_base<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::_Deque_base() /usr/include/c++/7/bits/stl_deque.h:492
    #7 0x55cf25396529 in std::__cxx1998::deque<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::deque() /usr/include/c++/7/bits/stl_deque.h:888
    #8 0x55cf253937c0 in std::__debug::deque<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::deque() /usr/include/c++/7/debug/deque:89
    #9 0x55cf2539387b in std::stack<SURELOG::IncludeFileInfo, std::__debug::deque<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> > >::stack<std::__debug::deque<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >, void>() /usr/include/c++/7/bits/stl_stack.h:149
    #10 0x55cf25392b01 in SURELOG::AnalyzeFile::AnalyzeFile(SURELOG::CommandLineParser*, SURELOG::Design*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int) SourceCompile/AnalyzeFile.h:44
    #11 0x55cf2538a87c in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:272
    #12 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 3840 byte(s) in 96 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253227fd in SURELOG::ValueFactory::newValue(SURELOG::LValue&) Expression/Value.cpp:85
    #2 0x55cf2531e98f in SURELOG::ExprBuilder::clone(SURELOG::Value*) Expression/ExprBuilder.cpp:37
    #3 0x55cf25224eea in SURELOG::DesignElaboration::collectParams_(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, unsigned int) DesignCompile/DesignElaboration.cpp:1182
    #4 0x55cf25219672 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:477
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 3456 byte(s) in 48 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251a1eee in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251a1d9d in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251a1c8e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251a1b8b in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251a1969 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251a0fdd in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf2519f999 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2519eb3d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf2519e08f in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf253500c5 in SURELOG::Package::setValue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, SURELOG::ExprBuilder&) Package/Package.cpp:48
    #11 0x55cf25204cfd in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:95
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 3072 byte(s) in 96 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf253254f5 in SURELOG::LValue::LValue(SURELOG::LValue&) Expression/Value.cpp:322
    #2 0x55cf2532280f in SURELOG::ValueFactory::newValue(SURELOG::LValue&) Expression/Value.cpp:85
    #3 0x55cf2531e98f in SURELOG::ExprBuilder::clone(SURELOG::Value*) Expression/ExprBuilder.cpp:37
    #4 0x55cf25224eea in SURELOG::DesignElaboration::collectParams_(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, unsigned int) DesignCompile/DesignElaboration.cpp:1182
    #5 0x55cf25219672 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:477
    #6 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #7 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #8 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #9 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #10 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #11 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #12 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #13 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #14 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #15 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 3062 byte(s) in 153 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2518c557 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>::pair<SURELOG::DataType&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) /usr/include/c++/7/bits/stl_pair.h:315
    #9 0x55cf2518975f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::DataType&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf2543fa9b in SURELOG::ClassDefinition::insertDataType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) Testbench/ClassDefinition.cpp:32
    #11 0x55cf251a83c8 in SURELOG::CompileClass::compile_class_property_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:241
    #12 0x55cf251a75e6 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:141
    #13 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #14 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #15 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #16 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #17 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 2744 byte(s) in 343 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf251b31dd in SURELOG::ClassDefinition::ClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Library*, SURELOG::Package*, SURELOG::FileContent*, unsigned int, SURELOG::ClassDefinition*) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf5c1dd)
    #9 0x55cf2524f092 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:117
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 2688 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25139ff1 in __gnu_cxx::new_allocator<SURELOG::Signal>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25139b8c in std::allocator_traits<std::allocator<SURELOG::Signal> >::allocate(std::allocator<SURELOG::Signal>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25138869 in std::__cxx1998::_Vector_base<SURELOG::Signal, std::allocator<SURELOG::Signal> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf2518f93c in void std::__cxx1998::vector<SURELOG::Signal, std::allocator<SURELOG::Signal> >::_M_realloc_insert<SURELOG::Signal const&>(__gnu_cxx::__normal_iterator<SURELOG::Signal*, std::__cxx1998::vector<SURELOG::Signal, std::allocator<SURELOG::Signal> > >, SURELOG::Signal const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf2518c280 in std::__cxx1998::vector<SURELOG::Signal, std::allocator<SURELOG::Signal> >::push_back(SURELOG::Signal const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf25189409 in std::__debug::vector<SURELOG::Signal, std::allocator<SURELOG::Signal> >::push_back(SURELOG::Signal const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251fe43d in SURELOG::CompileModule::collectInterfaceObjects_() DesignCompile/CompileModule.cpp:658
    #8 0x55cf251f6125 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:84
    #9 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #10 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #11 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #12 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #13 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #14 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #15 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #16 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 2440 byte(s) in 114 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2518c557 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>::pair<SURELOG::DataType&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) /usr/include/c++/7/bits/stl_pair.h:315
    #9 0x55cf2518975f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::DataType&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25186bf3 in SURELOG::ModuleDefinition::insertDataType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) Design/ModuleDefinition.cpp:65
    #11 0x55cf251fb3b2 in SURELOG::CompileModule::collectModuleObjects_() DesignCompile/CompileModule.cpp:483
    #12 0x55cf251f60e9 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:80
    #13 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #14 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #15 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #16 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #17 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 2352 byte(s) in 294 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251e7ac2 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187
    #5 0x55cf251e549c in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_Vector_base(unsigned long, std::allocator<SURELOG::FileContent*> const&) /usr/include/c++/7/bits/stl_vector.h:138
    #6 0x55cf251e369d in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::vector(std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > const&) /usr/include/c++/7/bits/stl_vector.h:328
    #7 0x55cf251e1a9a in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::vector(std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > const&) /usr/include/c++/7/debug/vector:195
    #8 0x55cf25448486 in SURELOG::DesignComponent::DesignComponent(SURELOG::DesignComponent const&) Testbench/../Design/DesignComponent.h:25
    #9 0x55cf25448f33 in SURELOG::ClassDefinition::ClassDefinition(SURELOG::ClassDefinition const&) Testbench/ClassDefinition.h:31
    #10 0x55cf254695ca in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, true>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_pair.h:351
    #11 0x55cf25468d49 in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/ext/new_allocator.h:136
    #12 0x55cf25467df9 in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/alloc_traits.h:475
    #13 0x55cf2546721e in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:626
    #14 0x55cf254662b1 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:643
    #15 0x55cf254647e5 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #16 0x55cf2545efb3 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #17 0x55cf25455e37 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #18 0x55cf2544e643 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_map.h:810
    #19 0x55cf25449501 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/debug/map.h:278
    #20 0x55cf2544326a in SURELOG::ClassDefinition::insertBaseClass(SURELOG::ClassDefinition&) Testbench/ClassDefinition.cpp:177
    #21 0x55cf251b0929 in SURELOG::CompileClass::compile_class_type_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:639
    #22 0x55cf251a78b8 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:168
    #23 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #24 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #25 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #26 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #27 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #28 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #29 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186

Indirect leak of 2272 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253775c6 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:211
    #2 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #3 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #4 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #5 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #6 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #7 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #8 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 2026 byte(s) in 68 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf253dfaeb in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #9 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #11 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #12 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #13 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #14 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #15 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #16 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #17 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #18 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #19 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #20 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #21 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #22 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #23 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #24 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 2000 byte(s) in 10 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253edb0b in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf253ed900 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf253ed4b8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf253ece49 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf253ebf55 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf253e96a1 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf253e421d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf253dfb5b in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf253dc25b in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf253c67bb in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #11 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #12 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #13 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #14 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #15 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #16 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #17 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #18 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #19 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #20 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #21 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #22 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #23 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 1800 byte(s) in 25 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf252164d5 in SURELOG::DesignElaboration::createBuiltinPrimitives_() DesignCompile/DesignElaboration.cpp:352
    #12 0x55cf2520d437 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:51
    #13 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #14 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #15 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #16 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #17 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #18 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1736 byte(s) in 31 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2525a5b0 in __gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, true> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf252591a1 in std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, true> > >::allocate(std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, true> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25257f4e in std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, true>* std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, true> > >::_M_allocate_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>&&) /usr/include/c++/7/bits/hashtable_policy.h:2060
    #4 0x55cf25256bea in std::pair<std::__detail::_Node_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, false, true>, bool> std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_emplace<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >(std::integral_constant<bool, true>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>&&) /usr/include/c++/7/bits/hashtable.h:1641
    #5 0x55cf25255d97 in std::pair<std::__detail::_Node_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, false, true>, bool> std::__detail::_Insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, false>::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>&&) /usr/include/c++/7/bits/hashtable_policy.h:996
    #6 0x55cf252550e1 in std::pair<std::__detail::_Node_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, false, true>, bool> std::__cxx1998::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>&&) /usr/include/c++/7/bits/unordered_map.h:592
    #7 0x55cf25254467 in std::pair<__gnu_debug::_Safe_iterator<std::__detail::_Node_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, false, true>, std::__debug::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> > > >, bool> std::__debug::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>&&) /usr/include/c++/7/debug/unordered_map:338
    #8 0x55cf2524e405 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:95
    #9 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #10 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #11 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #12 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #13 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #14 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #15 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #16 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1715 byte(s) in 79 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25443d4f in SURELOG::ClassDefinition::getName[abi:cxx11]() Testbench/ClassDefinition.h:44
    #9 0x55cf25443163 in SURELOG::ClassDefinition::insertBaseClass(SURELOG::ClassDefinition&) Testbench/ClassDefinition.cpp:177
    #10 0x55cf251b0929 in SURELOG::CompileClass::compile_class_type_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:639
    #11 0x55cf251a78b8 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:168
    #12 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #13 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #14 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #15 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #16 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1715 byte(s) in 79 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25448fdb in SURELOG::ClassDefinition::ClassDefinition(SURELOG::ClassDefinition const&) Testbench/ClassDefinition.h:31
    #9 0x55cf254695ca in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, true>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_pair.h:351
    #10 0x55cf25468d49 in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/ext/new_allocator.h:136
    #11 0x55cf25467df9 in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/alloc_traits.h:475
    #12 0x55cf2546721e in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:626
    #13 0x55cf254662b1 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:643
    #14 0x55cf254647e5 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #15 0x55cf2545efb3 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #16 0x55cf25455e37 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #17 0x55cf2544e643 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_map.h:810
    #18 0x55cf25449501 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/debug/map.h:278
    #19 0x55cf2544326a in SURELOG::ClassDefinition::insertBaseClass(SURELOG::ClassDefinition&) Testbench/ClassDefinition.cpp:177
    #20 0x55cf251b0929 in SURELOG::CompileClass::compile_class_type_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:639
    #21 0x55cf251a78b8 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:168
    #22 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #23 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #24 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #25 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #26 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #27 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #28 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #29 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1520 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #3 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #4 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #5 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #6 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #7 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #8 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #9 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #10 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #11 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #12 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1520 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #3 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1483 byte(s) in 52 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf253dfaeb in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #9 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #11 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #12 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #13 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #14 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #15 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #16 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #17 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #18 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #19 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #20 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #21 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #22 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 1472 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2538a7ec in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:272
    #2 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #3 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #4 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #5 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 1372 byte(s) in 343 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf251b31dd in SURELOG::ClassDefinition::ClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Library*, SURELOG::Package*, SURELOG::FileContent*, unsigned int, SURELOG::ClassDefinition*) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf5c1dd)
    #9 0x55cf2524f092 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:117
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1368 byte(s) in 19 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2525300a in SURELOG::FileContent::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../Design/FileContent.h:116
    #11 0x55cf2525022a in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:157
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1256 byte(s) in 59 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2518c557 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::DataType>::pair<SURELOG::DataType&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) /usr/include/c++/7/bits/stl_pair.h:315
    #9 0x55cf2518975f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::DataType&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25350417 in SURELOG::Package::insertDataType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::DataType&) Package/Package.cpp:59
    #11 0x55cf2520568f in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:132
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 1200 byte(s) in 10 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25468184 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf254675c3 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf254666b4 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25465045 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25461ea7 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf2545ba23 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf25452ea3 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2544ceef in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf25447129 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf254417c2 in SURELOG::ClassDefinition::insertConstraint(SURELOG::Constraint&) Testbench/ClassDefinition.cpp:109
    #11 0x55cf251abccf in SURELOG::CompileClass::compile_class_constraint_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:467
    #12 0x55cf251a763c in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:144
    #13 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #14 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #15 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #16 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #17 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 1176 byte(s) in 294 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fc2e88 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187
    #5 0x55cf24fb9598 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_base(unsigned long, std::allocator<unsigned int> const&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xd62598)
    #6 0x55cf24faed1d in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::vector(std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > const&) /usr/include/c++/7/bits/stl_vector.h:328
    #7 0x55cf24fa71ca in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::vector(std::__debug::vector<unsigned int, std::allocator<unsigned int> > const&) /usr/include/c++/7/debug/vector:195
    #8 0x55cf254484a1 in SURELOG::DesignComponent::DesignComponent(SURELOG::DesignComponent const&) Testbench/../Design/DesignComponent.h:25
    #9 0x55cf25448f33 in SURELOG::ClassDefinition::ClassDefinition(SURELOG::ClassDefinition const&) Testbench/ClassDefinition.h:31
    #10 0x55cf254695ca in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, true>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_pair.h:351
    #11 0x55cf25468d49 in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/ext/new_allocator.h:136
    #12 0x55cf25467df9 in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/alloc_traits.h:475
    #13 0x55cf2546721e in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:626
    #14 0x55cf254662b1 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:643
    #15 0x55cf254647e5 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #16 0x55cf2545efb3 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #17 0x55cf25455e37 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #18 0x55cf2544e643 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/bits/stl_map.h:810
    #19 0x55cf25449501 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition>&&) /usr/include/c++/7/debug/map.h:278
    #20 0x55cf2544326a in SURELOG::ClassDefinition::insertBaseClass(SURELOG::ClassDefinition&) Testbench/ClassDefinition.cpp:177
    #21 0x55cf251b0929 in SURELOG::CompileClass::compile_class_type_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:639
    #22 0x55cf251a78b8 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:168
    #23 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #24 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #25 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #26 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #27 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #28 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #29 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186

Indirect leak of 1088 byte(s) in 18 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24f4c710 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_create_storage(unsigned long) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xcf5710)
    #5 0x55cf24f4acd8 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Vector_base(unsigned long, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) /usr/include/c++/7/bits/stl_vector.h:138
    #6 0x55cf24f49133 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/bits/stl_vector.h:328
    #7 0x55cf24f4898a in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/debug/vector:195
    #8 0x55cf253db840 in SURELOG::MacroInfo::MacroInfo(SURELOG::MacroInfo const&) SourceCompile/MacroInfo.h:23
    #9 0x55cf253dfb0a in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #10 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #11 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #12 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #13 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #14 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #15 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #16 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #17 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #18 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #19 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #20 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #21 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #22 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #23 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #24 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #25 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 1040 byte(s) in 26 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #4 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #5 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #6 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #7 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #8 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #9 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #10 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #11 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #12 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #13 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 1024 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cc68 in __gnu_cxx::new_allocator<SURELOG::FileCNodeId>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516c237 in std::allocator_traits<std::allocator<SURELOG::FileCNodeId> >::allocate(std::allocator<SURELOG::FileCNodeId>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516995b in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251662a4 in void std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_realloc_insert<SURELOG::FileCNodeId const&>(__gnu_cxx::__normal_iterator<SURELOG::FileCNodeId*, std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162f44 in std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf251602cd in std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2515e20d in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:48
    #8 0x55cf25204e04 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:97
    #9 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #10 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #11 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 1024 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253771ac in SURELOG::CompileSourceFile::initParser() SourceCompile/CompileSourceFile.cpp:178
    #2 0x55cf2538a9d5 in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:279
    #3 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #4 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #5 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #6 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 992 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253875cf in SURELOG::Compiler::ppinit_() SourceCompile/Compiler.cpp:143
    #2 0x55cf2538ddde in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:590
    #3 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #4 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #5 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 960 byte(s) in 6 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf2521d64d in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:819
    #3 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #4 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #5 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #6 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #7 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #8 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #9 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #10 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #11 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #12 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 864 byte(s) in 12 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6efa in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e50fe in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e3288 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e1583 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df173 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d90e9 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ceb4f in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_equal<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2121
    #8 0x55cf251c6d71 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::__cxx1998::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_multimap.h:546
    #9 0x55cf251bc2dd in __gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > > std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/debug/multimap.h:258
    #10 0x55cf25253d84 in SURELOG::Package::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) Package/Package.h:57
    #11 0x55cf253515ed in SURELOG::Package::append(SURELOG::Package*) Package/Package.cpp:98
    #12 0x55cf2514474d in SURELOG::Design::addPackageDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*) Design/Design.cpp:513
    #13 0x55cf251b6cd7 in collectObjects DesignCompile/CompileDesign.cpp:173
    #14 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 800 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253edb0b in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf253ed900 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf253ed4b8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf253ece49 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf253ebf55 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf253e96a1 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf253e421d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf253dfb5b in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf253dc25b in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::MacroInfo> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf253c67bb in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #11 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #12 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #13 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #14 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #15 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #16 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #17 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #18 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #19 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #20 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #21 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 776 byte(s) in 37 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2544648c in SURELOG::Task::Task(SURELOG::Task const&) Testbench/../Design/Task.h:22
    #9 0x55cf254464b2 in SURELOG::TaskMethod::TaskMethod(SURELOG::TaskMethod const&) Testbench/TaskMethod.h:22
    #10 0x55cf25469082 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod, true>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/bits/stl_pair.h:351
    #11 0x55cf25468109 in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/ext/new_allocator.h:136
    #12 0x55cf25467589 in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/bits/alloc_traits.h:475
    #13 0x55cf25466630 in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/bits/stl_tree.h:626
    #14 0x55cf25464feb in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/bits/stl_tree.h:643
    #15 0x55cf25461b65 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #16 0x55cf2545aa0b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #17 0x55cf254520d1 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #18 0x55cf2544c5a7 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/bits/stl_map.h:810
    #19 0x55cf254466bd in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TaskMethod> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TaskMethod>&&) /usr/include/c++/7/debug/map.h:278
    #20 0x55cf25441126 in SURELOG::ClassDefinition::insertTask(SURELOG::TaskMethod&) Testbench/ClassDefinition.cpp:93
    #21 0x55cf251aa7b9 in SURELOG::CompileClass::compile_class_method_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:432
    #22 0x55cf251a7865 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:165
    #23 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #24 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #25 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #26 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #27 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #28 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #29 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186

Indirect leak of 776 byte(s) in 37 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25443ac6 in SURELOG::Task::getName[abi:cxx11]() Testbench/../Design/Task.h:26
    #9 0x55cf2544101f in SURELOG::ClassDefinition::insertTask(SURELOG::TaskMethod&) Testbench/ClassDefinition.cpp:93
    #10 0x55cf251aa7b9 in SURELOG::CompileClass::compile_class_method_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:432
    #11 0x55cf251a7865 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:165
    #12 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #13 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #14 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #15 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #16 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 768 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25139ff1 in __gnu_cxx::new_allocator<SURELOG::Signal>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25139b8c in std::allocator_traits<std::allocator<SURELOG::Signal> >::allocate(std::allocator<SURELOG::Signal>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25138869 in std::__cxx1998::_Vector_base<SURELOG::Signal, std::allocator<SURELOG::Signal> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf2518f93c in void std::__cxx1998::vector<SURELOG::Signal, std::allocator<SURELOG::Signal> >::_M_realloc_insert<SURELOG::Signal const&>(__gnu_cxx::__normal_iterator<SURELOG::Signal*, std::__cxx1998::vector<SURELOG::Signal, std::allocator<SURELOG::Signal> > >, SURELOG::Signal const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf2518c280 in std::__cxx1998::vector<SURELOG::Signal, std::allocator<SURELOG::Signal> >::push_back(SURELOG::Signal const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf25189409 in std::__debug::vector<SURELOG::Signal, std::allocator<SURELOG::Signal> >::push_back(SURELOG::Signal const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251fd53f in SURELOG::CompileModule::collectInterfaceObjects_() DesignCompile/CompileModule.cpp:585
    #8 0x55cf251f6125 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:84
    #9 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #10 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #11 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #12 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #13 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #14 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #15 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #16 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 760 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #3 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 760 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521b3ee in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:647
    #3 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #4 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #5 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #6 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #7 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #8 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #9 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #10 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #11 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #12 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 760 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #3 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 760 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #3 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #4 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 760 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #3 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #4 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #5 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #6 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #7 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #8 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #9 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #10 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #11 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #12 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #13 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #14 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #15 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 760 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #3 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #4 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 760 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25186915 in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #2 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #3 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #4 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 688 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253915a8 in SURELOG::Compiler::parseLibrariesDef_() SourceCompile/Compiler.cpp:739
    #2 0x55cf2538db25 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:579
    #3 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #4 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #5 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 672 byte(s) in 7 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516db03 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516d4ef in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516d10c in std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2516cd7f in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_create_node<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15d7f)
    #5 0x55cf2516c8a9 in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node::operator()<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf158a9)
    #6 0x55cf2516a8a1 in std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf138a1)
    #7 0x55cf25166cc3 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_unique<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0fcc3)
    #8 0x55cf25163187 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::__cxx1998::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c187)
    #9 0x55cf2516051d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >, bool> std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0951d)
    #10 0x55cf2515e163 in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:44
    #11 0x55cf251f39ac in SURELOG::CompileFileContent::collectObjects_() DesignCompile/CompileFileContent.cpp:83
    #12 0x55cf251f32e3 in SURELOG::CompileFileContent::compile() DesignCompile/CompileFileContent.cpp:47
    #13 0x55cf251f31fb in SURELOG::FunctorCompileFileContent::operator()() const DesignCompile/CompileFileContent.cpp:38
    #14 0x55cf251c0e6a in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf69e6a)
    #15 0x55cf251d2426 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7b426)
    #16 0x55cf251ca47c in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7347c)
    #17 0x55cf251f2d5d in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f2a8b in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26f1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 672 byte(s) in 7 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516db03 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516d4ef in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516d10c in std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2516cd7f in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_create_node<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15d7f)
    #5 0x55cf2516c8a9 in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node::operator()<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf158a9)
    #6 0x55cf2516a8a1 in std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf138a1)
    #7 0x55cf25166cc3 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_unique<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0fcc3)
    #8 0x55cf25163187 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::__cxx1998::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c187)
    #9 0x55cf2516051d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >, bool> std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0951d)
    #10 0x55cf2515e163 in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:44
    #11 0x55cf251fb8b6 in SURELOG::CompileModule::collectModuleObjects_() DesignCompile/CompileModule.cpp:516
    #12 0x55cf251f60e9 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:80
    #13 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #14 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #15 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #16 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #17 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 638 byte(s) in 34 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf24f50965 in void std::_Construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_construct.h:75
    #9 0x55cf24f4e886 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:83
    #10 0x55cf24f4c845 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:134
    #11 0x55cf24f4b079 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) /usr/include/c++/7/bits/stl_uninitialized.h:289
    #12 0x55cf24f491c4 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/bits/stl_vector.h:331
    #13 0x55cf24f4898a in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/debug/vector:195
    #14 0x55cf253db85b in SURELOG::MacroInfo::MacroInfo(SURELOG::MacroInfo const&) SourceCompile/MacroInfo.h:23
    #15 0x55cf253dfb0a in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #16 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #17 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #18 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #19 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #20 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #21 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #22 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #23 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #24 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #25 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #26 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #27 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #28 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #29 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47

Indirect leak of 600 byte(s) in 15 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf25320818 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:276
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #6 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #7 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #8 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #9 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #10 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #11 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #12 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 576 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2515bb4c in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2515b27c in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2515a9ba in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25159acb in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25157db1 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf25153b35 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf2514da79 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf25149c95 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf25145ff3 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf252532ae in SURELOG::FileContent::addPackageDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*) DesignCompile/../Design/FileContent.h:117
    #11 0x55cf2524e786 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:105
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 544 byte(s) in 9 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24f4c710 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_create_storage(unsigned long) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xcf5710)
    #5 0x55cf24f4acd8 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Vector_base(unsigned long, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) /usr/include/c++/7/bits/stl_vector.h:138
    #6 0x55cf24f49133 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/bits/stl_vector.h:328
    #7 0x55cf24f4898a in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/debug/vector:195
    #8 0x55cf253db840 in SURELOG::MacroInfo::MacroInfo(SURELOG::MacroInfo const&) SourceCompile/MacroInfo.h:23
    #9 0x55cf253dfb0a in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #10 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #11 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #12 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #13 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #14 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #15 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #16 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #17 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #18 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #19 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #20 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #21 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #22 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #23 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 544 byte(s) in 20 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25185fe4 in __gnu_cxx::new_allocator<std::__detail::_Hash_node_base*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25185c6c in std::allocator_traits<std::allocator<std::__detail::_Hash_node_base*> >::allocate(std::allocator<std::__detail::_Hash_node_base*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2525b881 in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, true> > >::_M_allocate_buckets(unsigned long) /usr/include/c++/7/bits/hashtable_policy.h:2107
    #4 0x55cf2525b467 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_allocate_buckets(unsigned long) /usr/include/c++/7/bits/hashtable.h:354
    #5 0x55cf2525a632 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, true>) /usr/include/c++/7/bits/hashtable.h:2089
    #6 0x55cf252593a6 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_rehash(unsigned long, unsigned long const&) /usr/include/c++/7/bits/hashtable.h:2068
    #7 0x55cf25258428 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, true>*) /usr/include/c++/7/bits/hashtable.h:1715
    #8 0x55cf25256daf in std::pair<std::__detail::_Node_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, false, true>, bool> std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_emplace<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> >(std::integral_constant<bool, true>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>&&) /usr/include/c++/7/bits/hashtable.h:1663
    #9 0x55cf25255d97 in std::pair<std::__detail::_Node_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, false, true>, bool> std::__detail::_Insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, false>::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>&&) /usr/include/c++/7/bits/hashtable_policy.h:996
    #10 0x55cf252550e1 in std::pair<std::__detail::_Node_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, false, true>, bool> std::__cxx1998::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>&&) /usr/include/c++/7/bits/unordered_map.h:592
    #11 0x55cf25254467 in std::pair<__gnu_debug::_Safe_iterator<std::__detail::_Node_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int>, false, true>, std::__debug::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> > > >, bool> std::__debug::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>&&) /usr/include/c++/7/debug/unordered_map:338
    #12 0x55cf2524e405 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:95
    #13 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #14 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #15 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #16 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #17 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 538 byte(s) in 12 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c6ce1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bc1d0 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ClassDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25253d07 in SURELOG::Package::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) Package/Package.h:57
    #11 0x55cf253515ed in SURELOG::Package::append(SURELOG::Package*) Package/Package.cpp:98
    #12 0x55cf2514474d in SURELOG::Design::addPackageDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*) Design/Design.cpp:513
    #13 0x55cf251b6cd7 in collectObjects DesignCompile/CompileDesign.cpp:173
    #14 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 520 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2522126a in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1080
    #2 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #3 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #4 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #5 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #6 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #7 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #8 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #9 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #10 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #11 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #12 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 512 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25360874 in __gnu_cxx::new_allocator<SURELOG::IncludeFileInfo*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2535f9e2 in std::allocator_traits<std::allocator<SURELOG::IncludeFileInfo*> >::allocate(std::allocator<SURELOG::IncludeFileInfo*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2535f308 in std::__cxx1998::_Deque_base<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::_M_allocate_map(unsigned long) /usr/include/c++/7/bits/stl_deque.h:616
    #4 0x55cf2539ce0f in std::__cxx1998::_Deque_base<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::_M_initialize_map(unsigned long) /usr/include/c++/7/bits/stl_deque.h:689
    #5 0x55cf25399909 in std::__cxx1998::_Deque_base<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::_Deque_base() /usr/include/c++/7/bits/stl_deque.h:492
    #6 0x55cf25396529 in std::__cxx1998::deque<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::deque() /usr/include/c++/7/bits/stl_deque.h:888
    #7 0x55cf253937c0 in std::__debug::deque<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::deque() /usr/include/c++/7/debug/deque:89
    #8 0x55cf2539387b in std::stack<SURELOG::IncludeFileInfo, std::__debug::deque<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> > >::stack<std::__debug::deque<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >, void>() /usr/include/c++/7/bits/stl_stack.h:149
    #9 0x55cf25392b01 in SURELOG::AnalyzeFile::AnalyzeFile(SURELOG::CommandLineParser*, SURELOG::Design*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int) SourceCompile/AnalyzeFile.h:44
    #10 0x55cf2538a87c in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:272
    #11 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 512 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25206fb0 in __gnu_cxx::new_allocator<SURELOG::Value*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25206ded in std::allocator_traits<std::allocator<SURELOG::Value*> >::allocate(std::allocator<SURELOG::Value*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25206ced in std::__cxx1998::_Vector_base<SURELOG::Value*, std::allocator<SURELOG::Value*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf25206318 in void std::__cxx1998::vector<SURELOG::Value*, std::allocator<SURELOG::Value*> >::_M_realloc_insert<SURELOG::Value* const&>(__gnu_cxx::__normal_iterator<SURELOG::Value**, std::__cxx1998::vector<SURELOG::Value*, std::allocator<SURELOG::Value*> > >, SURELOG::Value* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25205fee in std::__cxx1998::vector<SURELOG::Value*, std::allocator<SURELOG::Value*> >::push_back(SURELOG::Value* const&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xfaefee)
    #6 0x55cf25205d67 in std::__debug::vector<SURELOG::Value*, std::allocator<SURELOG::Value*> >::push_back(SURELOG::Value* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25204bd2 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:94
    #8 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #9 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #10 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #11 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #12 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 512 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2515abb6 in __gnu_cxx::new_allocator<std::pair<unsigned long, SURELOG::FileContent*> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25159c1f in std::allocator_traits<std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >::allocate(std::allocator<std::pair<unsigned long, SURELOG::FileContent*> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2515877f in std::__cxx1998::_Vector_base<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf25154dac in void std::__cxx1998::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >::_M_realloc_insert<std::pair<unsigned long, SURELOG::FileContent*> >(__gnu_cxx::__normal_iterator<std::pair<unsigned long, SURELOG::FileContent*>*, std::__cxx1998::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > > >, std::pair<unsigned long, SURELOG::FileContent*>&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xefddac)
    #5 0x55cf2514e74c in void std::__cxx1998::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >::emplace_back<std::pair<unsigned long, SURELOG::FileContent*> >(std::pair<unsigned long, SURELOG::FileContent*>&&) /usr/include/c++/7/bits/vector.tcc:105
    #6 0x55cf2514a549 in void std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >::emplace_back<std::pair<unsigned long, SURELOG::FileContent*> >(std::pair<unsigned long, SURELOG::FileContent*>&&) /usr/include/c++/7/debug/vector:489
    #7 0x55cf25146651 in __gnu_cxx::__enable_if<!std::__are_same<std::pair<unsigned long, SURELOG::FileContent*>, bool>::__value, void>::__type std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >::push_back<std::pair<unsigned long, SURELOG::FileContent*> >(std::pair<unsigned long, SURELOG::FileContent*>&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xeef651)
    #8 0x55cf2513b39a in SURELOG::Design::addFileContent(unsigned long, SURELOG::FileContent*) Design/Design.cpp:45
    #9 0x55cf2538b7a3 in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:322
    #10 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #11 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #12 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #13 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 512 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf250f147c in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25358919 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:733
    #8 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #9 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #10 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #11 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #12 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 480 byte(s) in 15 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326274 in SURELOG::LValue::set(long) Expression/Value.cpp:383
    #2 0x55cf25320e6d in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:336
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #8 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #9 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #10 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #11 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 480 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf25220d02 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1061
    #3 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #4 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #5 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #6 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #7 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #8 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #9 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #10 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #11 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #12 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 472 byte(s) in 26 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2519eaad in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf2519df72 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::Value*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf2519cc8b in SURELOG::ModuleInstance::setValue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, SURELOG::ExprBuilder&) Design/ModuleInstance.cpp:152
    #11 0x55cf25224fa2 in SURELOG::DesignElaboration::collectParams_(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, unsigned int) DesignCompile/DesignElaboration.cpp:1183
    #12 0x55cf25219672 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:477
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 448 byte(s) in 14 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326274 in SURELOG::LValue::set(long) Expression/Value.cpp:383
    #2 0x55cf25320e6d in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:336
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf25320818 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:276
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #8 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #9 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #10 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #11 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 432 byte(s) in 6 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf251b66d8 in collectObjects DesignCompile/CompileDesign.cpp:163
    #12 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 432 byte(s) in 6 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2532a350 in SURELOG::Library::addModuleDefinition(SURELOG::ModuleDefinition*) Library/Library.cpp:24
    #11 0x55cf251b673f in collectObjects DesignCompile/CompileDesign.cpp:164
    #12 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 384 byte(s) in 16 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2518472d in __gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<unsigned int const, unsigned long>, false> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251839fe in std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, unsigned long>, false> > >::allocate(std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, unsigned long>, false> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251828e2 in std::__detail::_Hash_node<std::pair<unsigned int const, unsigned long>, false>* std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, unsigned long>, false> > >::_M_allocate_node<std::pair<unsigned int, unsigned long> >(std::pair<unsigned int, unsigned long>&&) /usr/include/c++/7/bits/hashtable_policy.h:2060
    #4 0x55cf251807f4 in std::pair<std::__detail::_Node_iterator<std::pair<unsigned int const, unsigned long>, false, false>, bool> std::_Hashtable<unsigned int, std::pair<unsigned int const, unsigned long>, std::allocator<std::pair<unsigned int const, unsigned long> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_emplace<std::pair<unsigned int, unsigned long> >(std::integral_constant<bool, true>, std::pair<unsigned int, unsigned long>&&) /usr/include/c++/7/bits/hashtable.h:1641
    #5 0x55cf2517d463 in std::pair<std::__detail::_Node_iterator<std::pair<unsigned int const, unsigned long>, false, false>, bool> std::__detail::_Insert<unsigned int, std::pair<unsigned int const, unsigned long>, std::allocator<std::pair<unsigned int const, unsigned long> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, false>::insert<std::pair<unsigned int, unsigned long>, void>(std::pair<unsigned int, unsigned long>&&) /usr/include/c++/7/bits/hashtable_policy.h:996
    #6 0x55cf2517add5 in std::pair<std::__detail::_Node_iterator<std::pair<unsigned int const, unsigned long>, false, false>, bool> std::__cxx1998::unordered_map<unsigned int, unsigned long, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned long> > >::insert<std::pair<unsigned int, unsigned long>, void>(std::pair<unsigned int, unsigned long>&&) /usr/include/c++/7/bits/unordered_map.h:592
    #7 0x55cf2517882d in std::pair<__gnu_debug::_Safe_iterator<std::__detail::_Node_iterator<std::pair<unsigned int const, unsigned long>, false, false>, std::__debug::unordered_map<unsigned int, unsigned long, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned long> > > >, bool> std::__debug::unordered_map<unsigned int, unsigned long, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned long> > >::insert<std::pair<unsigned int, unsigned long>, void>(std::pair<unsigned int, unsigned long>&&) /usr/include/c++/7/debug/unordered_map:338
    #8 0x55cf25171ca0 in SURELOG::FileContent::SetDefinitionFile(unsigned int, unsigned long) Design/FileContent.cpp:170
    #9 0x55cf25252153 in SURELOG::ResolveSymbols::bindDefinition_(unsigned int, std::__debug::vector<VObjectType, std::allocator<VObjectType> >) DesignCompile/ResolveSymbols.cpp:274
    #10 0x55cf25252c58 in SURELOG::ResolveSymbols::resolve() DesignCompile/ResolveSymbols.cpp:334
    #11 0x55cf2524d6eb in SURELOG::FunctorResolve::operator()() const DesignCompile/ResolveSymbols.cpp:50
    #12 0x55cf251bfa82 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf68a82)
    #13 0x55cf251d21ae in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7b1ae)
    #14 0x55cf251ca04a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7304a)
    #15 0x55cf251f2d89 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #16 0x55cf251f2b75 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #17 0x55cf251f2711 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #18 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 379 byte(s) in 19 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf252501a7 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:156
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 368 byte(s) in 30 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2522126a in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1080
    #2 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #3 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 357 byte(s) in 19 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf24f50965 in void std::_Construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_construct.h:75
    #9 0x55cf24f4e886 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:83
    #10 0x55cf24f4c845 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:134
    #11 0x55cf24f4b079 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) /usr/include/c++/7/bits/stl_uninitialized.h:289
    #12 0x55cf24f491c4 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/bits/stl_vector.h:331
    #13 0x55cf24f4898a in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/debug/vector:195
    #14 0x55cf253db85b in SURELOG::MacroInfo::MacroInfo(SURELOG::MacroInfo const&) SourceCompile/MacroInfo.h:23
    #15 0x55cf253dfb0a in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #16 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #17 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #18 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #19 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #20 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #21 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #22 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #23 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #24 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #25 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #26 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #27 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #28 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #29 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 357 byte(s) in 14 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2525500f in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf2525432f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<unsigned int&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf2524e385 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:95
    #11 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #12 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #13 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #14 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #15 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #16 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #17 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #18 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 339 byte(s) in 17 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25252f8d in SURELOG::FileContent::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../Design/FileContent.h:116
    #11 0x55cf2525022a in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:157
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 336 byte(s) in 9 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250f14d1 in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:415
    #11 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #12 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #13 0x55cf25359550 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:815
    #14 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #15 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #16 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #17 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #18 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 329 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25392a62 in SURELOG::AnalyzeFile::AnalyzeFile(SURELOG::CommandLineParser*, SURELOG::Design*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int) SourceCompile/AnalyzeFile.h:44
    #9 0x55cf2538a87c in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:272
    #10 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #11 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #12 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #13 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 320 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f4e8 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:132
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #6 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #7 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #8 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #9 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #10 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #11 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 320 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25332206 in __gnu_cxx::new_allocator<std::_Rb_tree_node<unsigned long> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2533216d in std::allocator_traits<std::allocator<std::_Rb_tree_node<unsigned long> > >::allocate(std::allocator<std::_Rb_tree_node<unsigned long> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25332080 in std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25331ed3 in std::_Rb_tree_node<unsigned long>* std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_create_node<unsigned long const&>(unsigned long const&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25331daf in std::_Rb_tree_node<unsigned long>* std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_Alloc_node::operator()<unsigned long const&>(unsigned long const&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf25330e7b in std::_Rb_tree_iterator<unsigned long> std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_insert_<unsigned long const&, std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, unsigned long const&, std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf2532f22f in std::pair<std::_Rb_tree_iterator<unsigned long>, bool> std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_insert_unique<unsigned long const&>(unsigned long const&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2532dfb7 in std::__cxx1998::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >::insert(unsigned long const&) /usr/include/c++/7/bits/stl_set.h:501
    #9 0x55cf2532d514 in std::__debug::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >::insert(unsigned long const&) /usr/include/c++/7/debug/set.h:246
    #10 0x55cf2532d000 in SURELOG::Library::addFileId(unsigned long) Library/../SourceCompile/../Library/Library.h:27
    #11 0x55cf2532baa9 in SURELOG::LibrarySet::getLibrary(unsigned long) Library/LibrarySet.cpp:51
    #12 0x55cf25333991 in SURELOG::ParseLibraryDef::parseLibrariesDefinition() Library/ParseLibraryDef.cpp:87
    #13 0x55cf2539176a in SURELOG::Compiler::parseLibrariesDef_() SourceCompile/Compiler.cpp:741
    #14 0x55cf2538db25 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:579
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 320 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf25217b2e in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:416
    #3 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #4 0x55cf2520d460 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:54
    #5 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #6 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #7 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #8 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #9 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #10 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #11 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 320 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf2521d64d in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:819
    #3 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #4 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #5 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #6 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #7 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #8 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #9 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #10 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #11 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #12 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #13 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #14 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #15 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 316 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf253dfaeb in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #9 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #11 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #12 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #13 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #14 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #15 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #16 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #17 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #18 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #19 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #20 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #21 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #22 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #23 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 288 byte(s) in 9 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326274 in SURELOG::LValue::set(long) Expression/Value.cpp:383
    #2 0x55cf25320e6d in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:336
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #7 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #8 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #9 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #10 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #11 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #12 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 288 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6efa in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e50fe in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e3288 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e1583 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df173 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d90e9 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ceb4f in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::_M_insert_equal<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2121
    #8 0x55cf251c6d71 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > std::__cxx1998::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/bits/stl_multimap.h:546
    #9 0x55cf251bc2dd in __gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> >, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > > > std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>&&) /usr/include/c++/7/debug/multimap.h:258
    #10 0x55cf252537f6 in SURELOG::FileContent::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) DesignCompile/../Design/FileContent.h:119
    #11 0x55cf252500f2 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:148
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 288 byte(s) in 9 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2532646f in SURELOG::LValue::set(double) Expression/Value.cpp:392
    #2 0x55cf25321e5b in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:411
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #7 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #8 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #9 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #10 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #11 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #12 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 288 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516db03 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516d4ef in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516d10c in std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2516cd7f in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_create_node<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15d7f)
    #5 0x55cf2516c8a9 in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node::operator()<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf158a9)
    #6 0x55cf2516a8a1 in std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf138a1)
    #7 0x55cf25166cc3 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_unique<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0fcc3)
    #8 0x55cf25163187 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::__cxx1998::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c187)
    #9 0x55cf2516051d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >, bool> std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0951d)
    #10 0x55cf2515e163 in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:44
    #11 0x55cf25205031 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:105
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 256 byte(s) in 8 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326274 in SURELOG::LValue::set(long) Expression/Value.cpp:383
    #2 0x55cf25320e6d in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:336
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f4e8 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:132
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #8 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #9 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #10 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #11 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 248 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2533db7c in __gnu_cxx::new_allocator<SURELOG::Library>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2533d5cf in std::allocator_traits<std::allocator<SURELOG::Library> >::allocate(std::allocator<SURELOG::Library>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2533cd9b in std::__cxx1998::_Vector_base<SURELOG::Library, std::allocator<SURELOG::Library> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf2533b716 in void std::__cxx1998::vector<SURELOG::Library, std::allocator<SURELOG::Library> >::_M_realloc_insert<SURELOG::Library const&>(__gnu_cxx::__normal_iterator<SURELOG::Library*, std::__cxx1998::vector<SURELOG::Library, std::allocator<SURELOG::Library> > >, SURELOG::Library const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf2533acc3 in std::__cxx1998::vector<SURELOG::Library, std::allocator<SURELOG::Library> >::push_back(SURELOG::Library const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2533a80b in std::__debug::vector<SURELOG::Library, std::allocator<SURELOG::Library> >::push_back(SURELOG::Library const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25339da0 in SURELOG::LibrarySet::addLibrary(SURELOG::Library&) Library/../SourceCompile/../Design/../Library/LibrarySet.h:27
    #8 0x55cf25332c81 in SURELOG::ParseLibraryDef::parseLibrariesDefinition() Library/ParseLibraryDef.cpp:61
    #9 0x55cf2539176a in SURELOG::Compiler::parseLibrariesDef_() SourceCompile/Compiler.cpp:741
    #10 0x55cf2538db25 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:579
    #11 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #12 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #13 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 240 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2522126a in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1080
    #2 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #3 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 236 byte(s) in 13 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2519eaad in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf2519df72 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::Value*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25350048 in SURELOG::Package::setValue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, SURELOG::ExprBuilder&) Package/Package.cpp:48
    #11 0x55cf25204cfd in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:95
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 224 byte(s) in 7 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25326c19 in SURELOG::LValue::u_plus(SURELOG::Value*) Expression/Value.cpp:419
    #3 0x55cf253215cc in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:363
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #8 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #9 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #10 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #11 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 216 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2515bb4c in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2515b27c in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2515a9ba in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf25159acb in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf25157db1 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf25153b35 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf2514da79 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf25149c95 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf25145ff3 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Package*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251446a0 in SURELOG::Design::addPackageDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*) Design/Design.cpp:507
    #11 0x55cf251b6cd7 in collectObjects DesignCompile/CompileDesign.cpp:173
    #12 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 210 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250f14d1 in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:415
    #11 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #12 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #13 0x55cf25357e5f in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:674
    #14 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #15 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #16 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #17 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #18 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 208 byte(s) in 6 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25185fe4 in __gnu_cxx::new_allocator<std::__detail::_Hash_node_base*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25185c6c in std::allocator_traits<std::allocator<std::__detail::_Hash_node_base*> >::allocate(std::allocator<std::__detail::_Hash_node_base*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25185725 in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, unsigned long>, false> > >::_M_allocate_buckets(unsigned long) /usr/include/c++/7/bits/hashtable_policy.h:2107
    #4 0x55cf25185027 in std::_Hashtable<unsigned int, std::pair<unsigned int const, unsigned long>, std::allocator<std::pair<unsigned int const, unsigned long> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_allocate_buckets(unsigned long) /usr/include/c++/7/bits/hashtable.h:354
    #5 0x55cf251847ae in std::_Hashtable<unsigned int, std::pair<unsigned int const, unsigned long>, std::allocator<std::pair<unsigned int const, unsigned long> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, true>) /usr/include/c++/7/bits/hashtable.h:2089
    #6 0x55cf25183c1e in std::_Hashtable<unsigned int, std::pair<unsigned int const, unsigned long>, std::allocator<std::pair<unsigned int const, unsigned long> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_rehash(unsigned long, unsigned long const&) /usr/include/c++/7/bits/hashtable.h:2068
    #7 0x55cf25182dbc in std::_Hashtable<unsigned int, std::pair<unsigned int const, unsigned long>, std::allocator<std::pair<unsigned int const, unsigned long> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<unsigned int const, unsigned long>, false>*) /usr/include/c++/7/bits/hashtable.h:1715
    #8 0x55cf251809b9 in std::pair<std::__detail::_Node_iterator<std::pair<unsigned int const, unsigned long>, false, false>, bool> std::_Hashtable<unsigned int, std::pair<unsigned int const, unsigned long>, std::allocator<std::pair<unsigned int const, unsigned long> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_emplace<std::pair<unsigned int, unsigned long> >(std::integral_constant<bool, true>, std::pair<unsigned int, unsigned long>&&) /usr/include/c++/7/bits/hashtable.h:1663
    #9 0x55cf2517d463 in std::pair<std::__detail::_Node_iterator<std::pair<unsigned int const, unsigned long>, false, false>, bool> std::__detail::_Insert<unsigned int, std::pair<unsigned int const, unsigned long>, std::allocator<std::pair<unsigned int const, unsigned long> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, false>::insert<std::pair<unsigned int, unsigned long>, void>(std::pair<unsigned int, unsigned long>&&) /usr/include/c++/7/bits/hashtable_policy.h:996
    #10 0x55cf2517add5 in std::pair<std::__detail::_Node_iterator<std::pair<unsigned int const, unsigned long>, false, false>, bool> std::__cxx1998::unordered_map<unsigned int, unsigned long, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned long> > >::insert<std::pair<unsigned int, unsigned long>, void>(std::pair<unsigned int, unsigned long>&&) /usr/include/c++/7/bits/unordered_map.h:592
    #11 0x55cf2517882d in std::pair<__gnu_debug::_Safe_iterator<std::__detail::_Node_iterator<std::pair<unsigned int const, unsigned long>, false, false>, std::__debug::unordered_map<unsigned int, unsigned long, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned long> > > >, bool> std::__debug::unordered_map<unsigned int, unsigned long, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned long> > >::insert<std::pair<unsigned int, unsigned long>, void>(std::pair<unsigned int, unsigned long>&&) /usr/include/c++/7/debug/unordered_map:338
    #12 0x55cf25171ca0 in SURELOG::FileContent::SetDefinitionFile(unsigned int, unsigned long) Design/FileContent.cpp:170
    #13 0x55cf25252153 in SURELOG::ResolveSymbols::bindDefinition_(unsigned int, std::__debug::vector<VObjectType, std::allocator<VObjectType> >) DesignCompile/ResolveSymbols.cpp:274
    #14 0x55cf25252c58 in SURELOG::ResolveSymbols::resolve() DesignCompile/ResolveSymbols.cpp:334
    #15 0x55cf2524d6eb in SURELOG::FunctorResolve::operator()() const DesignCompile/ResolveSymbols.cpp:50
    #16 0x55cf251bfa82 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf68a82)
    #17 0x55cf251d21ae in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7b1ae)
    #18 0x55cf251ca04a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7304a)
    #19 0x55cf251f2d89 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #20 0x55cf251f2b75 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #21 0x55cf251f2711 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 192 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253bca2a in __gnu_cxx::new_allocator<SURELOG::ParseFile*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf253bc103 in std::allocator_traits<std::allocator<SURELOG::ParseFile*> >::allocate(std::allocator<SURELOG::ParseFile*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf253bb963 in std::__cxx1998::_Vector_base<SURELOG::ParseFile*, std::allocator<SURELOG::ParseFile*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf253badcc in void std::__cxx1998::vector<SURELOG::ParseFile*, std::allocator<SURELOG::ParseFile*> >::_M_realloc_insert<SURELOG::ParseFile*>(__gnu_cxx::__normal_iterator<SURELOG::ParseFile**, std::__cxx1998::vector<SURELOG::ParseFile*, std::allocator<SURELOG::ParseFile*> > >, SURELOG::ParseFile*&&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf253ba6a4 in void std::__cxx1998::vector<SURELOG::ParseFile*, std::allocator<SURELOG::ParseFile*> >::emplace_back<SURELOG::ParseFile*>(SURELOG::ParseFile*&&) /usr/include/c++/7/bits/vector.tcc:105
    #6 0x55cf253b978b in void std::__debug::vector<SURELOG::ParseFile*, std::allocator<SURELOG::ParseFile*> >::emplace_back<SURELOG::ParseFile*>(SURELOG::ParseFile*&&) /usr/include/c++/7/debug/vector:489
    #7 0x55cf253b8d41 in __gnu_cxx::__enable_if<!std::__are_same<SURELOG::ParseFile*, bool>::__value, void>::__type std::__debug::vector<SURELOG::ParseFile*, std::allocator<SURELOG::ParseFile*> >::push_back<SURELOG::ParseFile*>(SURELOG::ParseFile*&&) /usr/include/c++/7/debug/vector:478
    #8 0x55cf253b2512 in SURELOG::ParseFile::ParseFile(SURELOG::CompileSourceFile*, SURELOG::ParseFile*, unsigned long, unsigned int) SourceCompile/ParseFile.cpp:61
    #9 0x55cf25375704 in SURELOG::CompileSourceFile::CompileSourceFile(SURELOG::CompileSourceFile*, unsigned long, unsigned int) SourceCompile/CompileSourceFile.cpp:58
    #10 0x55cf2538b3b3 in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:306
    #11 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 192 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516db03 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516d4ef in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516d10c in std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2516cd7f in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_create_node<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15d7f)
    #5 0x55cf2516c8a9 in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node::operator()<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf158a9)
    #6 0x55cf2516a8a1 in std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf138a1)
    #7 0x55cf25166cc3 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_unique<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0fcc3)
    #8 0x55cf25163187 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::__cxx1998::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c187)
    #9 0x55cf2516051d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >, bool> std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0951d)
    #10 0x55cf2515e163 in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:44
    #11 0x55cf251faa6a in SURELOG::CompileModule::collectModuleObjects_() DesignCompile/CompileModule.cpp:462
    #12 0x55cf251f60e9 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:80
    #13 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #14 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #15 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #16 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #17 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 192 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516db03 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516d4ef in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516d10c in std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2516cd7f in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_create_node<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15d7f)
    #5 0x55cf2516c8a9 in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node::operator()<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf158a9)
    #6 0x55cf2516a8a1 in std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf138a1)
    #7 0x55cf25166cc3 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_unique<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0fcc3)
    #8 0x55cf25163187 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::__cxx1998::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c187)
    #9 0x55cf2516051d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >, bool> std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0951d)
    #10 0x55cf2515e163 in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:44
    #11 0x55cf25204882 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:85
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 192 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2525b73f in __gnu_cxx::new_allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2525af2c in std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > >::allocate(std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25259f28 in std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true>* std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > >::_M_allocate_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/hashtable_policy.h:2060
    #4 0x55cf25258c0f in std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true>* std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > >::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/c++/7/bits/hashtable_policy.h:182
    #5 0x55cf252577a2 in std::pair<std::__detail::_Node_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true, true>, bool> std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::_M_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > > const&, std::integral_constant<bool, true>) /usr/include/c++/7/bits/hashtable.h:1818
    #6 0x55cf25256510 in std::__detail::_Insert_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::insert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/hashtable_policy.h:843
    #7 0x55cf252558aa in std::__cxx1998::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::insert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/unordered_set.h:420
    #8 0x55cf25254d94 in std::__debug::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::insert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/unordered_set:312
    #9 0x55cf252520dd in SURELOG::ResolveSymbols::bindDefinition_(unsigned int, std::__debug::vector<VObjectType, std::allocator<VObjectType> >) DesignCompile/ResolveSymbols.cpp:273
    #10 0x55cf25252c58 in SURELOG::ResolveSymbols::resolve() DesignCompile/ResolveSymbols.cpp:334
    #11 0x55cf2524d6eb in SURELOG::FunctorResolve::operator()() const DesignCompile/ResolveSymbols.cpp:50
    #12 0x55cf251bfa82 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf68a82)
    #13 0x55cf251d21ae in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7b1ae)
    #14 0x55cf251ca04a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7304a)
    #15 0x55cf251f2d89 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #16 0x55cf251f2b75 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #17 0x55cf251f2711 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #18 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 192 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cc68 in __gnu_cxx::new_allocator<SURELOG::FileCNodeId>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516c237 in std::allocator_traits<std::allocator<SURELOG::FileCNodeId> >::allocate(std::allocator<SURELOG::FileCNodeId>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516995b in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251662a4 in void std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_realloc_insert<SURELOG::FileCNodeId const&>(__gnu_cxx::__normal_iterator<SURELOG::FileCNodeId*, std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162f44 in std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf251602cd in std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2515e20d in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:48
    #8 0x55cf251fb8b6 in SURELOG::CompileModule::collectModuleObjects_() DesignCompile/CompileModule.cpp:516
    #9 0x55cf251f60e9 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:80
    #10 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #11 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #12 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #13 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #14 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 166 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c6ce1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bc1d0 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ClassDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ClassDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25253779 in SURELOG::FileContent::addClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*) DesignCompile/../Design/FileContent.h:119
    #11 0x55cf252500f2 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:148
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 166 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251b305f in SURELOG::ClassDefinition::ClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Library*, SURELOG::Package*, SURELOG::FileContent*, unsigned int, SURELOG::ClassDefinition*) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf5c05f)
    #9 0x55cf25250045 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:147
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 161 byte(s) in 7 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25446fc4 in SURELOG::Constraint::Constraint(SURELOG::Constraint const&) Testbench/Constraint.h:24
    #9 0x55cf25469118 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint, true>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/bits/stl_pair.h:351
    #10 0x55cf254681d3 in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/ext/new_allocator.h:136
    #11 0x55cf254675fb in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/bits/alloc_traits.h:475
    #12 0x55cf2546671a in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/bits/stl_tree.h:626
    #13 0x55cf2546506b in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/bits/stl_tree.h:643
    #14 0x55cf25461ea7 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #15 0x55cf2545ba23 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #16 0x55cf25452ea3 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #17 0x55cf2544ceef in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/bits/stl_map.h:810
    #18 0x55cf25447129 in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Constraint> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Constraint>&&) /usr/include/c++/7/debug/map.h:278
    #19 0x55cf254417c2 in SURELOG::ClassDefinition::insertConstraint(SURELOG::Constraint&) Testbench/ClassDefinition.cpp:109
    #20 0x55cf251abccf in SURELOG::CompileClass::compile_class_constraint_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:467
    #21 0x55cf251a763c in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:144
    #22 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #23 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #24 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #25 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #26 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #27 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #28 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #29 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 161 byte(s) in 7 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25443af4 in SURELOG::Constraint::getName[abi:cxx11]() Testbench/Constraint.h:28
    #9 0x55cf254416c4 in SURELOG::ClassDefinition::insertConstraint(SURELOG::Constraint&) Testbench/ClassDefinition.cpp:109
    #10 0x55cf251abccf in SURELOG::CompileClass::compile_class_constraint_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:467
    #11 0x55cf251a763c in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:144
    #12 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #13 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #14 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #15 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #16 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 160 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf2521d64d in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:819
    #3 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 160 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf2521d64d in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:819
    #3 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 160 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf2521bf76 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:690
    #3 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #4 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #5 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #6 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #7 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #8 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #9 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #10 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #11 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #12 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 160 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf250f147c in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25359550 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:815
    #8 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #9 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #10 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #11 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #12 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 160 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cc68 in __gnu_cxx::new_allocator<SURELOG::FileCNodeId>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516c237 in std::allocator_traits<std::allocator<SURELOG::FileCNodeId> >::allocate(std::allocator<SURELOG::FileCNodeId>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516995b in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251662a4 in void std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_realloc_insert<SURELOG::FileCNodeId const&>(__gnu_cxx::__normal_iterator<SURELOG::FileCNodeId*, std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162f44 in std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf251602cd in std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2515e20d in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:48
    #8 0x55cf25204882 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:85
    #9 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #10 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #11 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 160 byte(s) in 5 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2532607c in SURELOG::LValue::set(unsigned long) Expression/Value.cpp:374
    #2 0x55cf25320dc6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:332
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #7 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #8 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #9 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #10 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #11 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #12 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 160 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf251b6658 in collectObjects DesignCompile/CompileDesign.cpp:159
    #9 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #10 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #11 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 160 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cc68 in __gnu_cxx::new_allocator<SURELOG::FileCNodeId>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516c237 in std::allocator_traits<std::allocator<SURELOG::FileCNodeId> >::allocate(std::allocator<SURELOG::FileCNodeId>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516995b in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251662a4 in void std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_realloc_insert<SURELOG::FileCNodeId const&>(__gnu_cxx::__normal_iterator<SURELOG::FileCNodeId*, std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162f44 in std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf251602cd in std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2515e20d in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:48
    #8 0x55cf251f39ac in SURELOG::CompileFileContent::collectObjects_() DesignCompile/CompileFileContent.cpp:83
    #9 0x55cf251f32e3 in SURELOG::CompileFileContent::compile() DesignCompile/CompileFileContent.cpp:47
    #10 0x55cf251f31fb in SURELOG::FunctorCompileFileContent::operator()() const DesignCompile/CompileFileContent.cpp:38
    #11 0x55cf251c0e6a in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf69e6a)
    #12 0x55cf251d2426 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7b426)
    #13 0x55cf251ca47c in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7347c)
    #14 0x55cf251f2d5d in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2a8b in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f26f1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 160 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf25220d02 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1061
    #3 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 160 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf2521d64d in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:819
    #3 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #4 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 160 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2519b36d in SURELOG::ModuleInstanceFactory::newModuleInstance(SURELOG::DesignComponent*, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleInstance.cpp:44
    #2 0x55cf25220d02 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1061
    #3 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 151 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25392a79 in SURELOG::AnalyzeFile::AnalyzeFile(SURELOG::CommandLineParser*, SURELOG::Design*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int) SourceCompile/AnalyzeFile.h:44
    #9 0x55cf2538a87c in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:272
    #10 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #11 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #12 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #13 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 144 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 144 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 144 byte(s) in 18 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf252501a7 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:156
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 128 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf250f147c in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2535ad41 in SURELOG::Design::addOrderedPackage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0x1103d41)
    #8 0x55cf25355884 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:227
    #9 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #10 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #11 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #12 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #13 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 128 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf250f147c in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25357e5f in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:674
    #8 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #9 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #10 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #11 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #12 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 128 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cc68 in __gnu_cxx::new_allocator<SURELOG::FileCNodeId>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516c237 in std::allocator_traits<std::allocator<SURELOG::FileCNodeId> >::allocate(std::allocator<SURELOG::FileCNodeId>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516995b in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251662a4 in void std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_realloc_insert<SURELOG::FileCNodeId const&>(__gnu_cxx::__normal_iterator<SURELOG::FileCNodeId*, std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162f44 in std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf251602cd in std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::push_back(SURELOG::FileCNodeId const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2515e20d in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:48
    #8 0x55cf251faa6a in SURELOG::CompileModule::collectModuleObjects_() DesignCompile/CompileModule.cpp:462
    #9 0x55cf251f60e9 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:80
    #10 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #11 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #12 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #13 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #14 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 128 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25360cd4 in __gnu_cxx::new_allocator<SURELOG::IncludeFileInfo>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25360742 in std::allocator_traits<std::allocator<SURELOG::IncludeFileInfo> >::allocate(std::allocator<SURELOG::IncludeFileInfo>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf253e8749 in std::__cxx1998::_Vector_base<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf253e3916 in void std::__cxx1998::vector<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::_M_realloc_insert<SURELOG::IncludeFileInfo const&>(__gnu_cxx::__normal_iterator<SURELOG::IncludeFileInfo*, std::__cxx1998::vector<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> > >, SURELOG::IncludeFileInfo const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf253df9ca in std::__cxx1998::vector<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::push_back(SURELOG::IncludeFileInfo const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf253dbd29 in std::__debug::vector<SURELOG::IncludeFileInfo, std::allocator<SURELOG::IncludeFileInfo> >::push_back(SURELOG::IncludeFileInfo const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf253c005b in SURELOG::PreprocessFile::PreprocessFile(unsigned long, SURELOG::CompileSourceFile*, SURELOG::PreprocessFile::SpecialInstructions&, SURELOG::CompilationUnit*, SURELOG::Library*) SourceCompile/PreprocessFile.cpp:152
    #8 0x55cf25377686 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:211
    #9 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #10 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #11 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #12 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516db03 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516d4ef in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516d10c in std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf2516cd7f in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_create_node<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf15d7f)
    #5 0x55cf2516c8a9 in std::_Rb_tree_node<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >* std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node::operator()<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf158a9)
    #6 0x55cf2516a8a1 in std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&, std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_Alloc_node&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf138a1)
    #7 0x55cf25166cc3 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::_Rb_tree<VObjectType, std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, std::_Select1st<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::_M_insert_unique<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0fcc3)
    #8 0x55cf25163187 in std::pair<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, bool> std::__cxx1998::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c187)
    #9 0x55cf2516051d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > >, std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > > >, bool> std::__debug::map<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >, std::less<VObjectType>, std::allocator<std::pair<VObjectType const, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > > > >::insert<std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >, void>(std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0951d)
    #10 0x55cf2515e163 in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:44
    #11 0x55cf25204e04 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:97
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 92 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250ec0f3 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:943
    #11 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #12 0x55cf25357e5f in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:674
    #13 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #14 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 85 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25188b55 in SURELOG::ModuleDefinition::getName[abi:cxx11]() (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf31b55)
    #9 0x55cf2532a252 in SURELOG::Library::addModuleDefinition(SURELOG::ModuleDefinition*) Library/Library.cpp:24
    #10 0x55cf251b673f in collectObjects DesignCompile/CompileDesign.cpp:164
    #11 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 85 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf251b66d8 in collectObjects DesignCompile/CompileDesign.cpp:163
    #12 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 81 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25149c05 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Package*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Package*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf25145ed5 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::Package*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Package*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Package*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25253231 in SURELOG::FileContent::addPackageDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*) DesignCompile/../Design/FileContent.h:117
    #11 0x55cf2524e786 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:105
    #12 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #13 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #14 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #15 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #16 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #17 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #18 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 81 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25253a6a in SURELOG::Package::Package(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Library*, SURELOG::FileContent*, unsigned int) DesignCompile/../SourceCompile/../Design/../Package/Package.h:31
    #9 0x55cf2524e6dd in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:104
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 80 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf251b6658 in collectObjects DesignCompile/CompileDesign.cpp:159
    #9 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #10 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #11 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 80 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2522126a in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1080
    #2 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #3 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #4 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #5 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #6 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #7 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #8 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #9 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #10 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #11 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #14 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #15 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #16 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #17 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #18 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #19 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #20 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #21 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #22 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #23 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251a1eee in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251a1d9d in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251a1c8e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251a1b8b in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251a1969 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251a0fdd in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf2519f999 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2519eb3d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf2519e08f in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2519cd08 in SURELOG::ModuleInstance::setValue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, SURELOG::ExprBuilder&) Design/ModuleInstance.cpp:152
    #11 0x55cf25225d9f in SURELOG::DesignElaboration::collectParams_(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, unsigned int) DesignCompile/DesignElaboration.cpp:1223
    #12 0x55cf25219672 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:477
    #13 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #14 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #15 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #16 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #17 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #18 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #19 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #20 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #21 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #22 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #23 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #24 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251a1eee in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251a1d9d in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251a1c8e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251a1b8b in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251a1969 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251a0fdd in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf2519f999 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2519eb3d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf2519e08f in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2519cd08 in SURELOG::ModuleInstance::setValue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, SURELOG::ExprBuilder&) Design/ModuleInstance.cpp:152
    #11 0x55cf2521b76b in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:662
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521b46b in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:648
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #14 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #15 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #16 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #17 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #18 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #19 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #20 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #21 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #22 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #23 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #13 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #14 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #15 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #16 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #17 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #18 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #19 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #20 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #21 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #22 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #23 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #24 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #13 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #14 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #15 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #16 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #17 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #18 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #19 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #20 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #21 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #22 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #23 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251e6dba in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251e5038 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251e30e8 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251e14f3 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251df055 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251d7d3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf251ce2d5 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf251c6a51 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf251bbe4d in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf251ba56b in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25185fe4 in __gnu_cxx::new_allocator<std::__detail::_Hash_node_base*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25185c6c in std::allocator_traits<std::allocator<std::__detail::_Hash_node_base*> >::allocate(std::allocator<std::__detail::_Hash_node_base*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2525bb3f in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > >::_M_allocate_buckets(unsigned long) /usr/include/c++/7/bits/hashtable_policy.h:2107
    #4 0x55cf2525b7af in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::_M_allocate_buckets(unsigned long) /usr/include/c++/7/bits/hashtable.h:354
    #5 0x55cf2525af52 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, true>) /usr/include/c++/7/bits/hashtable.h:2089
    #6 0x55cf2525a160 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::_M_rehash(unsigned long, unsigned long const&) /usr/include/c++/7/bits/hashtable.h:2068
    #7 0x55cf25258de4 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true>*) /usr/include/c++/7/bits/hashtable.h:1715
    #8 0x55cf2525782b in std::pair<std::__detail::_Node_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true, true>, bool> std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::_M_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > > const&, std::integral_constant<bool, true>) /usr/include/c++/7/bits/hashtable.h:1819
    #9 0x55cf25256510 in std::__detail::_Insert_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::insert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/hashtable_policy.h:843
    #10 0x55cf252558aa in std::__cxx1998::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::insert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/unordered_set.h:420
    #11 0x55cf25254d94 in std::__debug::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::insert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/unordered_set:312
    #12 0x55cf252520dd in SURELOG::ResolveSymbols::bindDefinition_(unsigned int, std::__debug::vector<VObjectType, std::allocator<VObjectType> >) DesignCompile/ResolveSymbols.cpp:273
    #13 0x55cf25252c58 in SURELOG::ResolveSymbols::resolve() DesignCompile/ResolveSymbols.cpp:334
    #14 0x55cf2524d6eb in SURELOG::FunctorResolve::operator()() const DesignCompile/ResolveSymbols.cpp:50
    #15 0x55cf251bfa82 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf68a82)
    #16 0x55cf251d21ae in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7b1ae)
    #17 0x55cf251ca04a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7304a)
    #18 0x55cf251f2d89 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #19 0x55cf251f2b75 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #20 0x55cf251f2711 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf251a1eee in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251a1d9d in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251a1c8e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588
    #4 0x55cf251a1b8b in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:642
    #5 0x55cf251a1969 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #6 0x55cf251a0fdd in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #7 0x55cf2519f999 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #8 0x55cf2519eb3d in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/bits/stl_map.h:810
    #9 0x55cf2519e08f in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::Value*> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>&&) /usr/include/c++/7/debug/map.h:278
    #10 0x55cf2519cd08 in SURELOG::ModuleInstance::setValue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, SURELOG::ExprBuilder&) Design/ModuleInstance.cpp:152
    #11 0x55cf2521c0c8 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:691
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 72 byte(s) in 18 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf252501a7 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:156
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 69 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250f14d1 in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:415
    #11 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #12 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #13 0x55cf25356684 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:466
    #14 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #15 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #16 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #17 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #18 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 64 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25327695 in SURELOG::LValue::mult(SURELOG::Value*, SURELOG::Value*) Expression/Value.cpp:478
    #3 0x55cf2531f7c6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:151
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #7 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #8 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #9 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #10 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #11 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #12 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 64 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf250f147c in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25356684 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:466
    #8 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #9 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #10 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #11 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #12 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 64 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf253273df in SURELOG::LValue::plus(SURELOG::Value*, SURELOG::Value*) Expression/Value.cpp:466
    #3 0x55cf2531f560 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:133
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #6 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #7 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #8 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #9 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #10 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #11 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf250fe5a0 in __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf250fa8a6 in std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf250f67d5 in std::__cxx1998::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251316b6 in void std::__cxx1998::vector<unsigned long, std::allocator<unsigned long> >::_M_realloc_insert<unsigned long const&>(__gnu_cxx::__normal_iterator<unsigned long*, std::__cxx1998::vector<unsigned long, std::allocator<unsigned long> > >, unsigned long const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25130a94 in std::__cxx1998::vector<unsigned long, std::allocator<unsigned long> >::push_back(unsigned long const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2513025d in std::__debug::vector<unsigned long, std::allocator<unsigned long> >::push_back(unsigned long const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2532cf7c in SURELOG::Library::addFileId(unsigned long) Library/../SourceCompile/../Library/Library.h:27
    #8 0x55cf2532baa9 in SURELOG::LibrarySet::getLibrary(unsigned long) Library/LibrarySet.cpp:51
    #9 0x55cf25333991 in SURELOG::ParseLibraryDef::parseLibrariesDefinition() Library/ParseLibraryDef.cpp:87
    #10 0x55cf2539176a in SURELOG::Compiler::parseLibrariesDef_() SourceCompile/Compiler.cpp:741
    #11 0x55cf2538db25 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:579
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25391561 in SURELOG::Compiler::parseLibrariesDef_() SourceCompile/Compiler.cpp:738
    #2 0x55cf2538db25 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:579
    #3 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #4 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #5 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2539151a in SURELOG::Compiler::parseLibrariesDef_() SourceCompile/Compiler.cpp:737
    #2 0x55cf2538db25 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:579
    #3 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #4 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #5 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 64 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2515ed31 in SURELOG::DesignComponent::append(SURELOG::DesignComponent*) Design/DesignComponent.cpp:71
    #8 0x55cf25350cb5 in SURELOG::Package::append(SURELOG::Package*) Package/Package.cpp:89
    #9 0x55cf2514474d in SURELOG::Design::addPackageDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*) Design/Design.cpp:513
    #10 0x55cf251b6cd7 in collectObjects DesignCompile/CompileDesign.cpp:173
    #11 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 64 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250f14d1 in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:415
    #11 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #12 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #13 0x55cf25358919 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:733
    #14 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #15 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #16 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #17 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #18 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 64 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf253581d5 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:705
    #8 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #9 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #10 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #11 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #12 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 62 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25447ab5 in SURELOG::TypeDef::TypeDef(SURELOG::TypeDef const&) Testbench/TypeDef.h:24
    #9 0x55cf254691ae in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef, true>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/bits/stl_pair.h:351
    #10 0x55cf2546829d in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/ext/new_allocator.h:136
    #11 0x55cf2546766d in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/bits/alloc_traits.h:475
    #12 0x55cf25466804 in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/bits/stl_tree.h:626
    #13 0x55cf254650eb in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/bits/stl_tree.h:643
    #14 0x55cf254621e9 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) const /usr/include/c++/7/bits/stl_tree.h:556
    #15 0x55cf2545ca3b in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_Alloc_node&) /usr/include/c++/7/bits/stl_tree.h:1753
    #16 0x55cf25453c75 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/bits/stl_tree.h:2096
    #17 0x55cf2544d837 in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, bool> std::__cxx1998::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/bits/stl_map.h:810
    #18 0x55cf25447c1b in std::pair<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> >, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > > >, bool> std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::TypeDef> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>, void>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::TypeDef>&&) /usr/include/c++/7/debug/map.h:278
    #19 0x55cf25441e52 in SURELOG::ClassDefinition::insertTypeDef(SURELOG::TypeDef&) Testbench/ClassDefinition.cpp:125
    #20 0x55cf251ac930 in SURELOG::CompileClass::compile_type_declaration_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:500
    #21 0x55cf251a8e23 in SURELOG::CompileClass::compile_class_property_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:272
    #22 0x55cf251a75e6 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:141
    #23 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #24 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #25 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #26 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #27 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #28 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #29 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186

Indirect leak of 62 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25443b22 in SURELOG::TypeDef::getName[abi:cxx11]() Testbench/TypeDef.h:30
    #9 0x55cf25441d54 in SURELOG::ClassDefinition::insertTypeDef(SURELOG::TypeDef&) Testbench/ClassDefinition.cpp:125
    #10 0x55cf251ac930 in SURELOG::CompileClass::compile_type_declaration_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:500
    #11 0x55cf251a8e23 in SURELOG::CompileClass::compile_class_property_(SURELOG::FileContent*, unsigned int) DesignCompile/CompileClass.cpp:272
    #12 0x55cf251a75e6 in SURELOG::CompileClass::compile() DesignCompile/CompileClass.cpp:141
    #13 0x55cf251a5e61 in SURELOG::FunctorCompileClass::operator()() const DesignCompile/CompileClass.cpp:44
    #14 0x55cf251c2a68 in void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6ba68)
    #15 0x55cf251d40aa in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7d0aa)
    #16 0x55cf251cbdbc in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf74dbc)
    #17 0x55cf251f2d31 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f29a1 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26d1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ClassDefinition, std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >, SURELOG::FunctorCompileClass>(std::__debug::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ClassDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ClassDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 61 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 61 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 52 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250f14d1 in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:415
    #11 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #12 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #13 0x55cf25356785 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:472
    #14 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #15 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #16 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #17 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #18 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 51 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #13 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #14 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #15 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #16 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #17 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #18 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #19 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #20 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #21 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #22 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #23 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #24 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 51 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #12 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #13 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #14 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #15 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #16 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #17 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #18 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #19 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #20 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #21 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #22 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #23 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 48 byte(s) in 6 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25253b10 in SURELOG::Package::Package(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Library*, SURELOG::FileContent*, unsigned int) DesignCompile/../SourceCompile/../Design/../Package/Package.h:32
    #9 0x55cf2524e6dd in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:104
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 48 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cc68 in __gnu_cxx::new_allocator<SURELOG::FileCNodeId>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516c237 in std::allocator_traits<std::allocator<SURELOG::FileCNodeId> >::allocate(std::allocator<SURELOG::FileCNodeId>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516995b in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf2516c4b2 in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187
    #5 0x55cf25169aa8 in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_Vector_base(unsigned long, std::allocator<SURELOG::FileCNodeId> const&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf12aa8)
    #6 0x55cf25166811 in std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::vector(std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > const&) /usr/include/c++/7/bits/stl_vector.h:328
    #7 0x55cf25162fd2 in std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::vector(std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > const&) /usr/include/c++/7/debug/vector:195
    #8 0x55cf251630c5 in std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >::pair<VObjectType&, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&, true>(VObjectType&, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c0c5)
    #9 0x55cf25160400 in std::pair<std::__decay_and_strip<VObjectType&>::__type, std::__decay_and_strip<std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&>::__type> std::make_pair<VObjectType&, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&>(VObjectType&, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf09400)
    #10 0x55cf2515e0e6 in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:44
    #11 0x55cf251fb8b6 in SURELOG::CompileModule::collectModuleObjects_() DesignCompile/CompileModule.cpp:516
    #12 0x55cf251f60e9 in SURELOG::CompileModule::compile() DesignCompile/CompileModule.cpp:80
    #13 0x55cf251f5961 in SURELOG::FunctorCompileModule::operator()() const DesignCompile/CompileModule.cpp:43
    #14 0x55cf251c3fd2 in void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf6cfd2)
    #15 0x55cf251d54ba in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7e4ba)
    #16 0x55cf251cc99a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7599a)
    #17 0x55cf251f2d05 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f28b7 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26b1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::ModuleDefinition, std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >, SURELOG::FunctorCompileModule>(std::__debug::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, SURELOG::ModuleDefinition*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 48 byte(s) in 3 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cc68 in __gnu_cxx::new_allocator<SURELOG::FileCNodeId>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516c237 in std::allocator_traits<std::allocator<SURELOG::FileCNodeId> >::allocate(std::allocator<SURELOG::FileCNodeId>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2516995b in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf2516c4b2 in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187
    #5 0x55cf25169aa8 in std::__cxx1998::_Vector_base<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::_Vector_base(unsigned long, std::allocator<SURELOG::FileCNodeId> const&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf12aa8)
    #6 0x55cf25166811 in std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::vector(std::__cxx1998::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > const&) /usr/include/c++/7/bits/stl_vector.h:328
    #7 0x55cf25162fd2 in std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >::vector(std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > const&) /usr/include/c++/7/debug/vector:195
    #8 0x55cf251630c5 in std::pair<VObjectType, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> > >::pair<VObjectType&, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&, true>(VObjectType&, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf0c0c5)
    #9 0x55cf25160400 in std::pair<std::__decay_and_strip<VObjectType&>::__type, std::__decay_and_strip<std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&>::__type> std::make_pair<VObjectType&, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&>(VObjectType&, std::__debug::vector<SURELOG::FileCNodeId, std::allocator<SURELOG::FileCNodeId> >&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf09400)
    #10 0x55cf2515e0e6 in SURELOG::DesignComponent::addObject(VObjectType, SURELOG::FileCNodeId) Design/DesignComponent.cpp:44
    #11 0x55cf251f39ac in SURELOG::CompileFileContent::collectObjects_() DesignCompile/CompileFileContent.cpp:83
    #12 0x55cf251f32e3 in SURELOG::CompileFileContent::compile() DesignCompile/CompileFileContent.cpp:47
    #13 0x55cf251f31fb in SURELOG::FunctorCompileFileContent::operator()() const DesignCompile/CompileFileContent.cpp:38
    #14 0x55cf251c0e6a in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf69e6a)
    #15 0x55cf251d2426 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7b426)
    #16 0x55cf251ca47c in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7347c)
    #17 0x55cf251f2d5d in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #18 0x55cf251f2a8b in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #19 0x55cf251f26f1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCompileFileContent>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 43 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #13 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #14 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #15 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #16 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #17 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #18 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #19 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #20 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #21 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #22 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #23 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 43 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531fc1a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:186
    #4 0x55cf2521c2d8 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:697
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #4 0x55cf2521c2d8 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:697
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531fc1a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:186
    #4 0x55cf2521b9ed in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:680
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2521b9ed in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:680
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2521b616 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:660
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f74e in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:150
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #8 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #9 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #10 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #11 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #6 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #7 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #8 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #9 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #10 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #11 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f74e in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:150
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #7 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #8 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #9 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #10 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #11 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #12 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 40 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf25259fbd in std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true>* std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > >::_M_allocate_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/hashtable_policy.h:2066
    #11 0x55cf25258c0f in std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true>* std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > >::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/c++/7/bits/hashtable_policy.h:182
    #12 0x55cf252577a2 in std::pair<std::__detail::_Node_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true, true>, bool> std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::_M_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, true> > > const&, std::integral_constant<bool, true>) /usr/include/c++/7/bits/hashtable.h:1818
    #13 0x55cf25256510 in std::__detail::_Insert_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Identity, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, true, true> >::insert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/hashtable_policy.h:843
    #14 0x55cf252558aa in std::__cxx1998::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::insert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/unordered_set.h:420
    #15 0x55cf25254d94 in std::__debug::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::insert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/unordered_set:312
    #16 0x55cf252520dd in SURELOG::ResolveSymbols::bindDefinition_(unsigned int, std::__debug::vector<VObjectType, std::allocator<VObjectType> >) DesignCompile/ResolveSymbols.cpp:273
    #17 0x55cf25252c58 in SURELOG::ResolveSymbols::resolve() DesignCompile/ResolveSymbols.cpp:334
    #18 0x55cf2524d6eb in SURELOG::FunctorResolve::operator()() const DesignCompile/ResolveSymbols.cpp:50
    #19 0x55cf251bfa82 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf68a82)
    #20 0x55cf251d21ae in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7b1ae)
    #21 0x55cf251ca04a in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7304a)
    #22 0x55cf251f2d89 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #23 0x55cf251f2b75 in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #24 0x55cf251f2711 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorResolve>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #25 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253225eb in SURELOG::ValueFactory::newLValue() Expression/Value.cpp:55
    #2 0x55cf2531ebb0 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:48
    #3 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #4 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #5 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #8 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #9 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #10 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #11 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 38 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 38 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #12 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #13 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #14 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #15 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #16 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #17 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #18 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #19 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 34 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf24f50965 in void std::_Construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_construct.h:75
    #9 0x55cf24f4e886 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:83
    #10 0x55cf24f4c845 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:134
    #11 0x55cf24f4b079 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) /usr/include/c++/7/bits/stl_uninitialized.h:289
    #12 0x55cf24f491c4 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/bits/stl_vector.h:331
    #13 0x55cf24f4898a in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/debug/vector:195
    #14 0x55cf253db840 in SURELOG::MacroInfo::MacroInfo(SURELOG::MacroInfo const&) SourceCompile/MacroInfo.h:23
    #15 0x55cf253dfb0a in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #16 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #17 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #18 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #19 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #20 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #21 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #22 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #23 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #24 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #25 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #26 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #27 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #28 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #29 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25327695 in SURELOG::LValue::mult(SURELOG::Value*, SURELOG::Value*) Expression/Value.cpp:478
    #3 0x55cf2531f7c6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:151
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #8 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #9 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #10 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #11 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25326c19 in SURELOG::LValue::u_plus(SURELOG::Value*) Expression/Value.cpp:419
    #3 0x55cf253215cc in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:363
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f74e in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:150
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #8 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #9 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #10 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #11 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #12 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #13 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #14 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #15 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #16 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #17 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #18 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25326c19 in SURELOG::LValue::u_plus(SURELOG::Value*) Expression/Value.cpp:419
    #3 0x55cf253215cc in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:363
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #8 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #9 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #10 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #11 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #12 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #13 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #14 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #15 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #16 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #17 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #18 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f51492 in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f50823 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4e823 in std::__cxx1998::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf250f147c in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25356785 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:472
    #8 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #9 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #10 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #11 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #12 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25327539 in SURELOG::LValue::minus(SURELOG::Value*, SURELOG::Value*) Expression/Value.cpp:472
    #3 0x55cf2531f693 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:142
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #6 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #7 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #8 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #9 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #10 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #11 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #12 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #13 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #14 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326274 in SURELOG::LValue::set(long) Expression/Value.cpp:383
    #2 0x55cf25320e6d in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:336
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f74e in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:150
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #8 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #9 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #10 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #11 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #12 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25326c19 in SURELOG::LValue::u_plus(SURELOG::Value*) Expression/Value.cpp:419
    #3 0x55cf253215cc in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:363
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #8 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #9 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #10 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #11 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #12 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2515efcb in SURELOG::DesignComponent::append(SURELOG::DesignComponent*) Design/DesignComponent.cpp:73
    #8 0x55cf25350cb5 in SURELOG::Package::append(SURELOG::Package*) Package/Package.cpp:89
    #9 0x55cf2514474d in SURELOG::Design::addPackageDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*) Design/Design.cpp:513
    #10 0x55cf251b6cd7 in collectObjects DesignCompile/CompileDesign.cpp:173
    #11 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #12 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #13 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #14 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #15 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #16 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25326c19 in SURELOG::LValue::u_plus(SURELOG::Value*) Expression/Value.cpp:419
    #3 0x55cf253215cc in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:363
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf25320818 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:276
    #6 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #7 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #8 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #9 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #10 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #11 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #12 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #13 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #14 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #15 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #16 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25328ca5 in SURELOG::LValue::shiftLeft(SURELOG::Value*, SURELOG::Value*) Expression/Value.cpp:596
    #3 0x55cf25320890 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:277
    #4 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #5 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #6 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #7 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #8 0x55cf2531f2ba in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:106
    #9 0x55cf25204b58 in SURELOG::CompilePackage::collectObjects_() DesignCompile/CompilePackage.cpp:93
    #10 0x55cf2520407b in SURELOG::CompilePackage::compile() DesignCompile/CompilePackage.cpp:58
    #11 0x55cf25203939 in SURELOG::FunctorCompilePackage::operator()() const DesignCompile/CompilePackage.cpp:38
    #12 0x55cf251b81ff in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:260
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf251b31dd in SURELOG::ClassDefinition::ClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Library*, SURELOG::Package*, SURELOG::FileContent*, unsigned int, SURELOG::ClassDefinition*) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf5c1dd)
    #9 0x55cf25250045 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:147
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2515a922 in __gnu_cxx::new_allocator<SURELOG::Package*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf251597d1 in std::allocator_traits<std::allocator<SURELOG::Package*> >::allocate(std::allocator<SURELOG::Package*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf2515790f in std::__cxx1998::_Vector_base<SURELOG::Package*, std::allocator<SURELOG::Package*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf25152b20 in std::__cxx1998::vector<SURELOG::Package*, std::allocator<SURELOG::Package*> >::_M_default_append(unsigned long) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xefbb20)
    #5 0x55cf2514d024 in std::__cxx1998::vector<SURELOG::Package*, std::allocator<SURELOG::Package*> >::resize(unsigned long) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xef6024)
    #6 0x55cf25149546 in std::__debug::vector<SURELOG::Package*, std::allocator<SURELOG::Package*> >::resize(unsigned long) /usr/include/c++/7/debug/vector:347
    #7 0x55cf25143cc6 in SURELOG::Design::orderPackages() Design/Design.cpp:487
    #8 0x55cf251b7f2d in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:251
    #9 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #10 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #11 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #12 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #13 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25326c19 in SURELOG::LValue::u_plus(SURELOG::Value*) Expression/Value.cpp:419
    #3 0x55cf253215cc in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:363
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2521c2d8 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:697
    #7 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #8 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #9 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #10 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #11 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #12 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #13 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #14 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #15 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #16 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326274 in SURELOG::LValue::set(long) Expression/Value.cpp:383
    #2 0x55cf25320e6d in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:336
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531fc1a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:186
    #6 0x55cf2521c2d8 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:697
    #7 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #8 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #9 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #10 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #11 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #12 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #13 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #14 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #15 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #16 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25327d71 in SURELOG::LValue::lesser(SURELOG::Value*, SURELOG::Value*) Expression/Value.cpp:508
    #3 0x55cf2531fc92 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:187
    #4 0x55cf2521b9ed in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:680
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326b69 in SURELOG::LValue::adjust(SURELOG::Value*) Expression/Value.cpp:414
    #2 0x55cf25326c19 in SURELOG::LValue::u_plus(SURELOG::Value*) Expression/Value.cpp:419
    #3 0x55cf253215cc in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:363
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531f381 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:118
    #6 0x55cf2521b9ed in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:680
    #7 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #8 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #9 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #10 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #11 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #12 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #13 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #14 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #15 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #16 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326274 in SURELOG::LValue::set(long) Expression/Value.cpp:383
    #2 0x55cf25320e6d in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:336
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2531fc1a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:186
    #6 0x55cf2521b9ed in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:680
    #7 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #8 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #9 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #10 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #11 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #12 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #13 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #14 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #15 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #16 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf25326274 in SURELOG::LValue::set(long) Expression/Value.cpp:383
    #2 0x55cf25320e6d in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:336
    #3 0x55cf2531f1d6 in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:94
    #4 0x55cf2531f18a in SURELOG::ExprBuilder::evalExpr(SURELOG::FileContent*, unsigned int, SURELOG::ValuedComponentI*) Expression/ExprBuilder.cpp:90
    #5 0x55cf2521b616 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:660
    #6 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #7 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #8 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #9 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #10 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #11 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #12 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #13 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #14 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #15 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 32 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf253843a8 in __gnu_cxx::new_allocator<SURELOG::PreprocessFile*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf25383acd in std::allocator_traits<std::allocator<SURELOG::PreprocessFile*> >::allocate(std::allocator<SURELOG::PreprocessFile*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25381dc1 in std::__cxx1998::_Vector_base<SURELOG::PreprocessFile*, std::allocator<SURELOG::PreprocessFile*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf2537f1e2 in void std::__cxx1998::vector<SURELOG::PreprocessFile*, std::allocator<SURELOG::PreprocessFile*> >::_M_realloc_insert<SURELOG::PreprocessFile* const&>(__gnu_cxx::__normal_iterator<SURELOG::PreprocessFile**, std::__cxx1998::vector<SURELOG::PreprocessFile*, std::allocator<SURELOG::PreprocessFile*> > >, SURELOG::PreprocessFile* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf2537d1d6 in std::__cxx1998::vector<SURELOG::PreprocessFile*, std::allocator<SURELOG::PreprocessFile*> >::push_back(SURELOG::PreprocessFile* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2537aa2b in std::__debug::vector<SURELOG::PreprocessFile*, std::allocator<SURELOG::PreprocessFile*> >::push_back(SURELOG::PreprocessFile* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2537a4dc in SURELOG::CompileSourceFile::registerPP(SURELOG::PreprocessFile*) SourceCompile/CompileSourceFile.h:56
    #8 0x55cf253776d6 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:212
    #9 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #10 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #11 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #12 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #13 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #14 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #15 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 31 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #14 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #15 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #16 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #17 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #18 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #19 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #20 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #21 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #22 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #23 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 31 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 31 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250ec0f3 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:943
    #11 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #12 0x55cf25358919 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:733
    #13 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #14 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 31 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250ec0f3 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:943
    #11 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #12 0x55cf25359550 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:815
    #13 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #14 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 29 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 29 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 29 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 29 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 27 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250f14d1 in void std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/vector.tcc:415
    #11 0x55cf250ec150 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:948
    #12 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #13 0x55cf2535ad41 in SURELOG::Design::addOrderedPackage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0x1103d41)
    #14 0x55cf25355884 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:227
    #15 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #16 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #17 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #18 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #19 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 27 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf25149c05 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Package*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Package*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf25145ed5 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::Package*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Package*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Package*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf25144623 in SURELOG::Design::addPackageDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Package*) Design/Design.cpp:507
    #11 0x55cf251b6cd7 in collectObjects DesignCompile/CompileDesign.cpp:173
    #12 0x55cf251b7eea in SURELOG::CompileDesign::preCompile_() DesignCompile/CompileDesign.cpp:250
    #13 0x55cf251b5dd5 in SURELOG::CompileDesign::compile() DesignCompile/CompileDesign.cpp:71
    #14 0x55cf2538edf3 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:662
    #15 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #16 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #17 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 27 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf250f682b in void __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/ext/new_allocator.h:136
    #9 0x55cf250f133b in void std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/alloc_traits.h:475
    #10 0x55cf250ec0f3 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_vector.h:943
    #11 0x55cf250e8819 in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/debug/vector:467
    #12 0x55cf2535ad41 in SURELOG::Design::addOrderedPackage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0x1103d41)
    #13 0x55cf25355884 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:227
    #14 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #15 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #16 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #17 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #18 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 26 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf252164d5 in SURELOG::DesignElaboration::createBuiltinPrimitives_() DesignCompile/DesignElaboration.cpp:352
    #12 0x55cf2520d437 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:51
    #13 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #14 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #15 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #16 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #17 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #18 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #19 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 26 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521648f in SURELOG::DesignElaboration::createBuiltinPrimitives_() DesignCompile/DesignElaboration.cpp:352
    #11 0x55cf2520d437 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:51
    #12 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #13 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #14 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #15 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #16 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #17 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #18 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 25 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521d576 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:816
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #14 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #15 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #16 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #17 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #18 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #19 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #20 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #21 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #22 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #23 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 25 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #12 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 24 byte(s) in 6 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25253b10 in SURELOG::Package::Package(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Library*, SURELOG::FileContent*, unsigned int) DesignCompile/../SourceCompile/../Design/../Package/Package.h:32
    #9 0x55cf2524e6dd in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:104
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 21 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251c69c1 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf251bbd2f in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::ModuleDefinition*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::ModuleDefinition*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf251ba4ee in SURELOG::Design::addModuleDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::ModuleDefinition*) DesignCompile/../SourceCompile/../Design/Design.h:56
    #11 0x55cf2521b46b in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:648
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 21 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf251864f5 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:22
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521b3ee in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:647
    #11 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #12 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #13 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #14 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #15 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #16 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #17 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #18 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #19 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 20 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25358df3 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:787
    #8 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #9 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #10 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #11 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #12 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 19 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf2519eaad in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&) /usr/include/c++/7/bits/stl_pair.h:331
    #9 0x55cf2519df72 in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>::__type, std::__decay_and_strip<SURELOG::Value*&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, SURELOG::Value*&) /usr/include/c++/7/bits/stl_pair.h:524
    #10 0x55cf2519cc8b in SURELOG::ModuleInstance::setValue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Value*, SURELOG::ExprBuilder&) Design/ModuleInstance.cpp:152
    #11 0x55cf25225d9f in SURELOG::DesignElaboration::collectParams_(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, SURELOG::FileContent*, unsigned int, SURELOG::ModuleInstance*, unsigned int) DesignCompile/DesignElaboration.cpp:1223
    #12 0x55cf25219672 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:477
    #13 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #14 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #15 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #16 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #17 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #18 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #19 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #20 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #21 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #22 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #23 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #24 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 17 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24f4c966 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24f4b202 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24f4ead8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) /usr/include/c++/7/bits/basic_string.tcc:153
    #4 0x55cf24f4e5a5 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219
    #5 0x55cf24f4c50e in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) /usr/include/c++/7/bits/basic_string.h:236
    #6 0x55cf24f4a9a6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) /usr/include/c++/7/bits/basic_string.h:255
    #7 0x55cf24f48eca in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/basic_string.h:440
    #8 0x55cf24f50965 in void std::_Construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_construct.h:75
    #9 0x55cf24f4e886 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:83
    #10 0x55cf24f4c845 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:134
    #11 0x55cf24f4b079 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) /usr/include/c++/7/bits/stl_uninitialized.h:289
    #12 0x55cf24f491c4 in std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__cxx1998::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/bits/stl_vector.h:331
    #13 0x55cf24f4898a in std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) /usr/include/c++/7/debug/vector:195
    #14 0x55cf253db840 in SURELOG::MacroInfo::MacroInfo(SURELOG::MacroInfo const&) SourceCompile/MacroInfo.h:23
    #15 0x55cf253dfb0a in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::MacroInfo>::pair<SURELOG::MacroInfo&, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:315
    #16 0x55cf253dc13e in std::pair<std::__decay_and_strip<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::__type, std::__decay_and_strip<SURELOG::MacroInfo&>::__type> std::make_pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SURELOG::MacroInfo&) /usr/include/c++/7/bits/stl_pair.h:524
    #17 0x55cf253c673b in SURELOG::PreprocessFile::recordMacro(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned short, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__debug::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) SourceCompile/PreprocessFile.cpp:408
    #18 0x55cf250dec81 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:97
    #19 0x55cf250df372 in SURELOG::PPCache::restore_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Cache/PPCache.cpp:126
    #20 0x55cf250e1903 in SURELOG::PPCache::restore() Cache/PPCache.cpp:230
    #21 0x55cf253c1c0b in SURELOG::PreprocessFile::preprocess() SourceCompile/PreprocessFile.cpp:220
    #22 0x55cf25377711 in SURELOG::CompileSourceFile::preprocess_() SourceCompile/CompileSourceFile.cpp:214
    #23 0x55cf25375acd in SURELOG::CompileSourceFile::compile(SURELOG::CompileSourceFile::Action) SourceCompile/CompileSourceFile.cpp:92
    #24 0x55cf25386561 in SURELOG::Compiler::compileOneFile_(SURELOG::CompileSourceFile*, SURELOG::CompileSourceFile::Action) SourceCompile/Compiler.cpp:92
    #25 0x55cf2538cc42 in SURELOG::Compiler::compileFileSet_(SURELOG::CompileSourceFile::Action, bool, std::__debug::vector<SURELOG::CompileSourceFile*, std::allocator<SURELOG::CompileSourceFile*> >&) SourceCompile/Compiler.cpp:412
    #26 0x55cf2538de3e in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:591
    #27 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #28 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #29 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 16 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2522126a in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1080
    #2 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #3 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #4 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #5 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #6 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #7 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #8 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #9 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #10 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #11 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #12 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #13 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #14 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 16 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 16 byte(s) in 4 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf251b31dd in SURELOG::ClassDefinition::ClassDefinition(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::Library*, SURELOG::Package*, SURELOG::FileContent*, unsigned int, SURELOG::ClassDefinition*) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf5c1dd)
    #9 0x55cf25250045 in SURELOG::ResolveSymbols::createFastLookup() DesignCompile/ResolveSymbols.cpp:147
    #10 0x55cf2524d576 in SURELOG::FunctorCreateLookup::operator()() const DesignCompile/ResolveSymbols.cpp:42
    #11 0x55cf251be5e2 in void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}::operator()() const (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf675e2)
    #12 0x55cf251d1f36 in void std::__invoke_impl<void, void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_other, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&&) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf7af36)
    #13 0x55cf251c9c18 in std::__invoke_result<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>::type std::__invoke<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}>(std::__invoke_result&&, (void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}&&)...) (/home/alain/surelog_base/SVIncCompil/dist/AdvancedDebug/GNU-Linux/surelog+0xf72c18)
    #14 0x55cf251f2db5 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/7/thread:234
    #15 0x55cf251f2c5f in std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> >::operator()() /usr/include/c++/7/thread:243
    #16 0x55cf251f2731 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void SURELOG::CompileDesign::compileMT_<SURELOG::FileContent, std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >, SURELOG::FunctorCreateLookup>(std::__debug::vector<std::pair<unsigned long, SURELOG::FileContent*>, std::allocator<std::pair<unsigned long, SURELOG::FileContent*> > >&, int)::{lambda()#1}> > >::_M_run() /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2522126a in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1080
    #2 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #3 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #4 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #5 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #6 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #7 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #8 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #9 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #10 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #11 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #12 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf25159bd2 in __gnu_cxx::new_allocator<SURELOG::ModuleInstance*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2515821e in std::allocator_traits<std::allocator<SURELOG::ModuleInstance*> >::allocate(std::allocator<SURELOG::ModuleInstance*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf251a1561 in std::__cxx1998::_Vector_base<SURELOG::ModuleInstance*, std::allocator<SURELOG::ModuleInstance*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf2519fd20 in void std::__cxx1998::vector<SURELOG::ModuleInstance*, std::allocator<SURELOG::ModuleInstance*> >::_M_realloc_insert<SURELOG::ModuleInstance* const&>(__gnu_cxx::__normal_iterator<SURELOG::ModuleInstance**, std::__cxx1998::vector<SURELOG::ModuleInstance*, std::allocator<SURELOG::ModuleInstance*> > >, SURELOG::ModuleInstance* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf2519ed22 in std::__cxx1998::vector<SURELOG::ModuleInstance*, std::allocator<SURELOG::ModuleInstance*> >::push_back(SURELOG::ModuleInstance* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2519e1c1 in std::__debug::vector<SURELOG::ModuleInstance*, std::allocator<SURELOG::ModuleInstance*> >::push_back(SURELOG::ModuleInstance* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf2522a149 in SURELOG::Design::addTopLevelModuleInstance(SURELOG::ModuleInstance*) DesignCompile/../SourceCompile/../Design/Design.h:60
    #8 0x55cf25217b9e in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:417
    #9 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #10 0x55cf2520d460 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:54
    #11 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #12 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #13 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #14 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #15 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #16 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #17 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 16 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #12 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #13 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #14 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #15 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #16 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #17 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #18 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #19 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf25357362 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:574
    #8 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #9 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #10 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #11 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #12 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #12 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #13 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #14 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #15 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #16 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #17 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #18 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #19 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #20 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #21 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #22 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #23 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fd72b6 in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int&&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf2535df9a in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::emplace_back<unsigned int>(unsigned int&&) /usr/include/c++/7/bits/vector.tcc:105
    #6 0x55cf2535c233 in void std::__debug::vector<unsigned int, std::allocator<unsigned int> >::emplace_back<unsigned int>(unsigned int&&) /usr/include/c++/7/debug/vector:489
    #7 0x55cf2535b427 in __gnu_cxx::__enable_if<!std::__are_same<unsigned int, bool>::__value, void>::__type std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back<unsigned int>(unsigned int&&) /usr/include/c++/7/debug/vector:478
    #8 0x55cf253566f5 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:467
    #9 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #10 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #11 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #12 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #13 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2522126a in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1080
    #2 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #3 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #4 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #5 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #6 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #7 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #8 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #9 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #10 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #11 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #12 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #12 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
    #1 0x55cf2522126a in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1080
    #2 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #3 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #4 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #5 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #6 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #7 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #8 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #9 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #10 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #11 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #12 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #13 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521b3ee in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:647
    #11 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #12 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #13 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #14 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #15 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #16 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #17 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #18 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #19 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 2 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #12 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #13 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #14 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #15 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #16 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #17 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #18 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #19 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf2516cb5e in __gnu_cxx::new_allocator<SURELOG::FileContent*>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf2516bf65 in std::allocator_traits<std::allocator<SURELOG::FileContent*> >::allocate(std::allocator<SURELOG::FileContent*>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf25168fa7 in std::__cxx1998::_Vector_base<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf251653a0 in void std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::_M_realloc_insert<SURELOG::FileContent* const&>(__gnu_cxx::__normal_iterator<SURELOG::FileContent**, std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> > >, SURELOG::FileContent* const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf25162654 in std::__cxx1998::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf2515fb61 in std::__debug::vector<SURELOG::FileContent*, std::allocator<SURELOG::FileContent*> >::push_back(SURELOG::FileContent* const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887a3 in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #12 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #13 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #14 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #15 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #16 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #17 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #18 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #19 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #20 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #21 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #22 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #23 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521d767 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:820
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #12 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #13 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #14 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #15 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #16 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #17 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #18 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #19 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #20 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #21 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #12 0x55cf2521c189 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:692
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521b3ee in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:647
    #11 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #12 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #13 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #14 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #15 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #16 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #17 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #18 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #19 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #20 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fbd17e in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int const&>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int const&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf24fb27f6 in std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/bits/stl_vector.h:948
    #6 0x55cf24fa7855 in std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) /usr/include/c++/7/debug/vector:467
    #7 0x55cf251887ba in SURELOG::DesignComponent::addFileContent(SURELOG::FileContent*, unsigned int) DesignCompile/../Design/DesignComponent.h:35
    #8 0x55cf25186570 in SURELOG::ModuleDefinition::ModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) Design/ModuleDefinition.cpp:26
    #9 0x55cf2518692e in SURELOG::ModuleDefinitionFactory::newModuleDefinition(SURELOG::FileContent*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) Design/ModuleDefinition.cpp:45
    #10 0x55cf2521d4f9 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:815
    #11 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #12 0x55cf25220e34 in SURELOG::DesignElaboration::elaborateInstance_(SURELOG::FileContent*, unsigned int, unsigned int, SURELOG::ModuleInstanceFactory*, SURELOG::ModuleInstance*, SURELOG::Config*) DesignCompile/DesignElaboration.cpp:1064
    #13 0x55cf25217d6b in SURELOG::DesignElaboration::elaborateModule_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SURELOG::FileContent*, bool) DesignCompile/DesignElaboration.cpp:423
    #14 0x55cf25216a9c in SURELOG::DesignElaboration::elaborateAllModules_(bool) DesignCompile/DesignElaboration.cpp:364
    #15 0x55cf2520d471 in SURELOG::DesignElaboration::elaborate() DesignCompile/DesignElaboration.cpp:55
    #16 0x55cf251b8800 in operator() DesignCompile/CompileDesign.cpp:300
    #17 0x55cf251b9586 in __invoke_impl<void, SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:60
    #18 0x55cf251b8eed in __invoke<SURELOG::CompileDesign::elaboration_()::<lambda()> > /usr/include/c++/7/bits/invoke.h:95
    #19 0x55cf251b9d41 in _M_invoke<0> /usr/include/c++/7/thread:234
    #20 0x55cf251b9c9b in operator() /usr/include/c++/7/thread:243
    #21 0x55cf251b9b15 in _M_run /usr/include/c++/7/thread:186
    #22 0x7fd20499f57e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xbd57e)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7fd205371458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
    #1 0x55cf24fcfbc2 in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111
    #2 0x55cf24fca926 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #3 0x55cf24fc4947 in std::__cxx1998::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172
    #4 0x55cf24fd72b6 in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::_M_realloc_insert<unsigned int>(__gnu_cxx::__normal_iterator<unsigned int*, std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> > >, unsigned int&&) /usr/include/c++/7/bits/vector.tcc:406
    #5 0x55cf2535df9a in void std::__cxx1998::vector<unsigned int, std::allocator<unsigned int> >::emplace_back<unsigned int>(unsigned int&&) /usr/include/c++/7/bits/vector.tcc:105
    #6 0x55cf2535c233 in void std::__debug::vector<unsigned int, std::allocator<unsigned int> >::emplace_back<unsigned int>(unsigned int&&) /usr/include/c++/7/debug/vector:489
    #7 0x55cf2535b427 in __gnu_cxx::__enable_if<!std::__are_same<unsigned int, bool>::__value, void>::__type std::__debug::vector<unsigned int, std::allocator<unsigned int> >::push_back<unsigned int>(unsigned int&&) /usr/include/c++/7/debug/vector:478
    #8 0x55cf253567f6 in SURELOG::AnalyzeFile::analyze() SourceCompile/AnalyzeFile.cpp:473
    #9 0x55cf2538a8de in SURELOG::Compiler::parseinit_() SourceCompile/Compiler.cpp:273
    #10 0x55cf2538e290 in SURELOG::Compiler::compile() SourceCompile/Compiler.cpp:611
    #11 0x55cf25489320 in executeCompilation(int, char const**, bool, bool) /home/alain/surelog_base/SVIncCompil/main.cpp:47
    #12 0x55cf25489d41 in main /home/alain/surelog_base/SVIncCompil/main.cpp:133
    #13 0x7fd203f5cb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

SUMMARY: AddressSanitizer: 41725683 byte(s) leaked in 16825 allocation(s).
