構文:
/warn[:keyword...]),/nowarn,/4Yd,/4Nd,/4Ys,/W0,/W1,または /WX
/warn オプションは,コンパイル時に実行できる既定の追加検証類に対して,診断メッセージを生成するようにコンパイラに要求します。また,発行されたコンパイル・メッセージの重大度レベルを変更することもできます。
ビジュアル開発環境では,「Fortran」タブの「General」または「Compilation Diagnostics」カテゴリの「Warning Level」(/warn:nogeneral,default,または /warn:error) を指定します。「Fortran」タブの「Compilation Diagnostics」カテゴリで個々の「Warning Options」を指定します。
/warn オプションには以下のものがあります。括弧内はビジュアル環境での名称を示しています。
/warn:noalignments (Data Alignment) |
/warn:argument_checking (Argument Mismatch) |
/warn:declarations または /4Yd (Undeclared Variables) |
/warn:errors または /WX (Warning Level: Errors) |
/warn:nofileopt (Inform when Compiling Files Separately) |
/warn:nogeneral (Warning Level: Ignore) |
/warn:ignore_loc (Inform When Removing %LOC from an Argument) |
/warn:stderrors または /4Ys (Treat Fortran Standard Warnings as Errors) |
/warn:truncated_source (Truncated Source) |
/warn:nouncalled (Uncalled Routines) |
/warn:nouninitialized (Uninitialized Variables) |
/warn:unused (Unused Variables) |
/warn:nousage (Usage) |
/warn:all または /warn |
/warn:none,/nowarn,または /W0 |
/warn を省略したときの基本設定を示します。
DF コマンド
/warn:(alignments,noargument_checking,nodeclarations,noerrors, fileopts,general,noignore_loc,nostderrors,notruncated_source, uncalled,uninitialized,nounused,usage)
「Debug」構成のビジュアル開発環境では,noargument_checking の基本設定が argument_checking に変わります。
「Release」構成のビジュアル開発環境では,fileopts の基本設定が nofileopts に変わります。
FL32 コマンド
/warn:(alignments,argument_checking,nodeclarations,noerrors, nofileopts,general,noignore_loc,nostderrors,notruncated_source, uncalled,uninitialized,nounused,usage)
/warn オプションには以下のものがあります。
/warn:noalignments (Data Alignment)
自然に位置合わせされていないデータに対する警告メッセージを禁止します。基本設定は /warn:alignments です。
/warn:argument_checking (Argument Mismatch)
呼び出し側と呼び出される側を一緒にコンパイルしたときに,引数の不一致に関する警告を有効にします。基本設定は /warn:noargument_checking です。ただし,「Debug」構成のビジュアル開発環境では,基本設定が /warn:argument_checking になります。
/warn:declarations または /4Yd (Undeclared Variables)
未宣言のシンボルに対してエラー・メッセージを発行します。このオプションは,変数の基本型を,基本 Fortran の規則を使うのではなく,未定 (IMPLICIT NONE) にします。基本設定は /warn:nodeclarations または /4Nd です。
/warn:errors または /WX (Warning Level: Errors)
すべての警告診断の重大度をエラー診断に変更します。基本設定は /warn:noerrors です。/warn:errors (または /WX) を指定すると,/warn:stderrors が設定されます。
/warn:nofileopt (Inform when Compiling Files Separately)
複数のファイルを個別にコンパイルしたときに,手続間の最適化を妨げることがある情報レベルの診断メッセージの表示を禁止します。基本設定は /warn:fileopt です (「Some interprocedural optimizations may be disabled when compiling in this mode」というメッセージを表示します)。ただし,「Release」構成のビジュアル開発環境では,基本設定が /warn:nofileopt になります。
/warn:nogeneral (Warning Level: Ignore)
コンパイラからのすべての情報レベルと警告レベルの診断メッセージを禁止します。基本設定は /warn:general または /W1 です。
/warn:ignore_loc (Inform When Removing %LOC from an Argument)
%LOC が引数から取り除かれた時に警告メッセージを発行するようにコンパイラに要求します。基本設定は,/warn:noignore_loc (この条件で警告を発行しない) です。
/warn:stderrors または /4Ys (Treat Fortran Standard Warnings as Errors)
警告レベル・メッセージの代わりに,エラー・レベルのコンパイル・メッセージを表示する Fortran 90 の標準検証を要求します (「/[no]stand」を参照)。/warn:stderrors を指定すると /stand:f90 が設定されます。これは /4Ys と等価です。
/warn:stderrors と /stand:f95 を指定すると,Fortran 95 の標準案に対する拡張のエラー・レベル・メッセージを要求することができます。
/warn:errors を指定すると /warn:stderrors が設定されます。基本設定は /warn:nostderrors です。
/warn:truncated_source (Truncated Source)
固定形式ソース・ファイル中で,欄幅の上限を超える文番号欄を含んだソース行を読み取ったときに,警告診断メッセージを発行するようにコンパイラに要求します。固定形式ファイルの欄幅の上限は,/extend_source オプションが指定されているかどうかに応じて,72 または 132 となります。
このオプションは切り捨てには影響を与えません。欄幅の上限を超える行はつねに切り捨てられます。このオプションは自由形式ソース・ファイルには適用されません。基本設定は /warn:notruncated_source です。
/warn:nouncalled (Uncalled Routines)
決して呼び出されない文関数が存在するときに発行されるコンパイラ警告診断メッセージを要求します。基本設定は /warn:uncalled です。
/warn:nouninitialized (Uninitialized Variables)
変数が,値が代入される前に使用されたときに発行される警告メッセージを禁止します。基本設定は /warn:uninitialized です。
/warn:unused (Unused Variables)
宣言はされているが,一度も使用されない変数が存在するときに発行される警告メッセージを禁止します。基本設定は /warn:nounused です。
問題のありそうなプログラミングと,2 桁の年表記を使用する組込み関数の使用 (2000 年問題) に関する警告メッセージを禁止します。問題のありそうなプログラミングは,許容されるにせよ,プログラミング・エラーの結果であることがよくあります。たとえば,/warn:usage は,継続文字またはホレリス表現の最初の部分が,文番号欄が終わる前に,末尾の空白で終わっているような場合です。基本設定は /warn:usage です。/pad_source オプションは,/warn:usage からの警告メッセージの表示を妨げることがあります。
すべての警告メッセージを発行するように要求しますが,/warn:errors または /warn:stderrors は設定しません。すべての追加検証を実行し,診断の重大度をオブジェクト・ファイルの生成を妨げるレベルに上げるには,/warn:(all,errors) または /warn:(all,stderrors) を指定します。
すべての警告メッセージを禁止します。
たとえば,次のコマンドは,argument_checking および declarations キーワードを要求し,他の /warn キーワードについては基本設定を受け入れます。
DF /warn:(argument_checking,declarations) testfile.f90