re PR libfortran/34540 (cshift, eoshift, kind=1 and kind=2 arguments...)

2007-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34540
	* iresolve.c (gfc_resolve_cshift): Take optional dim path
	only if the argument is an optional itself.
	* iresolve.c (gfc_resolve_eoshift): Same.

From-SVN: r131133
This commit is contained in:
Jerry DeLisle 2007-12-22 01:57:07 +00:00
parent 94919bd2bc
commit 565e50452f
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2007-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/34540
* iresolve.c (gfc_resolve_cshift): Take optional dim path
only if the argument is an optional itself.
* iresolve.c (gfc_resolve_eoshift): Same.
2007-12-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34438

View File

@ -590,7 +590,7 @@ gfc_resolve_cshift (gfc_expr *f, gfc_expr *array, gfc_expr *shift,
if (dim != NULL)
{
if (dim->expr_type != EXPR_CONSTANT)
if (dim->expr_type != EXPR_CONSTANT && dim->symtree->n.sym->attr.optional)
{
/* Mark this for later setting the type in gfc_conv_missing_dummy. */
dim->representation.length = shift->ts.kind;
@ -728,7 +728,7 @@ gfc_resolve_eoshift (gfc_expr *f, gfc_expr *array, gfc_expr *shift,
if (dim != NULL)
{
if (dim->expr_type != EXPR_CONSTANT)
if (dim->expr_type != EXPR_CONSTANT && dim->symtree->n.sym->attr.optional)
{
/* Mark this for later setting the type in gfc_conv_missing_dummy. */
dim->representation.length = shift->ts.kind;