ident ツールを使用して、ソース ファイルとコンパイル済みファイルの両方から RCS キーワード文字列を抽出します。
これは確かにソースコードに対して機能し、GCC によってコンパイルされた C の出力や、G77 によってコンパイルされた Fortran の出力に対しても機能します。
$ gcc -o c.out test.c
$ ident test.c c.out
test.c:
$Id: 63159761756 $
c.out:
$Id: 63159761756 $
$ g77 -o g77.out test.f
$ ident test.f g77.out
test.f:
$Id: 63159761756 $
g77.out:
$Id: 63159761756 $
問題は、gfortran コンパイラを使用して fortran コードをコンパイルする場合です。ident ツールは、コンパイルされたコードで RCS キーワードを見つけることができず、何も返しません!
$ gfortran -o gf.out test.f
$ ident test.f gf.out
test.f:
$Id: 63159761756 $
gf.out:
では、gfortran の何が問題なのですか? 変数を操作する最適化はありますか、または ident ツールは gfortran のコンパイル済み出力を解析できなくなりましたか?
どうすればこの問題を解決できますか?
編集:
Fortran ソース コード:
PROGRAM HELLO
CHARACTER*80 ID
ID =
*'@(#)$Id: 63159761756 $'
PRINT '(A)', 'Hello,fortran 77'
Print *, 'ID is ', ID
STOP
END