With this invalid code: module test contains function gx(l) implicit none integer, intent(in) :: l integer, external :: fx real(8) :: gx gx=fx(l)**2/(2*(2*l + 1)) end function gx end module test function fx(l) implicit none integer, intent(in) :: l real(8) :: fx fx = l end function fx I get $ ./f951 -quiet z.f90 z.f90:3:0: function gx(l) Error: type mismatch in binary expression integer(kind=4) real(kind=8) integer(kind=4) _5 = D.3778 / _4; z.f90:3:0: internal compiler error: verify_gimple failed 0xf9791e verify_gimple_in_seq(gimple*) /home/marek/src/gcc/gcc/tree-cfg.c:5021 0xc13c82 gimplify_body(tree_node*, bool) /home/marek/src/gcc/gcc/gimplify.c:12715 0xc14162 gimplify_function_tree(tree_node*) /home/marek/src/gcc/gcc/gimplify.c:12805 0x9d7e94 cgraph_node::analyze() /home/marek/src/gcc/gcc/cgraphunit.c:670 0x9d9779 analyze_functions /home/marek/src/gcc/gcc/cgraphunit.c:1131 0x9de439 symbol_table::finalize_compilation_unit() /home/marek/src/gcc/gcc/cgraphunit.c:2691 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.
And with -fno-checking: t.f90:8:0: gx=fx(l)**2/(2*(2*l + 1)) internal compiler error: in convert_move, at expr.c:229 Please submit a full bug report, with preprocessed source if appropriate. See <http://bugs.opensuse.org/> for instructions.