This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Fortran, Patch] First patch for coarray FAILED IMAGES (TS 18508)
Hi Mikael,
> > + if(st == ST_FAIL_IMAGE)
> > + new_st.op = EXEC_FAIL_IMAGE;
> > + else
> > + gcc_unreachable();
> You can use
> gcc_assert (st == ST_FAIL_IMAGE);
> foo...;
> instead of
> if (st == ST_FAIL_IMAGE)
> foo...;
> else
> gcc_unreachable ();
Be careful, this is not 100% identical in the general case. For older
gcc version (gcc < 4008) gcc_assert() is mapped to nothing, esp. not to
an abort(), so the behavior can change. But in this case everything is
fine, because the patch is most likely not backported.
> > +
> > + return MATCH_YES;
> > +
> > + syntax:
> > + gfc_syntax_error (st);
> > +
> > + return MATCH_ERROR;
> > +}
> > +
> > +match
> > +gfc_match_fail_image (void)
> > +{
> > + /* if (!gfc_notify_std (GFC_STD_F2008_TS, "FAIL IMAGE statement
> > at %C")) */
> > + /* return MATCH_ERROR; */
> > +
> Can this be uncommented?
>
> > + return fail_image_statement (ST_FAIL_IMAGE);
> > +}
> >
> > /* Match LOCK/UNLOCK statement. Syntax:
> > LOCK ( lock-variable [ , lock-stat-list ] )
> > diff --git a/gcc/fortran/trans-intrinsic.c
> > b/gcc/fortran/trans-intrinsic.c index 1aaf4e2..b2f5596 100644
> > --- a/gcc/fortran/trans-intrinsic.c
> > +++ b/gcc/fortran/trans-intrinsic.c
> > @@ -1647,6 +1647,24 @@ trans_this_image (gfc_se * se, gfc_expr
> > *expr) m, lbound));
> > }
> >
> > +static void
> > +gfc_conv_intrinsic_image_status (gfc_se *se, gfc_expr *expr)
> > +{
> > + unsigned int num_args;
> > + tree *args,tmp;
> > +
> > + num_args = gfc_intrinsic_argument_list_length (expr);
> > + args = XALLOCAVEC (tree, num_args);
> > +
> > + gfc_conv_intrinsic_function_args (se, expr, args, num_args);
> > +
> > + if (flag_coarray == GFC_FCOARRAY_LIB)
> > + {
> Can everything be put under the if?
> Does it work with -fcoarray=single?
IMO coarray=single should not generate code here, therefore putting
everything under the if should to fine.
Sorry for the comments ...
- Andre
--
Andre Vehreschild * Email: vehre ad gmx dot de