warn

コンパイラーによって発行される診断メッセージを指定します。

構文

Linux*:

-warn [keyword[, keyword...]]

-nowarn

macOS*:

-warn [keyword[, keyword...]]

-nowarn

Windows*:

/warn[:keyword[, keyword...]]

/nowarn

引数

keyword

発行される診断メッセージを指定します。設定可能な値は以下のとおりです。

all

エラーと stderrors を除くすべての警告メッセージを有効にします。keyword が指定されない場合のデフォルトです。

all が有効な場合、stderrors は警告レベルに変更されません。

[no]alignments

自然にアライメントされていないデータについて警告メッセージを発行するかどうかを指定します。

[no]declarations

未宣言の名前について警告メッセージを発行するかどうかを指定します。

[no]errors

警告をエラーに変更するかどうかを指定します。

[no]externals

明示的なインターフェイスがないまたは EXTERNAL と宣言された仮プロシージャーやプロシージャー呼び出しに対して警告を発行するかどうかを指定します。

[no]general

コンパイラーによって警告メッセージおよび情報メッセージを発行するかどうかを指定します。

[no]ignore_bounds

定数の配列添字が配列の宣言した範囲外にあることをコンパイル時に検知した場合、コンパイラーが警告を発行するかどうかを指定します。

[no]ignore_loc

%LOC が引数から削除されたときに警告を発行するかどうかを指定します。

[no]interfaces

インターフェイス・ブロックの外部セットのコンパイル中に、呼び出されるすべての SUBROUTINE および FUNCTION のインターフェイスをコンパイラーが確認するかどうかを指定します。

[no]shape

check shape オプションと一緒に使用された場合に配列の適合性違反をエラーや警告として出力するかどうかを指示します。

[no]stderrors

Fortran 標準に違反する警告をエラーに変更するかどうかを指定します。

[no]truncated_source

ソースが固定形式ソースファイルの最大のカラム幅を超えた場合、警告を発行するかどうかを指定します。

[no]uncalled

一度も呼び出されない文関数について警告を発行するかどうかを指定します。

[no]unused

宣言はされているが、一度も使用されていない変数について警告を発行するかどうかを指定します。

[no]usage

問題のありそうなプログラミングに対する警告を発行するかどうかを指定します。

none

すべての警告メッセージを無効にします。

デフォルト

alignments

自然にアライメントされていないデータについて警告メッセージが発行されます。

general

すべての情報レベル診断メッセージおよび警告レベル診断メッセージを有効にします。

nodeclarations

未宣言の名前に対して警告を発行しません。

noerrors

警告メッセージはエラーメッセージに変更されません。

noexternals

明示的なインターフェイスがないまたは EXTERNAL と宣言された仮プロシージャーやプロシージャー呼び出しに対して警告を発行しません。

noignore_bounds

コンパイラーは、定数の添字を含む配列参照を確認して、配列の宣言した範囲外の要素を参照している場合に警告を発行します。

noignore_loc

%LOC が引数から削除されたときに警告を発行しません。

nointerfaces

コンパイラーは、インターフェイス・ブロックの外部セットのコンパイル中に、呼び出されるすべての SUBROUTINE および FUNCTION のインターフェイスを確認しません。

noshape

check shape オプションが指定された場合、配列の適合性違反をエラーとして出力します。

nostderrors

Fortran 標準に違反する警告メッセージはエラーメッセージに変更されません。

notruncated_source

ソースが固定形式ソースファイルの最大のカラム幅を超えたときに警告を発行しません。

nounused

宣言はされているが、一度も使用されていない変数に対して警告を発行しません。

uncalled

呼び出されない文関数について警告が発行されます。

usage

問題のありそうなプログラミングに対する警告が発行されます。

説明

このオプションは、コンパイラーによって発行される診断メッセージを指定します。

オプション

説明

warn none

すべての警告メッセージを無効にします。これは nowarn と同じです。

warn noalignments

自然にアライメントされていないデータについて警告を無効にします。

warn declarations

未宣言の名前について警告を有効にします。コンパイラーは未宣言の名前に対してデフォルトの暗黙的なデータ型指定規則を使用します。IMPLICIT 文と IMPLICIT NONE 文はこのオプションよりも優先されます。

warn errors

すべての警告メッセージ (Fortran 標準に違反する警告も含む) をエラーメッセージに変更するようにコンパイラーに指示します。

warn externals

明示的なインターフェイスがないまたは EXTERNAL 属性で宣言された仮プロシージャーやプロシージャー呼び出しに関する警告を有効にします。

warn nogeneral

すべての情報レベル診断メッセージおよび警告レベル診断メッセージを無効にします。

warn ignore_bounds

コンパイラーは、定数の添字を含む配列参照を確認せず、配列の宣言した範囲外の要素を参照している場合に警告を発行しません。

