以下の問題を改修しました。
コンパイルオプション | ライブラリファイル | |
---|---|---|
変更後 | 変更前 | |
-pic=0 -endian=big | sh4aldspnb.lib | sstrongdspnb.lib |
-pic=1 -endian=big | sh4aldsppb.lib | sstrongdsppb.lib |
-pic=0 -endian=little | sh4aldspnl.lib | sstrongdspnl.lib |
-pic=1 -endian=little | sh4aldsppl.lib | sstrongdsppl.lib |
1バイトもしくは2バイトの同じ型の変数同士を減算し、減算結果を同じサイズのsignedの型に変換して0と大小比較した時に、型変換でオーバフローが生じた場合に型変換後のビットサイズを常に使用するように変更しました。
[例] extern void g(void); unsigned short a,b; f() { short t = a - b;
// a = 0xffff, b = 0x0000 の場合 t = 0xffff if (t > 0) { // 比較結果は偽となる g(); } }
以下のオプションを追加しました。
詳細については、「SuperH RISC engine C/C++コンパイラV.8.00.03 追加オプション一覧」を参照してください。
対策した制限事項につきましては、下のページを参照してください。
fixed_const、fixed_max、fixed_noround、repeatの4オプションについて、その指定箇所をCPUタブからコンパイラタブへ変更しました。
対策した制限事項につきましては、下のページを参照してください。
ライブラリ構築時にfixed_const、fixed_max、fixed_noroundオプションを指定した場合、エラーになる問題を解決しました。
新CPU SH-4A、SH4AL-DSP をサポートしました。
#pragma拡張子 | 機能 |
---|---|
#pragma ifunc | 浮動小数点レジスタの退避/回復抑止 |
#pragma bit_order | ビットフィールド並び順指定 |
#pragma pack | 構造体、共用体、クラスメンバの境界調整数指定 |
オプション | 機能 |
---|---|
auto_enum | 列挙型を、列挙型が収まる最小型とする |
pack | 構造体、共用体、クラスメンバの境界調整数指定 |
bit_order | ビットフィールドのメンバの並び順指定 |
インフォメーション、ウォーニングレベルメッセージのエラーレベルを個別に変更できるようにしました。
switch文の数を256個から2048個に拡張しました。