The following test case function bug(self,strvec) result(res) character(*) :: self character(*), dimension(:), intent(in) :: strvec logical(kind=kind(.true.)) :: res
res = any(index(strvec,spread(self,1,size(strvec))) /= 0) end function triggers this ICE #0 0x0000000080070008 in gfc_conv_function_call (se=0x3ffffffdfc0, sym=0x8059e770, arg=0x8059d850) at ../../gcc-4_1/gcc/fortran/trans-expr.c:1542 #1 0x0000000080074256 in gfc_conv_intrinsic_funcall (se=0x3ffffffdfc0, expr=0x8059e040) at ../../gcc-4_1/gcc/fortran/trans-intrinsic.c:1257 #2 0x0000000080077220 in gfc_conv_intrinsic_function (se=0x3ffffffdfc0, expr=0x8059e040) at ../../gcc-4_1/gcc/fortran/trans-intrinsic.c:3256 #3 0x0000000080070576 in gfc_conv_function_expr (se=0x3ffffffdfc0, expr=0x8059d850) at ../../gcc-4_1/gcc/fortran/trans-expr.c:1951 #4 0x00000000800709e0 in gfc_conv_expr (se=0x3ffffffdfc0, expr=0x8059e040) at ../../gcc-4_1/gcc/fortran/trans-expr.c:2314 #5 0x0000000080066e5e in gfc_add_loop_ss_code (loop=0x3ffffffe1d0, ss=0x8059e470, subscript=0 '\0') at ../../gcc-4_1/gcc/fortran/trans-array.c:1480 #6 0x0000000080067346 in gfc_conv_loop_setup (loop=0x3ffffffe1d0) at ../../gcc-4_1/gcc/fortran/trans-array.c:2732 #7 0x00000000800743a2 in gfc_conv_intrinsic_anyall (se=0x3fffffff290, expr=0x80572730, op=101) at ../../gcc-4_1/gcc/fortran/trans-intrinsic.c:1323 #8 0x00000000800779e4 in gfc_conv_intrinsic_function (se=0x3fffffff290, expr=0x8059d3a0) at ../../gcc-4_1/gcc/fortran/trans-intrinsic.c:2991 #9 0x0000000080070576 in gfc_conv_function_expr (se=0x3fffffff290, expr=0x8059d850) at ../../gcc-4_1/gcc/fortran/trans-expr.c:1951 #10 0x00000000800709e0 in gfc_conv_expr (se=0x3fffffff290, expr=0x8059d3a0) at ../../gcc-4_1/gcc/fortran/trans-expr.c:2314 #11 0x0000000080072c86 in gfc_trans_assignment (expr1=0x8059d220, expr2=0x8059d3a0) at ../../gcc-4_1/gcc/fortran/trans-expr.c:2751 #12 0x00000000800730c8 in gfc_trans_assign (code=0x0) at ../../gcc-4_1/gcc/fortran/trans-expr.c:2813 #13 0x0000000080060a68 in gfc_trans_code (code=0x8059cb50) at ../../gcc-4_1/gcc/fortran/trans.c:493 #14 0x000000008006def8 in gfc_generate_function_code (ns=0x805654d0) at ../../gcc-4_1/gcc/fortran/trans-decl.c:2639 #15 0x0000000080060b60 in gfc_generate_code (ns=0x0) at ../../gcc-4_1/gcc/fortran/trans.c:659 #16 0x0000000080042bd0 in gfc_parse_file () at ../../gcc-4_1/gcc/fortran/parse.c:2680 #17 0x000000008005c0d0 in gfc_be_parse_file (set_yydebug=0) at ../../gcc-4_1/gcc/fortran/f95-lang.c:286 #18 0x00000000802648d0 in toplev_main (argc=7, argv=0x8055e6a0) at ../../gcc-4_1/gcc/toplev.c:990 #19 0x0000000080083fcc in main (argc=0, argv=0x0) at ../../gcc-4_1/gcc/main.c:35 in the line 1542 need_interface_mapping = ((sym->ts.type == BT_CHARACTER 1543 && sym->ts.cl->length->expr_type != EXPR_CONSTANT) 1544 || sym->attr.dimension); because sym->ts.cl->length is NULL. (gdb) print *sym $1 = {name = 0x8059ba7c "_gfortran_spread_char_scalar", module = 0x0, declared_at = {nextc = 0x80578268 "", lb = 0x80578240}, ts = {type = BT_CHARACTER, kind = 1, derived = 0x0, cl = 0x80572730}, attr = {allocatable = 0, dimension = 1, external = 1, intrinsic = 0, optional = 0, pointer = 0, save = 0, target = 0, dummy = 0, result = 0, assign = 0, data = 0, use_assoc = 0, in_namelist = 0, in_common = 0, in_equivalence = 0, function = 1, subroutine = 0, generic = 0, implicit_type = 0, untyped = 0, sequence = 0, elemental = 0, pure = 0, recursive = 0, unmaskable = 0, masked = 0, contained = 0, noreturn = 0, entry = 0, entry_master = 0, mixed_entry_master = 0, always_explicit = 1, referenced = 0, is_main_program = 0, access = ACCESS_UNKNOWN, intent = INTENT_UNKNOWN, flavor = FL_PROCEDURE, if_source = IFSRC_UNKNOWN, proc = PROC_INTRINSIC, cray_pointer = 0, cray_pointee = 0}, generic = 0x0, component_access = ACCESS_UNKNOWN, formal = 0x0, formal_ns = 0x0, value = 0x0, as = 0x8059e8a0, result = 0x8059e770, components = 0x0, cp_pointer = 0x0, common_next = 0x0, common_head = 0x0, dummy_order = 0, namelist = 0x0, namelist_tail = 0x0, old_symbol = 0x0, tlink = 0x0, mark = 0, new = 0, equiv_built = 0, refs = 0, ns = 0x0, backend_decl = 0x0} (gdb) print *sym->ts.cl $2 = {length = 0x0, next = 0x0, backend_decl = 0x200001f8460} -- Summary: Segmentation fault in gfc_conv_function_call Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: uweigand at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25416