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).