Commit 565e5045 by Jerry DeLisle

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
parent 94919bd2
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> 2007-12-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34438 PR fortran/34438
......
...@@ -590,7 +590,7 @@ gfc_resolve_cshift (gfc_expr *f, gfc_expr *array, gfc_expr *shift, ...@@ -590,7 +590,7 @@ gfc_resolve_cshift (gfc_expr *f, gfc_expr *array, gfc_expr *shift,
if (dim != NULL) 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. */ /* Mark this for later setting the type in gfc_conv_missing_dummy. */
dim->representation.length = shift->ts.kind; dim->representation.length = shift->ts.kind;
...@@ -728,7 +728,7 @@ gfc_resolve_eoshift (gfc_expr *f, gfc_expr *array, gfc_expr *shift, ...@@ -728,7 +728,7 @@ gfc_resolve_eoshift (gfc_expr *f, gfc_expr *array, gfc_expr *shift,
if (dim != NULL) 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. */ /* Mark this for later setting the type in gfc_conv_missing_dummy. */
dim->representation.length = shift->ts.kind; dim->representation.length = shift->ts.kind;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment