RENESAS TOOL NEWS 2004年12月01日 : RSO-TM-041201D
統合開発環境 TM の使用上の注意事項を連絡します。
- 該当製品
次のCコンパイラパッケージと使用する場合のTM V.3.00~V.3.20A
M32C/90, M32C/80, M16C/80, M16C/70シリーズ用:
M3T-NC308WA V.3.00 Release1 以降
M16C/60, M16C/30, M16C/Tiny, M16C/20, およびM16C/10シリーズ用:
M3T-NC30WA V.4.00 Release1 以降
- 内容
プロジェクトに含まれているソースファイルにtypedef宣言されたenum型変数が記述されている場合、インスペクタを起動すると直後にインスペクタが不正終了します。
- 発生条件
以下の条件をすべて満たす場合に発生します。
| (1) | typedefでenum型の型名を定義している。 |
| (2) |
(1)で定義した型名をtypedefで別の型名に再定義している。 |
| (3) |
(2)で再定義した型名で変数を定義している。 |
発生例
----------------------------------------------------------------------
typedef enum _NUMBER{ NUM_0,NUM_1,NUM_2} NUMBER; /* 発生条件(1) */
typedef NUMBER NUM; /* 発生条件(2) */
NUM number; /* 発生条件(3) */
----------------------------------------------------------------------
- 回避策
次のいずれかの方法で回避してください。
| (1) | typedefで定義したenum型の型名を使用しない。
例
------------------------------------------------------------------
typedef enum _NUMBER{ NUM_0,NUM_1,NUM_2} NUMBER;
typedef enum _NUMBER NUM; /* typedefで定義したenum型の型名 */
NUM number; /* NUMBERを使用しない */
------------------------------------------------------------------ |
| |
| (2) | typedefで定義したenum型の型名をtypedefで別の型名に再定義しない。
例
------------------------------------------------------------------
typedef enum _NUMBER{ NUM_0,NUM_1,NUM_2} NUMBER;
/* typedef NUMBER NUM; */
/* NUM number; */
NUMBER number;
------------------------------------------------------------------ |
- 恒久対策
本内容は、次期バージョンアップの際に改修する予定です。