Sun Studio 12: Fortran プログラミングガイド

5.2 特別なコンパイラオプション

デバッグに便利なコンパイラオプションもあります。 これらのオプションによって、添字の検査、未宣言変数の印付け、コンパイルとリンク処理の経過の表示、ソフトウェアのバージョンの表示などを行います。

Solaris リンカーには、新しいリンカーデバッグ支援オプションがあります。ld(1) のマニュアルページを参照するか、シェルプロンプトでコマンド ld –Dhelp を実行してオンラインマニュアルを表示してください。

5.2.1 添字の境界 (–C)

-C を付けてコンパイルする場合は、コンパイラは、実行時に境界を超えている各配列の添字への参照を検査します。 このオプションは、セグメンテーションフォルトの原因を見つけるときに役立ちます。

例: 範囲外の索引


demo% cat range.f
      REAL a(10,10)
      k = 11
      a(k,2) = 1.0
      END
demo% f95 -o range range.f
demo% range

 ******  FORTRAN RUN-TIME SYSTEM  ******
Subscript out of range. Location: line 3 column 9 of 'range.f'
Subscript number 1 has value 11 in array 'A'
異常終了
demo%

5.2.2 未宣言の変数型 (–u)

-u オプションは、未宣言の変数を検査します。

-u オプションは、最初、すべての変数を未宣言として扱います。したがって、型宣言文や IMPLICIT 文で明示的に宣言されていない変数はすべてエラーとなります。 -u オプションは、名前の入力を間違えた変数の発見に役立ちます。-u を設定すると、すべての変数は、明示的に宣言されるまで未宣言として扱われます。未宣言変数を使用している箇所については、エラーメッセージが表示されます。

5.2.3 コンパイラのバージョンの検査 (–V)

–V オプションは、コンパイラのさまざまなフェーズの名前とバージョン ID を表示できます。このオプションは、不明確なエラーメッセージの原因を追跡したり、コンパイラの失敗をレポートするのに役立ちます。また、インストールされたコンパイラパッチのレベルを検証するためにも使用できます。


demo% f95 -V wh.f
f95: Sun Fortran 95 7.0 DEV 2002/01/30
f90comp: Sun Fortran 95 7.0 DEV 2002/01/30
f90comp: 9 ソース行
f90comp: 0 個のエラー, 0 個の警告, 0 個のほかのメッセージ, 0 個の ANSI
ld: Solaris Link Editors: 5.8-1.272