パッチのアイデアは、警告を出さずに -Wstrict-prototypes フラグを追加できるようにする

数日前に Arnaud Desitter から送られたパッチを適用しました。パッチのアイデアは、警告を出さずに -Wstrict-prototypes フラグを追加できるようにすることでした。

ポインター初期化子のサポートを追加しましたが、式ノードでポインター性を表現する方法がないことがわかりました。これは g95_typespec 構造体のビットとして終わると思います。

7月18日
プロシージャ処理の変更を完了し、テスト スイートの一部を実行して見つかったいくつかの単純なバグを修正しました。次に、内部プログラム単位で関数を内部プロシージャーとしてマークするコードを parse_contained() に追加しました。テストにより、globsol の一部のコードに問題があることが明らかになりました。問題は次のようになります。

モジュール testmod

含む
サブルーチンこんにちは
print *, ‘こんにちは’
サブルーチン終了こんにちは

モジュール testmod の終了

サブルーチンテスト
テストモッドを使用する
print *, ‘こんにちは’

含む
サブルーチンこんにちは
print *, ‘ワールド’
サブルーチン終了こんにちは
終わり

問題は、hello という名前の内部サブルーチンを定義できないことです。これは、そのシンボルが既に使用に関連付けられているためです。pgf コンパイラは、おそらく hello() が実際には呼び出されないため、この構成を許可します。
7月17日
昨日の続き。このプロジェクトで私を驚かせ続けていることは、いくつかの「主要な変更」がいかに簡単に行われたかということです。事前にかなりの時間をかけて考えた結果、思ったよりも早く進みました。個々の g95_add_* 関数も、以前よりも多くのインテリジェンスを備えています。たとえば、 g95_add_function() は、まだフレーバーでない場合、プロシージャ フレーバーを追加します。g95_add_procedure() は、プロシージャがステートメント関数である場合、関数属性を追加します。

これにより、これらのサブルーチンのいくつかが相互に再帰的になりましたが、無限ループに入る方法がわかりません。とにかく、作業はほぼ完了し、チェックインの準備が整いました。

タイトルとURLをコピーしました