diff mbox

[Fortran] PR 69495: unused-label warning does not tell which flag triggered it

Message ID CAKwh3qjgOb15D1qxB7XtpQRwMmn9wrvOvUnfy7mcnJEOcipmYQ@mail.gmail.com
State New
Headers show

Commit Message

Janus Weil Nov. 5, 2016, 9:15 a.m. UTC
Hi all,

here is a patch that I had submitted already in February (see
https://gcc.gnu.org/ml/fortran/2016-02/msg00011.html). Unfortunately
it was never approved and I got distracted with other things and
forgot about it.

It's a diagnostics patch, which makes sure that the responsible flag
is printed in several warning messages (for which this was still
missing). As a small extra the patch also mentions the -Wpedantic flag
in the gfortran documentation.

Fortunately the patch still applies cleanly and regtests without
failures on x86_64-linux-gnu. Ok for trunk?

Cheers,
Janus


2016-11-05  Janus Weil  <janus@gcc.gnu.org>
        Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

    PR fortran/69495
    * invoke.texi: Mention -Wpedantic as an alias of -pedantic.
    * check.c (gfc_check_transfer): Mention responsible flag in warning
    message.
    * frontend-passes.c (do_warn_function_elimination): Ditto.
    * resolve.c (resolve_elemental_actual): Ditto.
    (resolve_operator): Ditto.
    (warn_unused_fortran_label): Ditto.
    * trans-common.c (translate_common): Ditto.


2016-11-05  Janus Weil  <janus@gcc.gnu.org>
        Dominique d'Humieres  <dominiq@lps.ens.fr>

    PR fortran/69495
    * gfortran.dg/elemental_optional_args_6.f90: Use -Wpedantic flag.

Comments

Paul Richard Thomas Nov. 5, 2016, 9:34 a.m. UTC | #1
Hi Janus,

Welcome back!

The patch is OK for trunk.

Best regards

Paul

PS While you are with us, are you intending to deal with the 14 PRs
for which you are the assignee or will you unassign yourself?

On 5 November 2016 at 10:15, Janus Weil <janus@gcc.gnu.org> wrote:
> Hi all,
>
> here is a patch that I had submitted already in February (see
> https://gcc.gnu.org/ml/fortran/2016-02/msg00011.html). Unfortunately
> it was never approved and I got distracted with other things and
> forgot about it.
>
> It's a diagnostics patch, which makes sure that the responsible flag
> is printed in several warning messages (for which this was still
> missing). As a small extra the patch also mentions the -Wpedantic flag
> in the gfortran documentation.
>
> Fortunately the patch still applies cleanly and regtests without
> failures on x86_64-linux-gnu. Ok for trunk?
>
> Cheers,
> Janus
>
>
> 2016-11-05  Janus Weil  <janus@gcc.gnu.org>
>         Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
>
>     PR fortran/69495
>     * invoke.texi: Mention -Wpedantic as an alias of -pedantic.
>     * check.c (gfc_check_transfer): Mention responsible flag in warning
>     message.
>     * frontend-passes.c (do_warn_function_elimination): Ditto.
>     * resolve.c (resolve_elemental_actual): Ditto.
>     (resolve_operator): Ditto.
>     (warn_unused_fortran_label): Ditto.
>     * trans-common.c (translate_common): Ditto.
>
>
> 2016-11-05  Janus Weil  <janus@gcc.gnu.org>
>         Dominique d'Humieres  <dominiq@lps.ens.fr>
>
>     PR fortran/69495
>     * gfortran.dg/elemental_optional_args_6.f90: Use -Wpedantic flag.
Janus Weil Nov. 5, 2016, 9:39 a.m. UTC | #2
Hi Paul,

> The patch is OK for trunk.

thanks a lot. Will commit soon.


> PS While you are with us, are you intending to deal with the 14 PRs
> for which you are the assignee or will you unassign yourself?

Good point. I will look through them and see what I can do. In fact I
might have a bit of time for gfortran hacking in the coming weeks, but
I cannot promise anything ....

Cheers,
Janus




> On 5 November 2016 at 10:15, Janus Weil <janus@gcc.gnu.org> wrote:
>> Hi all,
>>
>> here is a patch that I had submitted already in February (see
>> https://gcc.gnu.org/ml/fortran/2016-02/msg00011.html). Unfortunately
>> it was never approved and I got distracted with other things and
>> forgot about it.
>>
>> It's a diagnostics patch, which makes sure that the responsible flag
>> is printed in several warning messages (for which this was still
>> missing). As a small extra the patch also mentions the -Wpedantic flag
>> in the gfortran documentation.
>>
>> Fortunately the patch still applies cleanly and regtests without
>> failures on x86_64-linux-gnu. Ok for trunk?
>>
>> Cheers,
>> Janus
>>
>>
>> 2016-11-05  Janus Weil  <janus@gcc.gnu.org>
>>         Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
>>
>>     PR fortran/69495
>>     * invoke.texi: Mention -Wpedantic as an alias of -pedantic.
>>     * check.c (gfc_check_transfer): Mention responsible flag in warning
>>     message.
>>     * frontend-passes.c (do_warn_function_elimination): Ditto.
>>     * resolve.c (resolve_elemental_actual): Ditto.
>>     (resolve_operator): Ditto.
>>     (warn_unused_fortran_label): Ditto.
>>     * trans-common.c (translate_common): Ditto.
>>
>>
>> 2016-11-05  Janus Weil  <janus@gcc.gnu.org>
>>         Dominique d'Humieres  <dominiq@lps.ens.fr>
>>
>>     PR fortran/69495
>>     * gfortran.dg/elemental_optional_args_6.f90: Use -Wpedantic flag.
>
>
>
> --
> The difference between genius and stupidity is; genius has its limits.
>
> Albert Einstein
Janus Weil Nov. 5, 2016, 10:37 a.m. UTC | #3
>> The patch is OK for trunk.
>
> thanks a lot. Will commit soon.

Committed as r241870. Thanks again.

Cheers,
Janus




>> On 5 November 2016 at 10:15, Janus Weil <janus@gcc.gnu.org> wrote:
>>> Hi all,
>>>
>>> here is a patch that I had submitted already in February (see
>>> https://gcc.gnu.org/ml/fortran/2016-02/msg00011.html). Unfortunately
>>> it was never approved and I got distracted with other things and
>>> forgot about it.
>>>
>>> It's a diagnostics patch, which makes sure that the responsible flag
>>> is printed in several warning messages (for which this was still
>>> missing). As a small extra the patch also mentions the -Wpedantic flag
>>> in the gfortran documentation.
>>>
>>> Fortunately the patch still applies cleanly and regtests without
>>> failures on x86_64-linux-gnu. Ok for trunk?
>>>
>>> Cheers,
>>> Janus
>>>
>>>
>>> 2016-11-05  Janus Weil  <janus@gcc.gnu.org>
>>>         Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
>>>
>>>     PR fortran/69495
>>>     * invoke.texi: Mention -Wpedantic as an alias of -pedantic.
>>>     * check.c (gfc_check_transfer): Mention responsible flag in warning
>>>     message.
>>>     * frontend-passes.c (do_warn_function_elimination): Ditto.
>>>     * resolve.c (resolve_elemental_actual): Ditto.
>>>     (resolve_operator): Ditto.
>>>     (warn_unused_fortran_label): Ditto.
>>>     * trans-common.c (translate_common): Ditto.
>>>
>>>
>>> 2016-11-05  Janus Weil  <janus@gcc.gnu.org>
>>>         Dominique d'Humieres  <dominiq@lps.ens.fr>
>>>
>>>     PR fortran/69495
>>>     * gfortran.dg/elemental_optional_args_6.f90: Use -Wpedantic flag.
>>
>>
>>
>> --
>> The difference between genius and stupidity is; genius has its limits.
>>
>> Albert Einstein
diff mbox

Patch

Index: gcc/fortran/check.c
===================================================================
--- gcc/fortran/check.c	(revision 241869)
+++ gcc/fortran/check.c	(working copy)
@@ -5187,7 +5187,8 @@  gfc_check_transfer (gfc_expr *source, gfc_expr *mo
     return true;
 
   if (source_size < result_size)
-    gfc_warning (0, "Intrinsic TRANSFER at %L has partly undefined result: "
+    gfc_warning (OPT_Wsurprising,
+		 "Intrinsic TRANSFER at %L has partly undefined result: "
 		 "source size %ld < result size %ld", &source->where,
 		 (long) source_size, (long) result_size);
 
Index: gcc/fortran/frontend-passes.c
===================================================================
--- gcc/fortran/frontend-passes.c	(revision 241869)
+++ gcc/fortran/frontend-passes.c	(working copy)
@@ -747,10 +747,12 @@  do_warn_function_elimination (gfc_expr *e)
   if (e->expr_type != EXPR_FUNCTION)
     return;
   if (e->value.function.esym)
-    gfc_warning (0, "Removing call to function %qs at %L",
+    gfc_warning (OPT_Wfunction_elimination,
+		 "Removing call to function %qs at %L",
 		 e->value.function.esym->name, &(e->where));
   else if (e->value.function.isym)
-    gfc_warning (0, "Removing call to function %qs at %L",
+    gfc_warning (OPT_Wfunction_elimination,
+		 "Removing call to function %qs at %L",
 		 e->value.function.isym->name, &(e->where));
 }
 /* Callback function for the code walker for doing common function
Index: gcc/fortran/invoke.texi
===================================================================
--- gcc/fortran/invoke.texi	(revision 241869)
+++ gcc/fortran/invoke.texi	(working copy)
@@ -749,8 +749,10 @@  Check the code for syntax errors, but do not actua
 will generate module files for each module present in the code, but no
 other output file.
 
-@item -pedantic
+@item -Wpedantic
+@itemx -pedantic
 @opindex @code{pedantic}
+@opindex @code{Wpedantic}
 Issue warnings for uses of extensions to Fortran 95.
 @option{-pedantic} also applies to C-language constructs where they
 occur in GNU Fortran source files, such as use of @samp{\e} in a
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c	(revision 241869)
+++ gcc/fortran/resolve.c	(working copy)
@@ -2140,7 +2140,8 @@  resolve_elemental_actual (gfc_expr *expr, gfc_code
 	  && (set_by_optional || arg->expr->rank != rank)
 	  && !(isym && isym->id == GFC_ISYM_CONVERSION))
 	{
-	  gfc_warning (0, "%qs at %L is an array and OPTIONAL; IF IT IS "
+	  gfc_warning (OPT_Wpedantic,
+		       "%qs at %L is an array and OPTIONAL; IF IT IS "
 		       "MISSING, it cannot be the actual argument of an "
 		       "ELEMENTAL procedure unless there is a non-optional "
 		       "argument with the same rank (12.4.1.5)",
@@ -3811,7 +3812,8 @@  resolve_operator (gfc_expr *e)
 		  else
 		    msg = "Inequality comparison for %s at %L";
 
-		  gfc_warning (0, msg, gfc_typename (&op1->ts), &op1->where);
+		  gfc_warning (OPT_Wcompare_reals, msg,
+			       gfc_typename (&op1->ts), &op1->where);
 		}
 	    }
 
@@ -15393,12 +15395,13 @@  warn_unused_fortran_label (gfc_st_label *label)
   switch (label->referenced)
     {
     case ST_LABEL_UNKNOWN:
-      gfc_warning (0, "Label %d at %L defined but not used", label->value,
-		   &label->where);
+      gfc_warning (OPT_Wunused_label, "Label %d at %L defined but not used",
+		   label->value, &label->where);
       break;
 
     case ST_LABEL_BAD_TARGET:
-      gfc_warning (0, "Label %d at %L defined but cannot be used",
+      gfc_warning (OPT_Wunused_label,
+		   "Label %d at %L defined but cannot be used",
 		   label->value, &label->where);
       break;
 
Index: gcc/fortran/trans-common.c
===================================================================
--- gcc/fortran/trans-common.c	(revision 241869)
+++ gcc/fortran/trans-common.c	(working copy)
@@ -1149,13 +1149,13 @@  translate_common (gfc_common_head *common, gfc_sym
 	      if (warn_align_commons)
 		{
 		  if (strcmp (common->name, BLANK_COMMON_NAME))
-		    gfc_warning (0,
+		    gfc_warning (OPT_Walign_commons,
 				 "Padding of %d bytes required before %qs in "
 				 "COMMON %qs at %L; reorder elements or use "
 				 "-fno-align-commons", (int)offset,
 				 s->sym->name, common->name, &common->where);
 		  else
-		    gfc_warning (0,
+		    gfc_warning (OPT_Walign_commons,
 				 "Padding of %d bytes required before %qs in "
 				 "COMMON at %L; reorder elements or use "
 				 "-fno-align-commons", (int)offset,
Index: gcc/testsuite/gfortran.dg/elemental_optional_args_6.f90
===================================================================
--- gcc/testsuite/gfortran.dg/elemental_optional_args_6.f90	(revision 241869)
+++ gcc/testsuite/gfortran.dg/elemental_optional_args_6.f90	(working copy)
@@ -1,4 +1,5 @@ 
 ! { dg-do run }
+! { dg-options "-Wpedantic" }
 !
 ! PR fortran/53692
 !