------- Comment #2 from mikael at gcc dot gnu dot org 2008-12-16 15:35 -------
Yes, confirmed.
The offending line is:
call foo(func("_"//bar()))
In trans-expr.c, se->loop is NULL in the gcc_assert:
2844 else if (sym->result->attr.dimension)
2845 {
2846 gcc_assert (se->loop && info);
2847
2848 /* Set the type of the array. */
2849 tmp = gfc_typenode_for_spec (&ts);
2850 info->dimen = se->loop->dimen;
2851
backtrace:
(gdb) bt
#0 fancy_abort (file=0xbe0240 "../../src/gcc/fortran/trans-expr.c",
line=2846, function=0xbe0b40 "gfc_conv_function_call")
at ../../src/gcc/diagnostic.c:711
#1 0x00000000004b2e0a in gfc_conv_function_call (se=0x7fff89088320,
sym=0x2738da0, arg=<value optimized out>,
append_args=<value optimized out>)
at ../../src/gcc/fortran/trans-expr.c:2846
#2 0x00000000004b367b in gfc_conv_function_expr (se=0x7fff89088320,
expr=<value optimized out>) at ../../src/gcc/fortran/trans-expr.c:3345
#3 0x00000000004b61d4 in gfc_conv_expr_op (se=0x7fff890884a0, expr=0x27426e0)
at ../../src/gcc/fortran/trans-expr.c:1147
#4 0x00000000004b7943 in gfc_conv_string_length (cl=0x2740dd0,
expr=<value optimized out>, pblock=0x7fff89088870)
at ../../src/gcc/fortran/trans-expr.c:328
#5 0x000000000049cd14 in gfc_conv_expr_descriptor (se=<value optimized out>,
expr=<value optimized out>, ss=0x2742380)
at ../../src/gcc/fortran/trans-array.c:4929
#6 0x00000000004bd987 in gfc_conv_intrinsic_len (se=0x7fff89088d90,
expr=<value optimized out>) at ../../src/gcc/fortran/trans-intrinsic.c:2906
#7 0x00000000004c01d4 in gfc_conv_intrinsic_function (se=0x7fff89088d90,
expr=0x2741c70) at ../../src/gcc/fortran/trans-intrinsic.c:4682
#8 0x00000000004b3633 in gfc_conv_function_expr (se=0x7fff89088d90,
expr=0xb1e) at ../../src/gcc/fortran/trans-expr.c:3328
#9 0x00000000004b76ea in gfc_apply_interface_mapping (mapping=0x7fff89088e30,
se=0x7fff89088d90, expr=0x2741c70)
at ../../src/gcc/fortran/trans-expr.c:2145
#10 0x000000000049d5bf in gfc_conv_expr_descriptor (se=<value optimized out>,
expr=<value optimized out>, ss=0x27416b0)
at ../../src/gcc/fortran/trans-array.c:4721
#11 0x00000000004a06a3 in gfc_conv_array_parameter (se=0x7fff89089030,
expr=0x2702b90, ss=0x27416b0, g77=<value optimized out>, fsym=0x273add0,
proc_name=0x7fff89087bb0 "") at ../../src/gcc/fortran/trans-array.c:5277
#12 0x00000000004b22d4 in gfc_conv_function_call (se=0x7fff890895f0,
sym=0x273ab60, arg=0x26b27b0, append_args=<value optimized out>)
at ../../src/gcc/fortran/trans-expr.c:2691
#13 0x00000000004cf8df in gfc_trans_call (code=<value optimized out>,
dependency_check=0 '\0') at ../../src/gcc/fortran/trans-stmt.c:356
#14 0x00000000004943c5 in gfc_trans_code (code=0x2738340)
at ../../src/gcc/fortran/trans.c:1117
#15 0x00000000004abe6d in gfc_generate_function_code (ns=0x2737200)
at ../../src/gcc/fortran/trans-decl.c:3843
#16 0x0000000000493a33 in gfc_generate_module_code (ns=<value optimized out>)
at ../../src/gcc/fortran/trans.c:1319
#17 0x0000000000461624 in gfc_parse_file ()
at ../../src/gcc/fortran/parse.c:3855
#18 0x0000000000490c9d in gfc_be_parse_file (set_yydebug=<value optimized out>)
at ../../src/gcc/fortran/f95-lang.c:236
#19 0x000000000074545d in toplev_main (argc=<value optimized out>,
argv=<value optimized out>) at ../../src/gcc/toplev.c:970
#20 0x00007f6a80694526 in __libc_start_main () from /lib/libc.so.6
#21 0x0000000000405d19 in _start ()
--
mikael at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2008-12-16 15:35:45
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38538