以下のオプションを追加しました。
リンク時の最適化により、デバッグ情報(行情報)が不正に編集されデバッガ上での表示が不正になる場合がある不具合を対策しました。
【発生条件】
次の条件をすべて満たす場合、発生する可能性があります。
共通コード統合最適化(optimize=same_code)が有効な場合にオブジェクト不正となる場合がある不具合を対策しました。不具合は、optlnk V.8.00.03以降で発生します。
【発生条件】
以下の条件1.〜3.をすべて満たす場合、発生する可能性があります。
【ソース例】 #pragma entry f_entry void f_a(){ : } void f_entry(){ // エントリ関数 : } void f_b(){ // 以降の関数が最適化対象となる : }
motファイル、もしくはhexファイルを出力した場合に、命令やデータが存在しない空き領域に対して、"0"(アスキーコード:0x30)を出力すべきところにNULL(アスキーコード:0x00)が不当に出力されてしまう不具合を対策しました。
【発生条件】
次の条件を全て満たす時、発生することがあります。
共通コード統合最適化を指定した場合に、共通化したサブルーチンへの分岐命令が不正になる場合がある不具合を対策しました。
【発生条件】
次の条件をすべて満たす場合、発生することがあります。
change_messageオプションで、複数のエラーレベルを指定できない不具合を対策しました。
【例】
下記のようにchange_messageオプションを指定した場合、バージョンが8.0.03以前のリンカでは不当にエラーとなってしまいます。
optlnk -change_message=e=1000,w=2000 *.obj
未参照シンボル削除最適化を指定した場合に、シンボル名を持たないリテラルを不当に削除する場合がある不具合を対策しました。
【発生条件】
次の条件を全て満たす時、発生することがあります。
optlnk V.8.00.04において、stripオプションを使用した場合に内部エラー(L4001)となる不具合を対策しました。
初期値なしデータセクションをオーバーレイ配置した際、出力形式にbinary/HEX/S-typeを指定すると不要なエラーメッセージ(L2022)が出力される問題点を解決しました。
最適化リンケージエディタ Ver.8.0.00〜Ver.8.0.03には次の不具合があります。本不具合は、SH C/C++コンパイラパッケージのみ発生します。申し訳ございませんが、ご使用時にはご注意ください。(Ver.8.0.04にて修正予定。)
【現象】
S-Type(もしくはHEX)フォーマットファイルを出力する場合に、命令やデータが存在しない空き領域に対して、 "0"(アスキーコード:0x30)を出力すべきところにNULL(アスキーコード:0x00)が不当に出力されてしまう場合があります。一部ROMライタでは、NULLは入力時にエラーになる可能性があります。
【発生条件】
次の条件をすべて満たす場合に発生します。
【回避方法】
次の情報を修正してください。
memoryオプション指定により、内部のメモリ使用量を指定することができます。これにより大規模プログラム開発時にリンク速度を向上することが可能です。
spaceオプション指定により、空きエリアへ指定値を埋め込むことができます。
リンク時にセクションのアドレスが重なった場合のエラーレベルをFatalからErrorに変更しました。セクションアドレス重複時のリンケージマップ情報を出力することが可能です。