Получать предупреждение о неиспользуемых идентификаторах только для использования

#module #fortran #compiler-warnings #gfortran

#модуль #fortran #компилятор-предупреждения #gfortran

Вопрос:

Допустим, у меня есть следующий код:

 module test_mod
    implicit none
    private
    public :: A, B, double

    integer :: A, C
    integer, parameter :: B = 2

    contains

    integer elemental function double(n)
        integer, intent(in) :: n
        double = 2 * n
    end function
end module


program test_prog
    use test_mod, only: A, B, double
    implicit none

    A = 3
    write(*, *) A
end program
 

Если я скомпилирую с gfortran -Wall -Wextra помощью, я правильно получаю предупреждения о:

  • Неиспользуемая переменная C в test_mod.
  • Импортированная, но неиспользуемая переменная B в программе.

Но я хотел бы также получить предупреждение о том, что double импортируется, но не используется. Есть ли опция компилятора, которую я упускаю из виду? Есть ли компилятор, который это делает? Появится ли оно в более поздних версиях gfortran? (Я использовал 8.2.1)

Комментарии:

1. Меня даже интересовали бы предупреждения для общего случая использования модулей ( без явного only ).

2. @jack -Wuse-without-only для gfortran

3. @IanBush это то, что я искал, но: что, если на самом деле используются все общедоступные объекты? будет ли он по-прежнему выдавать ошибку?

4. Предупреждение @jack, а не ошибка, если вы также не используете -Werror . Нет, это не так, но я думаю, что это хороший стиль для использования всегда, только поскольку он документирует, какие переменные поступают из каких модулей