diff mbox series

[Fortran,v1] Clarify error message of co_reduce

Message ID 20171027121847.2dd8906e@vepi2
State New
Headers show
Series [Fortran,v1] Clarify error message of co_reduce | expand

Commit Message

Andre Vehreschild Oct. 27, 2017, 10:19 a.m. UTC
Hi all,

as noted on IRC is one of the error message in check.c co_reduce misleading.
The attached patch fixes this. The intention of the error message is to tell
that the type of the argument bound to parameter A is of wrong type and not
that an unspecific argument has a wrong type.

If no one objects within 24 h I am planning to commit this patch as obvious to
trunk gcc-7. Bootstrapped and regtested on x86_64-linux-gnu/f25.

Regards,
	Andre

Comments

Steve Kargl Oct. 27, 2017, 2:12 p.m. UTC | #1
On Fri, Oct 27, 2017 at 12:19:02PM +0200, Andre Vehreschild wrote:
> Hi all,
> 
> as noted on IRC is one of the error message in check.c co_reduce misleading.
> The attached patch fixes this. The intention of the error message is to tell
> that the type of the argument bound to parameter A is of wrong type and not
> that an unspecific argument has a wrong type.
> 
> If no one objects within 24 h I am planning to commit this patch as obvious to
> trunk gcc-7. Bootstrapped and regtested on x86_64-linux-gnu/f25.
> 
> Regards,
> 	Andre
> -- 
> Andre Vehreschild * Email: vehre ad gmx dot de 

> gcc/fortran/ChangeLog:
> 
> 2017-10-27  Andre Vehreschild  <vehre@gcc.gnu.org>
> 
> 	* check.c (gfc_check_co_reduce): Clarify error message.
> 

> diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c
> index 681950e..759c15a 100644
> --- a/gcc/fortran/check.c
> +++ b/gcc/fortran/check.c
> @@ -1731,7 +1731,7 @@ gfc_check_co_reduce (gfc_expr *a, gfc_expr *op, gfc_expr *result_image,
>  
>    if (!gfc_compare_types (&a->ts, &sym->result->ts))
>      {
> -      gfc_error ("A argument at %L has type %s but the function passed as "
> +      gfc_error ("The A argument at %L has type %s but the function passed as "
>  		 "OPERATOR at %L returns %s",
>  		 &a->where, gfc_typename (&a->ts), &op->where,
>  		 gfc_typename (&sym->result->ts));

Andre,

Can I suggest that you take a look at scalar_check in check.c
and use a similar approach for your error message?

gfc_error ("%qs argument of %qs intrinsics at %L has type %s but "
	"the function passed as OPERATOR at %L returns %s",
    gfc_current_intrinsic_arg[0]->name, gfc_current_intrinsic,
    &a->where, gfc_typename (&a->ts), &op->where,
    gfc_typename (&sym->result->ts));

Note, you'll need to use the correct index in gfc_current...arg[0]->name.
Also note, %qs gives a 'quoted' string, which in my xterm is a boldface
font.
Andre Vehreschild Oct. 28, 2017, 2:58 p.m. UTC | #2
Hi all,

I got no direct objections therefore committed as r254197 to trunk and r254198
to gcc-7. 

@Steve, I will take a look at what you pointed. 

- Andre

On Fri, 27 Oct 2017 12:19:02 +0200
Andre Vehreschild <vehre@gmx.de> wrote:

> Hi all,
> 
> as noted on IRC is one of the error message in check.c co_reduce misleading.
> The attached patch fixes this. The intention of the error message is to tell
> that the type of the argument bound to parameter A is of wrong type and not
> that an unspecific argument has a wrong type.
> 
> If no one objects within 24 h I am planning to commit this patch as obvious to
> trunk gcc-7. Bootstrapped and regtested on x86_64-linux-gnu/f25.
> 
> Regards,
> 	Andre
diff mbox series

Patch

diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c
index 681950e..759c15a 100644
--- a/gcc/fortran/check.c
+++ b/gcc/fortran/check.c
@@ -1731,7 +1731,7 @@  gfc_check_co_reduce (gfc_expr *a, gfc_expr *op, gfc_expr *result_image,
 
   if (!gfc_compare_types (&a->ts, &sym->result->ts))
     {
-      gfc_error ("A argument at %L has type %s but the function passed as "
+      gfc_error ("The A argument at %L has type %s but the function passed as "
 		 "OPERATOR at %L returns %s",
 		 &a->where, gfc_typename (&a->ts), &op->where,
 		 gfc_typename (&sym->result->ts));