trans-expr.c (gfc_conv_expr_present): Fix broken assert.

2005-04-29  Paul Brook   <paul@codesourcery.com>

	* trans-expr.c (gfc_conv_expr_present): Fix broken assert.  Update
	comment.

From-SVN: r98968
This commit is contained in:
Paul Brook 2005-04-29 02:34:11 +00:00 committed by Paul Brook
parent 21bf822e83
commit 1a7bfcc32d
4 changed files with 37 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2005-04-29 Paul Brook <paul@codesourcery.com>
* trans-expr.c (gfc_conv_expr_present): Fix broken assert. Update
comment.
2005-04-29 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* gfortran.h (gfc_namespace): Add seen_implicit_none field.

View file

@ -115,14 +115,15 @@ gfc_make_safe_expr (gfc_se * se)
}
/* Return an expression which determines if a dummy parameter is present. */
/* Return an expression which determines if a dummy parameter is present.
Also used for arguments to procedures with multiple entry points. */
tree
gfc_conv_expr_present (gfc_symbol * sym)
{
tree decl;
gcc_assert (sym->attr.dummy && sym->attr.optional);
gcc_assert (sym->attr.dummy);
decl = gfc_get_symbol_decl (sym);
if (TREE_CODE (decl) != PARM_DECL)

View file

@ -1,3 +1,7 @@
2005-04-29 Paul Brook <paul@codesourcery.com>
* gfortran.dg/entry_3.f90: New test.
2005-04-29 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* gfortran.dg/implicit_4.f90: New test.

View file

@ -0,0 +1,25 @@
! { dg-do run }
! Test assumed shape arrays in procedures with multiple entry points.
! Arguments that aren't present in all entry points must be treated like
! optional arguments.
module entry_4
contains
subroutine foo(a)
integer, dimension(:) :: a
integer, dimension(:) :: b
a = (/1, 2/)
return
entry bar(b)
b = (/3, 4/)
end subroutine
end module
program entry_4_prog
use entry_4
integer :: a(2)
a = 0
call foo(a)
if (any (a .ne. (/1, 2/))) call abort
call bar(a)
if (any (a .ne. (/3, 4/))) call abort
end program