------- Comment #10 from jvdelisle at gcc dot gnu dot org 2010-04-13 04:31 ------- With current trunk (4.6) I see this:
$ valgrind --leak-check=full f951 parameter_array_init_4.f90 --- snip --- ==12209== 48 bytes in 6 blocks are definitely lost in loss record 21 of 352 ==12209== at 0x4A0515D: malloc (vg_replace_malloc.c:195) ==12209== by 0x36F3809F38: __gmp_default_allocate (in /usr/lib64/libgmp.so.3.5.0) ==12209== by 0x36F381A17D: __gmpz_init_set (in /usr/lib64/libgmp.so.3.5.0) ==12209== by 0x4B20C9: gfc_copy_shape (expr.c:373) ==12209== by 0x4B2353: gfc_copy_expr (expr.c:556) ==12209== by 0x4B5567: simplify_parameter_variable (expr.c:1633) ==12209== by 0x4B5317: gfc_simplify_expr (expr.c:1744) ==12209== by 0x4B5236: gfc_simplify_expr (expr.c:882) ==12209== by 0x4FE188: resolve_operator (resolve.c:3584) ==12209== by 0x4F8C04: gfc_resolve_expr (resolve.c:5587) ==12209== by 0x4FDFF2: resolve_operator (resolve.c:3316) ==12209== by 0x4F8C04: gfc_resolve_expr (resolve.c:5587) ==12209== ==12209== 72 bytes in 9 blocks are definitely lost in loss record 202 of 352 ==12209== at 0x4A0515D: malloc (vg_replace_malloc.c:195) ==12209== by 0x36F3809F38: __gmp_default_allocate (in /usr/lib64/libgmp.so.3.5.0) ==12209== by 0x36F381A17D: __gmpz_init_set (in /usr/lib64/libgmp.so.3.5.0) ==12209== by 0x4B20C9: gfc_copy_shape (expr.c:373) ==12209== by 0x4B2353: gfc_copy_expr (expr.c:556) ==12209== by 0x4B5567: simplify_parameter_variable (expr.c:1633) ==12209== by 0x4B5317: gfc_simplify_expr (expr.c:1744) ==12209== by 0x4B5236: gfc_simplify_expr (expr.c:882) ==12209== by 0x4FE188: resolve_operator (resolve.c:3584) ==12209== by 0x4F8C04: gfc_resolve_expr (resolve.c:5587) ==12209== by 0x4FE04B: resolve_operator (resolve.c:3307) ==12209== by 0x4F8C04: gfc_resolve_expr (resolve.c:5587) ==12209== ==12209== 158 bytes in 1 blocks are definitely lost in loss record 276 of 352 ==12209== at 0x4A04481: calloc (vg_replace_malloc.c:418) ==12209== by 0xC8DE48: xcalloc (xmalloc.c:162) ==12209== by 0x625854: init_emit (emit-rtl.c:5566) ==12209== by 0x6B9EC7: prepare_function_start (function.c:4183) ==12209== by 0x6B9F68: init_function_start (function.c:4231) ==12209== by 0x5373CD: trans_function_start (trans-decl.c:1928) ==12209== by 0x540976: gfc_generate_function_code (trans-decl.c:4292) ==12209== by 0x4ECC9B: gfc_parse_file (parse.c:4226) ==12209== by 0x521BF7: gfc_be_parse_file (f95-lang.c:239) ==12209== by 0x80A2BB: do_compile (toplev.c:1053) ==12209== by 0x80A9FD: toplev_main (toplev.c:2459) ==12209== by 0x36EE81EB1C: (below main) (libc-start.c:226) ==12209== ==12209== 158 bytes in 1 blocks are definitely lost in loss record 277 of 352 ==12209== at 0x4A04481: calloc (vg_replace_malloc.c:418) ==12209== by 0xC8DE48: xcalloc (xmalloc.c:162) ==12209== by 0x625854: init_emit (emit-rtl.c:5566) ==12209== by 0x6B9EC7: prepare_function_start (function.c:4183) ==12209== by 0x6B9F68: init_function_start (function.c:4231) ==12209== by 0x54122C: gfc_generate_function_code (trans-decl.c:4105) ==12209== by 0x4ECC9B: gfc_parse_file (parse.c:4226) ==12209== by 0x521BF7: gfc_be_parse_file (f95-lang.c:239) ==12209== by 0x80A2BB: do_compile (toplev.c:1053) ==12209== by 0x80A9FD: toplev_main (toplev.c:2459) ==12209== by 0x36EE81EB1C: (below main) (libc-start.c:226) ==12209== -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36534