URL
                    https://opencores.org/ocsvn/openrisc/openrisc/trunk
                
            Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [recursive_check_6.f03] - Rev 694
Compare with Previous | Blame | View Log
! { dg-do compile }! PR fortran/37779! Check that a call to a procedure's containing procedure counts as recursive! and is rejected if the containing procedure is not RECURSIVE.MODULE mIMPLICIT NONECONTAINSSUBROUTINE test_sub ()CALL bar ()CONTAINSSUBROUTINE bar ()IMPLICIT NONEPROCEDURE(test_sub), POINTER :: procptrCALL test_sub () ! { dg-error "not RECURSIVE" }procptr => test_sub ! { dg-warning "Non-RECURSIVE" }CALL foobar (test_sub) ! { dg-warning "Non-RECURSIVE" }END SUBROUTINE barEND SUBROUTINE test_subINTEGER FUNCTION test_func () RESULT (x)x = bar ()CONTAINSINTEGER FUNCTION bar ()IMPLICIT NONEPROCEDURE(test_func), POINTER :: procptrbar = test_func () ! { dg-error "not RECURSIVE" }procptr => test_func ! { dg-warning "Non-RECURSIVE" }CALL foobar (test_func) ! { dg-warning "Non-RECURSIVE" }END FUNCTION barEND FUNCTION test_funcSUBROUTINE sub_entries ()ENTRY sub_entry_1 ()ENTRY sub_entry_2 ()CALL bar ()CONTAINSSUBROUTINE bar ()CALL sub_entry_1 () ! { dg-error "is not RECURSIVE" }END SUBROUTINE barEND SUBROUTINE sub_entriesINTEGER FUNCTION func_entries () RESULT (x)ENTRY func_entry_1 () RESULT (x)ENTRY func_entry_2 () RESULT (x)x = bar ()CONTAINSINTEGER FUNCTION bar ()bar = func_entry_1 () ! { dg-error "is not RECURSIVE" }END FUNCTION barEND FUNCTION func_entriesSUBROUTINE main ()CALL test_sub ()CALL sub_entries ()PRINT *, test_func (), func_entries ()END SUBROUTINE mainEND MODULE m! { dg-final { cleanup-modules "m" } }