warn ignore_loc

%LOC が実引数から削除されたときに警告を有効にします。

warn interfaces

コンパイルされるソースとは別に格納されたインターフェイス・ブロックの外部セットのコンパイル中に、呼び出されるすべての SUBROUTINE および FUNCTION のインターフェイスをコンパイラーが確認するかどうかを指定します。

ルーチンを呼び出すのに使用されるインターフェイスが、a .mod ファイルに定義されているインターフェイスと異なる場合 (つまり、gen-interfaces オプションによって生成された a.mod 内のインターフェイスとソースファイル内で使用している a.mod ファイルが一致しない場合)、コンパイラーはコンパイル時メッセージを発行します。コンパイラーは、現在のディレクトリーまたは include (-I) オプションあるいは -module オプションによって指定されたディレクトリーから .mods を検索します。インターフェイスが合致しない場合、コンパイル時エラーが発生したり、または警告のみしか生成されません。

デフォルトでは、warn interfaces により gen-interfaces オプションが有効になります。/gen-interfaces- (Windows*) または -no-gen-interfaces (Linux* および macOS*) を明示的に指定することで、このオプションをオフにできます。

warn shape

check shape オプションが指定された場合、配列の適合性違反をエラーではなく、警告として出力します。

warn stderrors

すべての Fortran 標準に違反する警告をエラーに変更するようにコンパイラーに指示します。このオプションは、stand オプションを設定します。

warn truncated_source

ソース行が固定形式ソースファイルの最大のカラム幅を超える場合、警告を有効にします。固定形式ファイルのカラム幅の最大値は 72、80、または 132 で、extend-source オプションを設定するかしないかにより異なります。warn:truncated_source オプションは、切り捨てには影響ありません。最大カラム幅を超える行は常に切り捨てられます。このオプションは、自由形式のソースファイルには適用されません。

warn nouncalled

宣言はされているが、一度も使用されていない変数について警告を無効にします。

warn unused

宣言はされているが、一度も使用されていない変数について警告を有効にします。

warn nousage

問題のありそうなプログラミングに対する警告を無効にします。問題のありそうなプログラミングは、許容されるにせよ、プログラミング・エラーの結果であることがよくあります。例えば、継続文字、または最初の部分が文フィールドが終わる前に末尾の空白で終わっているような Hollerith リテラルです。/pad-source オプションは、このエラーを抑制することができます。

warn all

これは warn と同じです。このオプションは、warn errors または warn stderrors を設定しません。すべての追加検証を実行し、診断メッセージの重要度をオブジェクト・ファイルの生成を妨げるレベルに上げるには、warn allwarn errors または warn allwarn stderrors を指定します。

Windows* システムの場合: プロパティー・ページにおいてカスタムとは、診断が個別に指定されることを意味します。

IDE オプション

Visual Studio*: [General] > [Compile Time Diagnostics] (/warn:all、/warn:none)

[Diagnostics] > [Treat Warnings As Errors] (/warn:[no]errors)

[Diagnostics] > [Treat Fortran Standard Warnings as Errors] (/warn:[no]stderrors)

[Diagnostics] > [Language Usage Warnings] > [Compile Time Diagnostics] (/warn:all, /warn:none)

[Diagnostics] > [Warn for Undeclared Symbols] (/warn:[no]declarations)

[Diagnostics] > [Warn for Undeclared Externals] (/warn:[no]externals)

[Diagnostics] > [Warn for Unused Variables] (/warn:[no]unused)

[Diagnostics] > [Warn When Removing %LOC] (/warn:[no]ignore_loc)

[Diagnostics] > [Warn When Truncating Source Line] (/warn:[no]truncated_source)

[Diagnostics] > [Warn for Unaligned Data] (/warn:[no]alignments)

[Diagnostics] > [Warn for Uncalled Statement Function] (/warn:[no]uncalled)

[Diagnostics] > [Warn for Array Conformance Violations] (/warn:shape)

[Diagnostics] > [Suppress Usage Messages] (/warn:[no]usage)

[Diagnostics] > [Check Routine Interfaces] (/warn:[no]interfaces)

代替オプション

warn none

Linux* および macOS*: -nowarn-w-W0-warn nogeneral

Windows*: /nowarn/w/W0/warn:nogeneral

warn declarations

Linux* および macOS*: -implicitnone-u

Windows*: /4Yd

warn nodeclarations

Linux* および macOS*: なし

Windows*: /4Nd

warn general

Linux* および macOS*: -W1

Windows*: /W1

warn nogeneral

Linux* および macOS*: -W0-w-nowarn-warn none

Windows*: /W0、/w、/nowarn、/warn:none

warn stderrors

Linux* および macOS*: -e90-e95-e03-e08-e18

Windows*: なし

warn all

Linux* および macOS*: -warn

Windows*: /warn (非推奨の古いオプション)