mirror of git://gcc.gnu.org/git/gcc.git
decl.c (gfc_match_entry): Function entries don't need an argument list if there's no RESULT clause.
fortran/ * decl.c (gfc_match_entry): Function entries don't need an argument list if there's no RESULT clause. testsuite/ * gfortran.fortran-torture/execute/entry_9.f90: Revert previous change (r106358). From-SVN: r106361
This commit is contained in:
parent
0be8cb80ee
commit
c96cfa49c2
|
|
@ -1,3 +1,8 @@
|
||||||
|
2005-11-02 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||||
|
|
||||||
|
* decl.c (gfc_match_entry): Function entries don't need an argument
|
||||||
|
list if there's no RESULT clause.
|
||||||
|
|
||||||
2005-11-01 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
2005-11-01 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||||
|
|
||||||
PR fortran/24008
|
PR fortran/24008
|
||||||
|
|
|
||||||
|
|
@ -2603,6 +2603,7 @@ gfc_match_entry (void)
|
||||||
gfc_compile_state state;
|
gfc_compile_state state;
|
||||||
match m;
|
match m;
|
||||||
gfc_entry_list *el;
|
gfc_entry_list *el;
|
||||||
|
locus old_loc;
|
||||||
|
|
||||||
m = gfc_match_name (name);
|
m = gfc_match_name (name);
|
||||||
if (m != MATCH_YES)
|
if (m != MATCH_YES)
|
||||||
|
|
@ -2690,8 +2691,26 @@ gfc_match_entry (void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* An entry in a function. */
|
/* An entry in a function.
|
||||||
m = gfc_match_formal_arglist (entry, 0, 0);
|
We need to take special care because writing
|
||||||
|
ENTRY f()
|
||||||
|
as
|
||||||
|
ENTRY f
|
||||||
|
is allowed, whereas
|
||||||
|
ENTRY f() RESULT (r)
|
||||||
|
can't be written as
|
||||||
|
ENTRY f RESULT (r). */
|
||||||
|
old_loc = gfc_current_locus;
|
||||||
|
if (gfc_match_eos () == MATCH_YES)
|
||||||
|
{
|
||||||
|
gfc_current_locus = old_loc;
|
||||||
|
/* Match the empty argument list, and add the interface to
|
||||||
|
the symbol. */
|
||||||
|
m = gfc_match_formal_arglist (entry, 0, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
m = gfc_match_formal_arglist (entry, 0, 0);
|
||||||
|
|
||||||
if (m != MATCH_YES)
|
if (m != MATCH_YES)
|
||||||
return MATCH_ERROR;
|
return MATCH_ERROR;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2005-11-02 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||||
|
|
||||||
|
* gfortran.fortran-torture/execute/entry_9.f90: Revert previous
|
||||||
|
change (r106358).
|
||||||
|
|
||||||
2005-11-01 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
2005-11-01 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||||
|
|
||||||
PR fortran/24008
|
PR fortran/24008
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@
|
||||||
integer a, f1, e1
|
integer a, f1, e1
|
||||||
f1 = 15 + a
|
f1 = 15 + a
|
||||||
return
|
return
|
||||||
entry e1()
|
entry e1
|
||||||
e1 = 42
|
e1 = 42
|
||||||
end function
|
end function
|
||||||
function f2 ()
|
function f2 ()
|
||||||
real f2, e2
|
real f2, e2
|
||||||
entry e2()
|
entry e2
|
||||||
e2 = 45
|
e2 = 45
|
||||||
end function
|
end function
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue