public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/54387] New: Proc-pointer: Wronlgy accepts non-proc result variable on the RHS of a pointer assignment
@ 2012-08-27 22:11 burnus at gcc dot gnu.org
2012-08-27 22:23 ` [Bug fortran/54387] " burnus at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-08-27 22:11 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54387
Bug #: 54387
Summary: Proc-pointer: Wronlgy accepts non-proc result variable
on the RHS of a pointer assignment
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Keywords: accepts-invalid
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: burnus@gcc.gnu.org
CC: janus@gcc.gnu.org
Found by James Van Buskirk in c.l.f's "Function questions?" thread:
https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.fortran/r4PVbtaBnFM
The following program is invalid as "foo" inside the function is the result
variable - hence "i => foo" doesn't make sense.
function foo()
integer :: foo
procedure(), pointer :: i
i => foo ! Invalid RHS - in this context "foo" the RESULT variable
! To use the procedure name, a RESULT(...) has to be specified
end
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/54387] Proc-pointer: Wronlgy accepts non-proc result variable on the RHS of a pointer assignment
2012-08-27 22:11 [Bug fortran/54387] New: Proc-pointer: Wronlgy accepts non-proc result variable on the RHS of a pointer assignment burnus at gcc dot gnu.org
@ 2012-08-27 22:23 ` burnus at gcc dot gnu.org
2012-09-12 9:17 ` [Bug fortran/54387] [F03] Wrongly accepts non-proc result variable on the RHS of a proc-pointer assignment janus at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-08-27 22:23 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54387
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu.org
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-08-27 22:23:31 UTC ---
As postscript: (Intel, g95 and (with target attribute) PGI also accept the
program of comment 0.)
Crayftn correctly rejects the program of comment 0:
i => foo ! Invalid RHS - in this context "foo" the RESULT variable
^
Invalid proc-target for this procedure pointer assignment statement.
For the following, the diagnostic works and one gets the message:
Error: Expected a procedure for argument 'x' at (1)
function foo()
integer :: foo
call bar(foo)
contains
subroutine bar(x)
integer, external :: x
end subroutine bar
end
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/54387] [F03] Wrongly accepts non-proc result variable on the RHS of a proc-pointer assignment
2012-08-27 22:11 [Bug fortran/54387] New: Proc-pointer: Wronlgy accepts non-proc result variable on the RHS of a pointer assignment burnus at gcc dot gnu.org
2012-08-27 22:23 ` [Bug fortran/54387] " burnus at gcc dot gnu.org
@ 2012-09-12 9:17 ` janus at gcc dot gnu.org
2012-09-16 20:12 ` janus at gcc dot gnu.org
2012-09-16 20:19 ` janus at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: janus at gcc dot gnu.org @ 2012-09-12 9:17 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54387
janus at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2012-09-12
AssignedTo|unassigned at gcc dot |janus at gcc dot gnu.org
|gnu.org |
Summary|Proc-pointer: Wronlgy |[F03] Wrongly accepts
|accepts non-proc result |non-proc result variable on
|variable on the RHS of a |the RHS of a proc-pointer
|pointer assignment |assignment
Ever Confirmed|0 |1
--- Comment #2 from janus at gcc dot gnu.org 2012-09-12 09:17:36 UTC ---
Here is a draft patch which rejects the test case and is free of testsuite
regressions:
Index: gcc/fortran/expr.c
===================================================================
--- gcc/fortran/expr.c (revision 190908)
+++ gcc/fortran/expr.c (working copy)
@@ -3430,6 +3430,14 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_ex
gfc_resolve_intrinsic (sym, &rvalue->where);
attr = gfc_expr_attr (rvalue);
}
+ /* Check for result of embracing function. */
+ if (sym == gfc_current_ns->proc_name
+ && sym->attr.function && sym->result == sym)
+ {
+ gfc_error ("Invalid proc-target in procedure pointer assignment "
+ "at %L", &rvalue->where);
+ return FAILURE;
+ }
}
if (attr.abstract)
{
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/54387] [F03] Wrongly accepts non-proc result variable on the RHS of a proc-pointer assignment
2012-08-27 22:11 [Bug fortran/54387] New: Proc-pointer: Wronlgy accepts non-proc result variable on the RHS of a pointer assignment burnus at gcc dot gnu.org
2012-08-27 22:23 ` [Bug fortran/54387] " burnus at gcc dot gnu.org
2012-09-12 9:17 ` [Bug fortran/54387] [F03] Wrongly accepts non-proc result variable on the RHS of a proc-pointer assignment janus at gcc dot gnu.org
@ 2012-09-16 20:12 ` janus at gcc dot gnu.org
2012-09-16 20:19 ` janus at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: janus at gcc dot gnu.org @ 2012-09-16 20:12 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54387
--- Comment #3 from janus at gcc dot gnu.org 2012-09-16 20:12:30 UTC ---
Author: janus
Date: Sun Sep 16 20:12:21 2012
New Revision: 191364
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191364
Log:
2012-09-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/54387
* expr.c (gfc_check_pointer_assign): Check for result of embracing
function.
2012-09-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/54387
* gfortran.dg/proc_ptr_38.f90: New.
Added:
trunk/gcc/testsuite/gfortran.dg/proc_ptr_38.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/expr.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/54387] [F03] Wrongly accepts non-proc result variable on the RHS of a proc-pointer assignment
2012-08-27 22:11 [Bug fortran/54387] New: Proc-pointer: Wronlgy accepts non-proc result variable on the RHS of a pointer assignment burnus at gcc dot gnu.org
` (2 preceding siblings ...)
2012-09-16 20:12 ` janus at gcc dot gnu.org
@ 2012-09-16 20:19 ` janus at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: janus at gcc dot gnu.org @ 2012-09-16 20:19 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54387
janus at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #4 from janus at gcc dot gnu.org 2012-09-16 20:19:09 UTC ---
Fixed with r191364. Closing.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-09-16 20:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-27 22:11 [Bug fortran/54387] New: Proc-pointer: Wronlgy accepts non-proc result variable on the RHS of a pointer assignment burnus at gcc dot gnu.org
2012-08-27 22:23 ` [Bug fortran/54387] " burnus at gcc dot gnu.org
2012-09-12 9:17 ` [Bug fortran/54387] [F03] Wrongly accepts non-proc result variable on the RHS of a proc-pointer assignment janus at gcc dot gnu.org
2012-09-16 20:12 ` janus at gcc dot gnu.org
2012-09-16 20:19 ` 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).