https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69495

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |manu at gcc dot gnu.org

--- Comment #2 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
I think there must be a lot more cases of this:

  if (!warn_surprising)
    return true;

  /* If we can't calculate the sizes, we cannot check any more.
     Return true for that case.  */

  if (!gfc_calculate_transfer_sizes (source, mold, size, &source_size, 
                                     &result_size, NULL))
    return true;

  if (source_size < result_size)
    gfc_warning (0, "Intrinsic TRANSFER at %L has partly undefined result: "
                 "source size %ld < result size %ld", &source->where,
                 (long) source_size, (long) result_size);

.................

     if (warn_function_elimination)
                do_warn_function_elimination (*ej);

...............................

  /* If warning about the standard, warn and succeed.  */
  if (gfc_option.warn_std & isym->standard)
    {
      /* Do only print a warning if not a GNU extension.  */
      if (!silent && isym->standard != GFC_STD_GNU)
        gfc_warning (0, "Intrinsic %qs (is %s) is used at %L",
                     isym->name, _(symstd_msg), &where);

      return true;
    }
.......................
  /* At this point, a conversion is necessary. A warning may be needed.  */
  if ((gfc_option.warn_std & sym->standard) != 0)
    {
      gfc_warning_now (0, "Extension: Conversion from %s to %s at %L",
                       gfc_typename (&from_ts), gfc_typename (ts),
                       &expr->where);
    }
..........................
    if (pedantic && arg->expr != NULL
          && arg->expr->expr_type == EXPR_VARIABLE
          && arg->expr->symtree->n.sym->attr.optional
          && formal_optional
          && arg->expr->rank
          && (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 "
                       "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)",
                       arg->expr->symtree->n.sym->name, &arg->expr->where);
        }
    }

....................
     if (warn_align_commons)
                {
                  if (strcmp (common->name, BLANK_COMMON_NAME))
                    gfc_warning (0,
                                 "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,
                                 "Padding of %d bytes required before %qs in "
                                 "COMMON at %L; reorder elements or use "
                                 "-fno-align-commons", (int)offset,
                                 s->sym->name, &common->where);
                }

..................

  /* Warn about unused labels.  */
  if (warn_unused_label)
    warn_unused_fortran_label (ns->st_labels);
...............................

Im sure there are more...

Reply via email to