------- Comment #6 from janus at gcc dot gnu dot org 2010-01-28 10:29 ------- (In reply to comment #5) > I think the relevant part is: > http://gcc.gnu.org/viewcvs/trunk/gcc/fortran/trans-stmt.c?r1=152345&r2=152344&pathrev=152345 > -- especially around "Add default initializer for those derived types that > need > them"
Yes, I think this is correct. The commit moved that part from resolve_allocate_expr (resolve.c) to gfc_trans_allocate (trans-stmt.c) and modified it a bit. The backtrace is: #0 fold_convert_loc (loc=0, type=0x7ffff7e83498, arg=0x7ffff7f65060) at /home/jweil/gcc45/trunk/gcc/fold-const.c:2669 #1 0x00000000005a088a in gfc_trans_scalar_assign (lse=0x7fffffffd4d0, rse=0x7fffffffd520, ts=..., l_is_temp=1 '\001', r_is_var=0 '\000') at /home/jweil/gcc45/trunk/gcc/fortran/trans-expr.c:4840 #2 0x000000000059e7eb in gfc_trans_subcomponent_assign (dest=0x7ffff7f6c4c0, cm=0x17deab0, expr=0x17dc890) at /home/jweil/gcc45/trunk/gcc/fortran/trans-expr.c:4224 #3 0x000000000059e9ce in gfc_trans_structure_assign (dest=0x7ffff7f6b5a0, expr=0x17dc720) at /home/jweil/gcc45/trunk/gcc/fortran/trans-expr.c:4265 #4 0x000000000059eaec in gfc_conv_structure (se=0x7fffffffd780, expr=0x17dc720, init=0) at /home/jweil/gcc45/trunk/gcc/fortran/trans-expr.c:4292 #5 0x000000000059f2f4 in gfc_conv_expr (se=0x7fffffffd780, expr=0x17dc720) at /home/jweil/gcc45/trunk/gcc/fortran/trans-expr.c:4441 #6 0x000000000056d46b in gfc_add_loop_ss_code (loop=0x7fffffffd940, ss=0x17dce70, subscript=0 '\000', where=0x17dc770) at /home/jweil/gcc45/trunk/gcc/fortran/trans-array.c:2028 #7 0x0000000000572a92 in gfc_conv_loop_setup (loop=0x7fffffffd940, where=0x17dc770) at /home/jweil/gcc45/trunk/gcc/fortran/trans-array.c:3722 #8 0x00000000005a1b95 in gfc_trans_assignment_1 (expr1=0x17dc980, expr2=0x17dc720, init_flag=1 '\001') at /home/jweil/gcc45/trunk/gcc/fortran/trans-expr.c:5232 #9 0x00000000005a2316 in gfc_trans_assignment (expr1=0x17dc980, expr2=0x17dc720, init_flag=1 '\001') at /home/jweil/gcc45/trunk/gcc/fortran/trans-expr.c:5434 #10 0x00000000005d3bb7 in gfc_trans_allocate (code=0x17df760) at /home/jweil/gcc45/trunk/gcc/fortran/trans-stmt.c:4183 #11 0x000000000056759a in gfc_trans_code (code=0x17df760) at /home/jweil/gcc45/trunk/gcc/fortran/trans.c:1203 #12 0x0000000000591abd in gfc_generate_function_code (ns=0x17dd350) at /home/jweil/gcc45/trunk/gcc/fortran/trans-decl.c:4373 #13 0x00000000005678a9 in gfc_generate_code (ns=0x17dd350) at /home/jweil/gcc45/trunk/gcc/fortran/trans.c:1311 #14 0x0000000000516f59 in gfc_parse_file () at /home/jweil/gcc45/trunk/gcc/fortran/parse.c:4226 #15 0x0000000000556c1f in gfc_be_parse_file (set_yydebug=0) at /home/jweil/gcc45/trunk/gcc/fortran/f95-lang.c:239 #16 0x0000000000a00f3e in compile_file () at /home/jweil/gcc45/trunk/gcc/toplev.c:1053 #17 0x0000000000a03161 in do_compile () at /home/jweil/gcc45/trunk/gcc/toplev.c:2405 #18 0x0000000000a03237 in toplev_main (argc=2, argv=0x7fffffffe2c8) at /home/jweil/gcc45/trunk/gcc/toplev.c:2447 #19 0x00000000005dd404 in main (argc=2, argv=0x7fffffffe2c8) at /home/jweil/gcc45/trunk/gcc/main.c:35 Unfortunately I don't see what goes wrong right away (I'm no expert for initializers). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42888