https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89904

--- Comment #6 from seurer at gcc dot gnu.org ---
Actually, it is the opposite.

With 24-33 commented out:

seurer@makalu-lp1:~/gcc/build/gcc-test$ cat
/home/seurer/gcc/gcc-test/gcc/testsuite/gfortran.dg/pr85797.f90
. . .
! module m
! contains
!   function f () result (z)      ! { dg-warning "Return value" }
!     class(*), pointer :: z
!   end function f
!   recursive subroutine s (q)
!     procedure(f) :: q
!     call s (q)
!   end subroutine s
! end
seurer@makalu-lp1:~/gcc/build/gcc-test$
/home/seurer/gcc/build/gcc-test/gcc/testsuite/gfortran/../../gfortran
-B/home/seurer/gcc/build/gcc-test/gcc/testsuite/gfortran/../../
-B/home/seurer/gcc/build/gcc-test/powerpc64-unknown-linux-gnu/./libgfortran/
/home/seurer/gcc/gcc-test/gcc/testsuite/gfortran.dg/pr85797.f90
-fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers
-fdiagnostics-color=never -O -Wall -S -o pr85797.s
/home/seurer/gcc/gcc-test/gcc/testsuite/gfortran.dg/pr85797.f90:7:16: Warning:
Non-RECURSIVE procedure 'a' at (1) is possibly calling itself recursively. 
Declare it RECURSIVE or use '-frecursive'
during GIMPLE pass: ccp
/home/seurer/gcc/gcc-test/gcc/testsuite/gfortran.dg/pr85797.f90:22:0: internal
compiler error: in fold_convert_loc, at fold-const.c:2552
0x106a8b87 fold_convert_loc(unsigned int, tree_node*, tree_node*)
        /home/seurer/gcc/gcc-test/gcc/fold-const.c:2552
0x10e9e8fb build_zero_cst(tree_node*)
        /home/seurer/gcc/gcc-test/gcc/tree.c:2382
0x10c592fb evaluate_stmt
        /home/seurer/gcc/gcc-test/gcc/tree-ssa-ccp.c:1997
0x10c5aa63 visit_assignment
        /home/seurer/gcc/gcc-test/gcc/tree-ssa-ccp.c:2352
0x10c5acfb ccp_propagate::visit_stmt(gimple*, edge_def**, tree_node**)
        /home/seurer/gcc/gcc-test/gcc/tree-ssa-ccp.c:2430
0x10d13433 ssa_propagation_engine::simulate_stmt(gimple*)
        /home/seurer/gcc/gcc-test/gcc/tree-ssa-propagate.c:230
0x10d138cb ssa_propagation_engine::simulate_block(basic_block_def*)
        /home/seurer/gcc/gcc-test/gcc/tree-ssa-propagate.c:337
0x10d159a3 ssa_propagation_engine::ssa_propagate()
        /home/seurer/gcc/gcc-test/gcc/tree-ssa-propagate.c:802
0x10c5399f do_ssa_ccp
        /home/seurer/gcc/gcc-test/gcc/tree-ssa-ccp.c:2471
0x10c5399f execute
        /home/seurer/gcc/gcc-test/gcc/tree-ssa-ccp.c:2515


With the rest commented out but not lines 24-33:

seurer@makalu-lp1:~/gcc/build/gcc-test$ cat
/home/seurer/gcc/gcc-test/gcc/testsuite/gfortran.dg/pr85797.f90
. . .
! subroutine a
!   c = transfer (a, b)           ! { dg-warning "Non-RECURSIVE procedure" }
! end
! 
! recursive subroutine d
!   c = transfer (d, b)
! end
! 
! recursive subroutine e
!   k = transfer (transfer (e, e), 1)
! end
! 
! subroutine f
!   use, intrinsic :: iso_c_binding
!   integer(c_intptr_t) :: b, c
!   c = transfer (transfer (b, a), b)
! end

module m
. . .
seurer@makalu-lp1:~/gcc/build/gcc-test$
/home/seurer/gcc/build/gcc-test/gcc/testsuite/gfortran/../../gfortran
-B/home/seurer/gcc/build/gcc-test/gcc/testsuite/gfortran/../../
-B/home/seurer/gcc/build/gcc-test/powerpc64-unknown-linux-gnu/./libgfortran/
/home/seurer/gcc/gcc-test/gcc/testsuite/gfortran.dg/pr85797.f90
-fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers
-fdiagnostics-color=never -O -Wall -S -o pr85797.s
a->name=='(null)'
/home/seurer/gcc/gcc-test/gcc/testsuite/gfortran.dg/pr85797.f90:26:26: Warning:
Return value 'z' of function 'f' declared at (1) not set [-Wreturn-type]
seurer@makalu-lp1:~/gcc/build/gcc-test$

Reply via email to