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  <ja...@gcc.gnu.org>
        Manuel Lopez-Ibanez  <m...@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  <ja...@gcc.gnu.org>
        Dominique d'Humieres  <domi...@lps.ens.fr>

    PR fortran/69495
    * gfortran.dg/elemental_optional_args_6.f90: Use -Wpedantic flag.
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
 !

Reply via email to