MESC TOOL NEWS:
MESCT-NC30WA_1-981001D
NC30WA, NC30
NC77WA, NC77
NC79WA, NC79
ご使用上のお願い
|
この度、M16C/60シリーズ用CコンパイラNC30WA, NC30、77XXシリーズ用CコンパイラNC77WA, NC77、および7900シリーズ用CコンパイラNC79WA, NC79のご使用上の注意事項をご連絡いたします。
本件につきましては誠に申し訳ございませんが、 本資料に示します回避策で対応くださいますようお願いいたします。
なお、
本件はNC30WA V.3.00 Release 1以降、NC77WA V.5.00 Release 1, NC79WA V.3.00 Release 1では修正しております。
#ifで式を正しく評価できない場合がある
- 発生バージョン
| 製品名 | 問題発生バージョン |
| NC30WA, NC30 | V.1.00 Release 1 ~ V.2.00 Release 1 |
| NC77WA, NC77 | V.3.00 Release 1 ~ V.4.00 Release 1 |
| NC79WA, NC79 | V.2.00 Release 1 ~ V.2.00 Release 2 |
- 概 要
#ifおよび#if definedで定数値を比較する場合、定数値中に0(ゼロ)が含まれていると正しく評価できない。
- 発生条件
以下の条件を同時に満たす場合のみ発生します。
- 「#if」または「#if defined」の評価式を使用する。
- 評価式中で、評価する値の2文字目以降に0(ゼロ)を含む。
- 発生現象
評価式中で、0(ゼロ)を含む値が正しく認識されません。
- 発生例
[Cソースファイル]
-----------------------------------------------------------------------
#define D1 512
#define D2 4096
#if D1 < D2
#define MES "TYPE D1"
#else
#define MES "TYPE D2"
#endif
main()
{
func(MES); /* 文字列"TYPE D2"が渡されてしまう */
}
-----------------------------------------------------------------------
- 対応策
プリプロセスコマンド「#if」および「#if defined」の条件式中でのみ発生します。「#if」の代わりに通常のif文、switch文等を使用してくださるようお願いいたします。