Hi Alessandro,

there are still some violations of the style guide:

contrib/check_GNU_style.sh first_complete_patch_REV2.diff

emits:

Lines should not exceed 80 characters.
154:+  add_sym_2 ("failed_images", GFC_ISYM_FAILED_IMAGES,
CLASS_TRANSFORMATIONAL, ACTUAL_NO, BT_INTEGER, 155:+             dd,
GFC_STD_F2008_TS, gfc_check_failed_images, gfc_simplify_failed_images,
156:+             gfc_resolve_failed_images, "team", BT_INTEGER, di, OPTIONAL,
"kind", BT_INTEGER, di, OPTIONAL); 165:+  add_sym_2 ("image_status",
GFC_ISYM_IMAGE_STATUS, CLASS_ELEMENTAL, ACTUAL_NO, BT_INTEGER,
166:+             di, GFC_STD_F2008_TS, gfc_check_image_status,
gfc_simplify_image_status, 167:+             gfc_resolve_image_status, "image",
BT_INTEGER, di, REQUIRED, "team", BT_INTEGER, di, OPTIONAL);
247:+gfc_resolve_image_status (gfc_expr *f, gfc_expr *image, gfc_expr *team
ATTRIBUTE_UNUSED) 409:+  result = transformational_result (result, 0,
BT_INTEGER, kind->ts.kind, &gfc_current_locus);
420:+gfc_simplify_image_status(gfc_expr *image ATTRIBUTE_UNUSED, gfc_expr *team
ATTRIBUTE_UNUSED) 469:+      gfor_fndecl_caf_failed_images =
gfc_build_library_function_decl_with_spec ( 471:+        pvoid_type_node, 3,
pvoid_type_node, integer_type_node, integer_type_node); 

<snipp> The remainder of the script output needs no fix, because its in Fortran
code.

You should fix the above, where they are not in a Fortran testcases. This
allows people with 80 column terminals to read the whole line without scrolling.

The if in resolve.c at 8837: resolve_failed_image (... is intentional? It is
doing nothing. So do you plan to add more code, or will there never be
anything. If the later I recommend to just put a comment there and remove the
empty if.

There still is no test when -fcoarray=single is used. This shouldn't be so
hard, should it?

Regards,
        Andre

On Mon, 19 Sep 2016 08:30:12 -0700
Alessandro Fanfarillo <fanfarillo....@gmail.com> wrote:

> * PING *
> 
> On Sep 7, 2016 3:01 PM, "Alessandro Fanfarillo" <fanfarillo....@gmail.com>
> wrote:
> 
> > Dear all,
> > the attached patch supports failed images also when -fcoarray=single is
> > used.
> >
> > Built and regtested on x86_64-pc-linux-gnu.
> >
> > Cheers,
> > Alessandro
> >
> > 2016-08-09 5:22 GMT-06:00 Paul Richard Thomas <
> > paul.richard.tho...@gmail.com>:
> > > Hi Sandro,
> > >
> > > As far as I can see, this is OK barring a couple of minor wrinkles and
> > > a question:
> > >
> > > For coarray_failed_images_err.f90 and coarray_image_status_err.f90 you
> > > have used the option -fdump-tree-original without making use of the
> > > tree dump.
> > >
> > > Mikael asked you to provide an executable test with -fcoarray=single.
> > > Is this not possible for some reason?
> > >
> > > Otherwise, this is OK for trunk.
> > >
> > > Thanks for the patch.
> > >
> > > Paul
> > >
> > > On 4 August 2016 at 05:07, Alessandro Fanfarillo
> > > <fanfarillo....@gmail.com> wrote:
> > >> * PING *
> > >>
> > >> 2016-07-21 13:05 GMT-06:00 Alessandro Fanfarillo <
> > fanfarillo....@gmail.com>:
> > >>> Dear Mikael and all,
> > >>>
> > >>> in attachment the new patch, built and regtested on
> > x86_64-pc-linux-gnu.
> > >>>
> > >>> Cheers,
> > >>> Alessandro
> > >>>
> > >>> 2016-07-20 13:17 GMT-06:00 Mikael Morin <morin-mik...@orange.fr>:
> > >>>> Le 20/07/2016 à 11:39, Andre Vehreschild a écrit :
> > >>>>>
> > >>>>> 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.
> > >>>>>
> > >>>> Didn't know about this. The difference seems to be very subtle.
> > >>>> I don't mind much anyway. The original version can stay if preferred,
> > this
> > >>>> was just a suggestion.
> > >>>>
> > >>>> By the way, if the function is inlined in its single caller, the
> > assert or
> > >>>> unreachable statement can be removed, which avoids choosing between
> > them.
> > >>>> That's another suggestion.
> > >>>>
> > >>>>
> > >>>>>>> +
> > >>>>>>> +  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.
> > >>>>>
> > >>>> My point was more avoiding generating code for the arguments if they
> > are not
> > >>>> used in the end.
> > >>>> Regarding the -fcoarray=single case, the function returns a result,
> > which
> > >>>> can be used in an expression, so I don't think it will work without
> > at least
> > >>>> hardcoding a fixed value as result in that case.
> > >>>> But even that wouldn't be enough, as the function wouldn't work
> > consistently
> > >>>> with the fail image statement.
> > >>>>
> > >>>>> Sorry for the comments ...
> > >>>>>
> > >>>> Comments are welcome here, as far as I know. ;-)
> > >>>>
> > >>>> Mikael
> > >
> > >
> > >
> > > --
> > > The difference between genius and stupidity is; genius has its limits.
> > >
> > > Albert Einstein
> >


-- 
Andre Vehreschild * Email: vehre ad gmx dot de 

Reply via email to