address@hidden libgettextpo-test-loop-leak]$ valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all ./test ==3453761== Memcheck, a memory error detector ==3453761== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==3453761== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info ==3453761== Command: ./test ==3453761== ==3453761== Conditional jump or move depends on uninitialised value(s) ==3453761== at 0x4E71340: libgettextpo_freea (malloca.c:125) ==3453761== by 0x4E4F2AA: libgettextpo_po_lex_charset_set (po-charset.c:632) ==3453761== by 0x4E521A8: do_callback_message (po-gram-gen.y:106) ==3453761== by 0x4E521A8: po_gram_gen.c (po-gram-gen.y:204) ==3453761== by 0x4E5221A: po_parse (read-po.c:41) ==3453761== by 0x4E522E3: libgettextpo_catalog_reader_parse (read-catalog-abstract.c:179) ==3453761== by 0x4E53922: libgettextpo_read_catalog_stream (read-catalog.c:480) ==3453761== by 0x4E47E8B: po_file_read_v3 (gettext-po.c:124) ==3453761== by 0x400732: main (main.cpp:31) ==3453761== Uninitialised value was created by a stack allocation ==3453761== at 0x4E4F1BF: libgettextpo_po_lex_charset_set (po-charset.c:473) ==3453761== ==3453761== Conditional jump or move depends on uninitialised value(s) ==3453761== at 0x4E71340: libgettextpo_freea (malloca.c:125) ==3453761== by 0x4E4A954: libgettextpo_message_list_search (message.c:532) ==3453761== by 0x4E53636: libgettextpo_default_add_message (read-catalog.c:356) ==3453761== by 0x4E532F7: call_add_message (read-catalog.c:64) ==3453761== by 0x4E532F7: libgettextpo_default_directive_message (read-catalog.c:248) ==3453761== by 0x4E5241D: call_directive_message (read-catalog-abstract.c:107) ==3453761== by 0x4E5241D: libgettextpo_po_callback_message (read-catalog-abstract.c:219) ==3453761== by 0x4E51919: do_callback_message (po-gram-gen.y:108) ==3453761== by 0x4E51919: po_gram_gen.c (po-gram-gen.y:204) ==3453761== by 0x4E5221A: po_parse (read-po.c:41) ==3453761== by 0x4E522E3: libgettextpo_catalog_reader_parse (read-catalog-abstract.c:179) ==3453761== by 0x4E53922: libgettextpo_read_catalog_stream (read-catalog.c:480) ==3453761== by 0x4E47E8B: po_file_read_v3 (gettext-po.c:124) ==3453761== by 0x400732: main (main.cpp:31) ==3453761== Uninitialised value was created by a stack allocation ==3453761== at 0x4E4A885: libgettextpo_message_list_search (message.c:513) ==3453761== ==3453761== Conditional jump or move depends on uninitialised value(s) ==3453761== at 0x4E71340: libgettextpo_freea (malloca.c:125) ==3453761== by 0x4E49DCF: message_list_hash_insert_entry (message.c:329) ==3453761== by 0x4E4A483: libgettextpo_message_list_append (message.c:349) ==3453761== by 0x4E532F7: call_add_message (read-catalog.c:64) ==3453761== by 0x4E532F7: libgettextpo_default_directive_message (read-catalog.c:248) ==3453761== by 0x4E5241D: call_directive_message (read-catalog-abstract.c:107) ==3453761== by 0x4E5241D: libgettextpo_po_callback_message (read-catalog-abstract.c:219) ==3453761== by 0x4E51919: do_callback_message (po-gram-gen.y:108) ==3453761== by 0x4E51919: po_gram_gen.c (po-gram-gen.y:204) ==3453761== by 0x4E5221A: po_parse (read-po.c:41) ==3453761== by 0x4E522E3: libgettextpo_catalog_reader_parse (read-catalog-abstract.c:179) ==3453761== by 0x4E53922: libgettextpo_read_catalog_stream (read-catalog.c:480) ==3453761== by 0x4E47E8B: po_file_read_v3 (gettext-po.c:124) ==3453761== by 0x400732: main (main.cpp:31) ==3453761== Uninitialised value was created by a stack allocation ==3453761== at 0x4E49D0A: message_list_hash_insert_entry (message.c:312) ==3453761== ==3453761== ==3453761== HEAP SUMMARY: ==3453761== in use at exit: 105,010 bytes in 5,771 blocks ==3453761== total heap usage: 97,653 allocs, 91,882 frees, 6,488,764 bytes allocated ==3453761== ==3453761== 11 bytes in 1 blocks are still reachable in loss record 1 of 5 ==3453761== at 0x4C2EBAB: malloc (vg_replace_malloc.c:299) ==3453761== by 0x4E7662C: libgettextpo_xmalloc (xmalloc.c:65) ==3453761== by 0x4E76745: libgettextpo_xstrdup (xstrdup.c:40) ==3453761== by 0x4E5022F: libgettextpo_lex_start (po-lex.c:613) ==3453761== by 0x4E52215: po_parse (read-po.c:40) ==3453761== by 0x4E522E3: libgettextpo_catalog_reader_parse (read-catalog-abstract.c:179) ==3453761== by 0x4E53922: libgettextpo_read_catalog_stream (read-catalog.c:480) ==3453761== by 0x4E47E8B: po_file_read_v3 (gettext-po.c:124) ==3453761== by 0x400732: main (main.cpp:31) ==3453761== ==3453761== 99 bytes in 9 blocks are definitely lost in loss record 2 of 5 ==3453761== at 0x4C2EBAB: malloc (vg_replace_malloc.c:299) ==3453761== by 0x4E7662C: libgettextpo_xmalloc (xmalloc.c:65) ==3453761== by 0x4E76745: libgettextpo_xstrdup (xstrdup.c:40) ==3453761== by 0x4E5022F: libgettextpo_lex_start (po-lex.c:613) ==3453761== by 0x4E52215: po_parse (read-po.c:40) ==3453761== by 0x4E522E3: libgettextpo_catalog_reader_parse (read-catalog-abstract.c:179) ==3453761== by 0x4E53922: libgettextpo_read_catalog_stream (read-catalog.c:480) ==3453761== by 0x4E47E8B: po_file_read_v3 (gettext-po.c:124) ==3453761== by 0x400732: main (main.cpp:31) ==3453761== ==3453761== 200 bytes in 1 blocks are still reachable in loss record 3 of 5 ==3453761== at 0x4C30D05: realloc (vg_replace_malloc.c:785) ==3453761== by 0x4E766D1: libgettextpo_xrealloc (xmalloc.c:125) ==3453761== by 0x4E5045A: libgettextpo_po_gram_lex (po-lex.c:976) ==3453761== by 0x4E510D1: po_gram_gen.c (po-gram-gen.c:1294) ==3453761== by 0x4E5221A: po_parse (read-po.c:41) ==3453761== by 0x4E522E3: libgettextpo_catalog_reader_parse (read-catalog-abstract.c:179) ==3453761== by 0x4E53922: libgettextpo_read_catalog_stream (read-catalog.c:480) ==3453761== by 0x4E47E8B: po_file_read_v3 (gettext-po.c:124) ==3453761== by 0x400732: main (main.cpp:31) ==3453761== ==3453761== 7,270 bytes in 80 blocks are definitely lost in loss record 4 of 5 ==3453761== at 0x4C2EBAB: malloc (vg_replace_malloc.c:299) ==3453761== by 0x4E7662C: libgettextpo_xmalloc (xmalloc.c:65) ==3453761== by 0x4E498CB: libgettextpo_string_list_concat (str-list.c:144) ==3453761== by 0x4E49968: libgettextpo_string_list_concat_destroy (str-list.c:172) ==3453761== by 0x4E51F31: po_gram_gen.c (po-gram-gen.y:325) ==3453761== by 0x4E5221A: po_parse (read-po.c:41) ==3453761== by 0x4E522E3: libgettextpo_catalog_reader_parse (read-catalog-abstract.c:179) ==3453761== by 0x4E53922: libgettextpo_read_catalog_stream (read-catalog.c:480) ==3453761== by 0x4E47E8B: po_file_read_v3 (gettext-po.c:124) ==3453761== by 0x400732: main (main.cpp:31) ==3453761== ==3453761== 97,430 bytes in 5,680 blocks are definitely lost in loss record 5 of 5 ==3453761== at 0x4C2EBAB: malloc (vg_replace_malloc.c:299) ==3453761== by 0x4E7662C: libgettextpo_xmalloc (xmalloc.c:65) ==3453761== by 0x4E76745: libgettextpo_xstrdup (xstrdup.c:40) ==3453761== by 0x4E496D3: libgettextpo_string_list_append (str-list.c:74) ==3453761== by 0x4E519FE: po_gram_gen.c (po-gram-gen.y:417) ==3453761== by 0x4E5221A: po_parse (read-po.c:41) ==3453761== by 0x4E522E3: libgettextpo_catalog_reader_parse (read-catalog-abstract.c:179) ==3453761== by 0x4E53922: libgettextpo_read_catalog_stream (read-catalog.c:480) ==3453761== by 0x4E47E8B: po_file_read_v3 (gettext-po.c:124) ==3453761== by 0x400732: main (main.cpp:31) ==3453761== ==3453761== LEAK SUMMARY: ==3453761== definitely lost: 104,799 bytes in 5,769 blocks ==3453761== indirectly lost: 0 bytes in 0 blocks ==3453761== possibly lost: 0 bytes in 0 blocks ==3453761== still reachable: 211 bytes in 2 blocks ==3453761== suppressed: 0 bytes in 0 blocks ==3453761== ==3453761== For counts of detected and suppressed errors, rerun with: -v ==3453761== ERROR SUMMARY: 11533 errors from 6 contexts (suppressed: 0 from 0) address@hidden libgettextpo-test-loop-leak]$