------- Comment #7 from burnus at gcc dot gnu dot org 2008-11-12 22:37 ------- Looks as if the code is valid. Valgrind shows:
==2910== Invalid read of size 4 ==2910== at 0x4B1005: gfc_apply_interface_mapping_to_expr (trans-expr.c:1916) ==2910== by 0x4B6FBE: gfc_apply_interface_mapping (trans-expr.c:2133) ==2910== by 0x49D13E: gfc_conv_expr_descriptor (trans-array.c:4717) ==2910== by 0x4A033B: gfc_conv_array_parameter (trans-array.c:5272) ==2910== by 0x4B1A80: gfc_conv_function_call (trans-expr.c:2680) That line is: switch (expr->value.function.isym->id) { case GFC_ISYM_LEN: /* TODO figure out why this condition is necessary. */ if (sym->attr.function && arg1->ts.cl->length->expr_type != EXPR_CONSTANT && arg1->ts.cl->length->expr_type != EXPR_VARIABLE) // <- LINE 1916 The TODO was added by Paul in Rev. 130988. The cited bugreports were PR 31213, PR 33888 and PR 33998. -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Last reconfirmed|0000-00-00 00:00:00 |2008-11-12 22:37:24 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38095