#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 . Нет, это не так, но я думаю, что это хороший стиль для использования всегда, только поскольку он документирует, какие переменные поступают из каких модулей