public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/50547] New: dummy procedure argument of PURE shall be PURE
@ 2011-09-28 9:07 zeccav at gmail dot com
2011-09-28 19:29 ` [Bug fortran/50547] " janus at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: zeccav at gmail dot com @ 2011-09-28 9:07 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50547
Bug #: 50547
Summary: dummy procedure argument of PURE shall be PURE
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: zeccav@gmail.com
! dummy procedure argument of PURE shall be PURE
! Fortran 95 12.6 at page 212 lines 23-24
! Fortran 2003 C1269
! Fortran 2008 C1279
pure function f(proc)
interface
function proc()
end
end interface
end
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/50547] dummy procedure argument of PURE shall be PURE
2011-09-28 9:07 [Bug fortran/50547] New: dummy procedure argument of PURE shall be PURE zeccav at gmail dot com
@ 2011-09-28 19:29 ` janus at gcc dot gnu.org
2011-09-28 21:49 ` janus at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: janus at gcc dot gnu.org @ 2011-09-28 19:29 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50547
janus at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Keywords| |accepts-invalid
Last reconfirmed| |2011-09-28
CC| |janus at gcc dot gnu.org
AssignedTo|unassigned at gcc dot |janus at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #1 from janus at gcc dot gnu.org 2011-09-28 19:20:26 UTC ---
We do have such a check, we just need to trigger it. Draft patch:
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c (revision 179310)
+++ gcc/fortran/resolve.c (working copy)
@@ -269,8 +269,12 @@ resolve_formal_arglist (gfc_symbol *proc)
if (sym->attr.if_source != IFSRC_UNKNOWN)
resolve_formal_arglist (sym);
- if (sym->attr.subroutine || sym->attr.external || sym->attr.intrinsic)
+ if (sym->attr.subroutine || sym->attr.function || sym->attr.external
+ || sym->attr.intrinsic || sym->attr.flavor == FL_PROCEDURE)
{
+ /* Some checks for dummy procedures. */
+
+ /* Check for F08:C1279. */
if (gfc_pure (proc) && !gfc_pure (sym))
{
gfc_error ("Dummy procedure '%s' of PURE procedure at %L must "
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/50547] dummy procedure argument of PURE shall be PURE
2011-09-28 9:07 [Bug fortran/50547] New: dummy procedure argument of PURE shall be PURE zeccav at gmail dot com
2011-09-28 19:29 ` [Bug fortran/50547] " janus at gcc dot gnu.org
@ 2011-09-28 21:49 ` janus at gcc dot gnu.org
2011-09-29 11:52 ` janus at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: janus at gcc dot gnu.org @ 2011-09-28 21:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50547
--- Comment #2 from janus at gcc dot gnu.org 2011-09-28 21:40:30 UTC ---
This patch causes one testsuite failure on elemental_args_check_2.f90, due to a
slightly changed error message.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/50547] dummy procedure argument of PURE shall be PURE
2011-09-28 9:07 [Bug fortran/50547] New: dummy procedure argument of PURE shall be PURE zeccav at gmail dot com
2011-09-28 19:29 ` [Bug fortran/50547] " janus at gcc dot gnu.org
2011-09-28 21:49 ` janus at gcc dot gnu.org
@ 2011-09-29 11:52 ` janus at gcc dot gnu.org
2011-09-29 12:13 ` janus at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: janus at gcc dot gnu.org @ 2011-09-29 11:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50547
--- Comment #3 from janus at gcc dot gnu.org 2011-09-29 11:23:52 UTC ---
Here is a better version which is regression-free:
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c (revision 179338)
+++ gcc/fortran/resolve.c (working copy)
@@ -269,18 +269,21 @@
if (sym->attr.if_source != IFSRC_UNKNOWN)
resolve_formal_arglist (sym);
+ /* F08:C1279. */
+ if (gfc_pure (proc)
+ && sym->attr.flavor == FL_PROCEDURE && !gfc_pure (sym))
+ {
+ gfc_error ("Dummy procedure '%s' of PURE procedure at %L must "
+ "also be PURE", sym->name, &sym->declared_at);
+ continue;
+ }
+
if (sym->attr.subroutine || sym->attr.external || sym->attr.intrinsic)
{
- if (gfc_pure (proc) && !gfc_pure (sym))
- {
- gfc_error ("Dummy procedure '%s' of PURE procedure at %L must "
- "also be PURE", sym->name, &sym->declared_at);
- continue;
- }
-
if (proc->attr.implicit_pure && !gfc_pure(sym))
proc->attr.implicit_pure = 0;
Will commit as obvious.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/50547] dummy procedure argument of PURE shall be PURE
2011-09-28 9:07 [Bug fortran/50547] New: dummy procedure argument of PURE shall be PURE zeccav at gmail dot com
` (2 preceding siblings ...)
2011-09-29 11:52 ` janus at gcc dot gnu.org
@ 2011-09-29 12:13 ` janus at gcc dot gnu.org
2011-09-29 12:21 ` janus at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: janus at gcc dot gnu.org @ 2011-09-29 12:13 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50547
--- Comment #4 from janus at gcc dot gnu.org 2011-09-29 11:57:40 UTC ---
Author: janus
Date: Thu Sep 29 11:57:35 2011
New Revision: 179345
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179345
Log:
2011-09-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/50547
* resolve.c (resolve_formal_arglist): Fix pureness check for dummy
functions.
PR fortran/50553
* symbol.c (check_conflict): Forbid TARGET attribute for statement
functions.
2011-09-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/50547
* gfortran.dg/pure_formal_proc_3.f90: New.
PR fortran/50553
* gfortran.dg/stfunc_7.f90: New.
Added:
trunk/gcc/testsuite/gfortran.dg/pure_formal_proc_3.f90
trunk/gcc/testsuite/gfortran.dg/stfunc_7.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/symbol.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/50547] dummy procedure argument of PURE shall be PURE
2011-09-28 9:07 [Bug fortran/50547] New: dummy procedure argument of PURE shall be PURE zeccav at gmail dot com
` (3 preceding siblings ...)
2011-09-29 12:13 ` janus at gcc dot gnu.org
@ 2011-09-29 12:21 ` janus at gcc dot gnu.org
2011-10-16 19:17 ` janus at gcc dot gnu.org
2011-10-16 19:25 ` janus at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: janus at gcc dot gnu.org @ 2011-09-29 12:21 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50547
--- Comment #5 from janus at gcc dot gnu.org 2011-09-29 12:14:03 UTC ---
Comment #0 is fixed with r179345.
I noticed that in 'resolve_formal_arglist' there are two separate checks for
procedure dummies in elemental procedures (for functions/subroutines). Those
clearly could be unified.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/50547] dummy procedure argument of PURE shall be PURE
2011-09-28 9:07 [Bug fortran/50547] New: dummy procedure argument of PURE shall be PURE zeccav at gmail dot com
` (4 preceding siblings ...)
2011-09-29 12:21 ` janus at gcc dot gnu.org
@ 2011-10-16 19:17 ` janus at gcc dot gnu.org
2011-10-16 19:25 ` janus at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: janus at gcc dot gnu.org @ 2011-10-16 19:17 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50547
--- Comment #6 from janus at gcc dot gnu.org 2011-10-16 19:17:03 UTC ---
Author: janus
Date: Sun Oct 16 19:16:59 2011
New Revision: 180061
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180061
Log:
2011-10-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/50547
* resolve.c (resolve_formal_arglist): Remove unneeded error message.
Some reshuffling.
2011-10-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/50547
* gfortran.dg/elemental_args_check_4.f90: New.
Added:
trunk/gcc/testsuite/gfortran.dg/elemental_args_check_4.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug fortran/50547] dummy procedure argument of PURE shall be PURE
2011-09-28 9:07 [Bug fortran/50547] New: dummy procedure argument of PURE shall be PURE zeccav at gmail dot com
` (5 preceding siblings ...)
2011-10-16 19:17 ` janus at gcc dot gnu.org
@ 2011-10-16 19:25 ` janus at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: janus at gcc dot gnu.org @ 2011-10-16 19:25 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50547
janus at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #7 from janus at gcc dot gnu.org 2011-10-16 19:24:35 UTC ---
Finally closing this one.
> I noticed that in 'resolve_formal_arglist' there are two separate checks for
> procedure dummies in elemental procedures (for functions/subroutines). Those
> clearly could be unified.
Done with r180061. Finally closing this one.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-10-16 19:25 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-28 9:07 [Bug fortran/50547] New: dummy procedure argument of PURE shall be PURE zeccav at gmail dot com
2011-09-28 19:29 ` [Bug fortran/50547] " janus at gcc dot gnu.org
2011-09-28 21:49 ` janus at gcc dot gnu.org
2011-09-29 11:52 ` janus at gcc dot gnu.org
2011-09-29 12:13 ` janus at gcc dot gnu.org
2011-09-29 12:21 ` janus at gcc dot gnu.org
2011-10-16 19:17 ` janus at gcc dot gnu.org
2011-10-16 19:25 ` janus at gcc dot gnu.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).