public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug fortran/39577] New: False positive with -fcheck=recursion @ 2009-03-29 11:04 burnus at gcc dot gnu dot org 2009-03-29 11:21 ` [Bug fortran/39577] " dominiq at lps dot ens dot fr ` (4 more replies) 0 siblings, 5 replies; 6+ messages in thread From: burnus at gcc dot gnu dot org @ 2009-03-29 11:04 UTC (permalink / raw) To: gcc-bugs The following program is valid but with -fcheck=recursion the following error is shown: At line 1 of file aa.f90 Fortran runtime error: Recursive call to nonrecursive procedure 'test' There might be more such cases if one digs (entry? some strange label returns of F77? ...). But we might be lucky and everything is fixed at one place. Dump: goto __return_test; __return_test:; return __result_test; is_recursive.0 = 0; integer function test() test = 5 return ! not reachable end function test program main integer :: a a = test() a = test() end program main -- Summary: False positive with -fcheck=recursion Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39577 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/39577] False positive with -fcheck=recursion 2009-03-29 11:04 [Bug fortran/39577] New: False positive with -fcheck=recursion burnus at gcc dot gnu dot org @ 2009-03-29 11:21 ` dominiq at lps dot ens dot fr 2009-03-29 19:20 ` burnus at gcc dot gnu dot org ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: dominiq at lps dot ens dot fr @ 2009-03-29 11:21 UTC (permalink / raw) To: gcc-bugs ------- Comment #1 from dominiq at lps dot ens dot fr 2009-03-29 11:21 ------- Confirmed, the error seems to be due to the second call to test(): usual suspect = unitialized variable? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39577 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/39577] False positive with -fcheck=recursion 2009-03-29 11:04 [Bug fortran/39577] New: False positive with -fcheck=recursion burnus at gcc dot gnu dot org 2009-03-29 11:21 ` [Bug fortran/39577] " dominiq at lps dot ens dot fr @ 2009-03-29 19:20 ` burnus at gcc dot gnu dot org 2009-03-30 20:35 ` burnus at gcc dot gnu dot org ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: burnus at gcc dot gnu dot org @ 2009-03-29 19:20 UTC (permalink / raw) To: gcc-bugs ------- Comment #2 from burnus at gcc dot gnu dot org 2009-03-29 19:20 ------- > the error seems to be due to the second call to test(): > usual suspect = unitialized variable? No - the problem is a missing "is_recursive = 0" (see dump in comment 0). The problem is that the variable needs to be set in trans-stmt.c's gfc_trans_return while the variable is created in gfc_generate_function_code. The question is now, how to make the TREE available to gfc_trans_return. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39577 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/39577] False positive with -fcheck=recursion 2009-03-29 11:04 [Bug fortran/39577] New: False positive with -fcheck=recursion burnus at gcc dot gnu dot org 2009-03-29 11:21 ` [Bug fortran/39577] " dominiq at lps dot ens dot fr 2009-03-29 19:20 ` burnus at gcc dot gnu dot org @ 2009-03-30 20:35 ` burnus at gcc dot gnu dot org 2009-04-04 21:38 ` burnus at gcc dot gnu dot org 2009-04-04 21:46 ` burnus at gcc dot gnu dot org 4 siblings, 0 replies; 6+ messages in thread From: burnus at gcc dot gnu dot org @ 2009-03-30 20:35 UTC (permalink / raw) To: gcc-bugs ------- Comment #3 from burnus at gcc dot gnu dot org 2009-03-30 20:34 ------- I wonder whether a global variable (in trans-decl.c, exported in trans.h) is not the easiest. There can only be one procedure at a time. For the existing trans-decl.c one should put a if(!attr.function) as for functions the code is unreachable (the return happens earlier). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39577 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/39577] False positive with -fcheck=recursion 2009-03-29 11:04 [Bug fortran/39577] New: False positive with -fcheck=recursion burnus at gcc dot gnu dot org ` (2 preceding siblings ...) 2009-03-30 20:35 ` burnus at gcc dot gnu dot org @ 2009-04-04 21:38 ` burnus at gcc dot gnu dot org 2009-04-04 21:46 ` burnus at gcc dot gnu dot org 4 siblings, 0 replies; 6+ messages in thread From: burnus at gcc dot gnu dot org @ 2009-04-04 21:38 UTC (permalink / raw) To: gcc-bugs ------- Comment #4 from burnus at gcc dot gnu dot org 2009-04-04 21:38 ------- Subject: Bug 39577 Author: burnus Date: Sat Apr 4 21:38:12 2009 New Revision: 145552 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145552 Log: 2009-04-04 Tobias Burnus <burnus@net-b.de> PR fortran/39577 * trans-decl.c (gfc_generate_function_code): Move recursive check to the right position. 2009-04-04 Tobias Burnus <burnus@net-b.de> PR fortran/39577 * gfortran.dg/recursive_check_8.f90: New. * gfortran.dg/recursive_check_9.f90: New. * gfortran.dg/recursive_check_10.f90: New. * gfortran.dg/recursive_check_11.f90: New. * gfortran.dg/recursive_check_12.f90: New. * gfortran.dg/recursive_check_13.f90: New. * gfortran.dg/recursive_check_14.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/recursive_check_10.f90 trunk/gcc/testsuite/gfortran.dg/recursive_check_11.f90 trunk/gcc/testsuite/gfortran.dg/recursive_check_12.f90 trunk/gcc/testsuite/gfortran.dg/recursive_check_13.f90 trunk/gcc/testsuite/gfortran.dg/recursive_check_14.f90 trunk/gcc/testsuite/gfortran.dg/recursive_check_8.f90 trunk/gcc/testsuite/gfortran.dg/recursive_check_9.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-decl.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39577 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/39577] False positive with -fcheck=recursion 2009-03-29 11:04 [Bug fortran/39577] New: False positive with -fcheck=recursion burnus at gcc dot gnu dot org ` (3 preceding siblings ...) 2009-04-04 21:38 ` burnus at gcc dot gnu dot org @ 2009-04-04 21:46 ` burnus at gcc dot gnu dot org 4 siblings, 0 replies; 6+ messages in thread From: burnus at gcc dot gnu dot org @ 2009-04-04 21:46 UTC (permalink / raw) To: gcc-bugs ------- Comment #5 from burnus at gcc dot gnu dot org 2009-04-04 21:45 ------- FIXED on the trunk (4.5) -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39577 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-04-04 21:46 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-03-29 11:04 [Bug fortran/39577] New: False positive with -fcheck=recursion burnus at gcc dot gnu dot org 2009-03-29 11:21 ` [Bug fortran/39577] " dominiq at lps dot ens dot fr 2009-03-29 19:20 ` burnus at gcc dot gnu dot org 2009-03-30 20:35 ` burnus at gcc dot gnu dot org 2009-04-04 21:38 ` burnus at gcc dot gnu dot org 2009-04-04 21:46 ` burnus at gcc dot gnu dot org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).