https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62242
Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-08-24 CC| |Joost.VandeVondele at mat dot ethz | |.ch Component|fortran |middle-end Summary|ICE with character function |ICE in expand_expr_real_1 |in expression | Ever confirmed|0 |1 Known to fail| |4.6.0, 4.7.0, 4.8.0, 4.9.0, | |5.0 --- Comment #1 from Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> --- confirmed with current trunk and 4.6 - 4.9 module gfbug contains pure function UpperCase(string) result(upper) character(*), intent(IN) :: string character(LEN(string)) :: upper do i = 1, LEN_TRIM(upper) enddo end function pure function isNotElementOf(scalar, array) result(status) logical :: status character(*), intent(IN) :: scalar, array(:) status = .NOT. ANY(UpperCase(scalar) == [(UpperCase(array(i)), & i = 1, SIZE(array))]) end function end module gfbug This ICE is actually not in the Fortran Frontend, but rather some later pass 0x7f93fd expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/gcc/expr.c:9497 0x7016f0 expand_normal ../../gcc/gcc/expr.h:458 0x7016f0 precompute_register_parameters ../../gcc/gcc/calls.c:831 0x7016f0 expand_call(tree_node*, rtx_def*, int) ../../gcc/gcc/calls.c:3012 0x7f892e expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/gcc/expr.c:10385 0x804d50 store_expr(tree_node*, rtx_def*, int, bool) ../../gcc/gcc/expr.c:5318 0x807b9a expand_assignment(tree_node*, tree_node*, bool) ../../gcc/gcc/expr.c:5104 0x711800 expand_call_stmt ../../gcc/gcc/cfgexpand.c:2316 0x711800 expand_gimple_stmt_1 ../../gcc/gcc/cfgexpand.c:3213 0x711800 expand_gimple_stmt ../../gcc/gcc/cfgexpand.c:3371 0x7174f7 expand_gimple_basic_block ../../gcc/gcc/cfgexpand.c:5210 0x71919a execute ../../gcc/gcc/cfgexpand.c:5816