RENESAS TOOL NEWS [ 2003年10月16日 : RSO-M3T-NC308WA_2-031016D ]
M3T-NC308WA, M3T-NC30WA
ご使用上のお願い
|
Cコンパイラ(アセンブラ・統合化開発環境付き) M3T-NC308WAおよびM3T-NC30WAの使用上の注意事項を連絡します。
- 該当製品
M32C/80, M16C/80, M16C/70シリーズ用Cコンパイラ:
M3T-NC308WA V.5.00 Release 1 ~ V.5.10 Release 1
M16C/60, M16C/30, M16C/Tiny, M16C/20, M16C/10, R8C/Tinyシリーズ用Cコンパイラ:
M3T-NC30WA V.5.00 Release 1 ~ V.5.20 Release 1
- 内容
定数同士の除算または剰余算を行うと誤った結果になる場合があります。
- 2.1 発生条件
- 以下の条件をすべて満たした場合に発生します。
| (1) | 定数同士の除算または剰余算を含む式がある。 |
| (2) | 除算または剰余算の被除数あるいは除数のどちらか一方がsigned long long型、または unsigned long long 型である。 |
| (3) | 被除数の上位32ビットがゼロでも0xffffffffでもない。 |
- 2.2 発生例
---------------------------------------------------
long long l;
main()
{
l = 900000000000000LL/9000000; /* 発生条件(1),(2),(3) */
}
---------------------------------------------------
- 回避策
除算または剰余算の演算式を演算結果に置き換えてください。
---------------------------------------------------
long long l;
main()
{
l = 100000000; /* 除算結果に置き換える */
}
---------------------------------------------------
- 恒久対策
本現象は、次期バージョンアップで改修する予定です。