HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0219
wow最適化によるエラー2解決


wow

リンク

2016/2/19(Fri) 16:47:17|NO.74650

HSP3.5β3で以下のスクリプトがエラーになります。
コンパイラの最適化がおかしいみたいです。

#include "kernel32.as" func end #module #deffunc func Beep 500,500 return #global



この記事に返信する


葡萄色

リンク

2016/2/19(Fri) 18:57:49|NO.74655

3.4でもエラーになりますね。
しかし、モジュール空間をfunc命令を実行する前にもってくると正常に動作するようです。
プリプロセッサ命令系は最初の行にまとめて使う人が多いので、問題視されなかったのではないでしょうか。



cats

リンク

2016/2/19(Fri) 19:42:03|NO.74656

あまり詳しいことは分かりませんが、HSPの最適化は
使用されていないと判断された関数をコンパイルしないという仕組みです。
従って、(どういう条件かは知りませんが)未使用と判断されるのを防ぐには
明示的に関数を使用する場所をモジュール外で作る必要があります。
例えば例示されたプログラムの最後に

*dummy stop Beep 0, 0
などと書けばコンパイルできます。
(endより下に飛ばないので不要と判断された?)
今回の例ではモジュールの場所を変えればいいのですが、
特殊な場合はダミーを仕込む以外どうしようもないのでできれば直してほしいですね。



ONION software Copyright 1997-2023(c) All rights reserved.