RENESAS TOOL NEWS 2005年12月01日 : RSO-M3T-NC308WA-051201D
Cコンパイラパッケージ
M3T-NC308WAおよびM3T-NC30WA
ご使用上のお願い |
M16Cファミリ用CコンパイラパッケージM3T-NC308WAおよびM3T-NC30WAの使用上の注意事項を連絡します。
- 該当製品
M32C/90, M32C/80シリーズ, M16C/80 および M16C/70シリーズ用
M3T-NC308WA V.5.20 Release 1 および V.5.20 Release 02
M16C/60, M16C/30, M16C/20, M16C/10, M16C/Tiny および R8C/Tinyシリーズ用
M3T-NC30WA V.5.30 Release 1 および V.5.30 Release 02
- 内容
リンク時にオプション"-JOPT"を使用すると、実際には2重指定はされていない指示命令".ID"、".PROTECT"および".OFSREG"についてもリンカが誤って以下のワーニングメッセージを出力することがあります。
M3T-NC308WAの場合
Warning (ln308): Directive command '.ID' is duplicated
または
Warning (ln308): Directive command '.PROTECT' is duplicated
M3T-NC30WAの場合
Warning (ln30): Directive command '.ID' is duplicated
または
Warning (ln30): Directive command '.PROTECT' or '.OFSREG' is duplicated
- 発生条件
以下の条件をすべて満たす場合に発生します。
| (1) |
|
指示命令".ID"、".PROTECT"および".OFSREG"のいずれかを記述している。 |
| (2) |
|
リンク時に分岐距離の最適化が可能な分岐命令が存在する。 |
| (3) |
|
コンパイラの"-Oglb_jmp [-OGJ]"オプション、あるいは、
アセンブラの"-JOPT"オプションを使用している。 |
| (4) |
|
リンカの"-JOPT"オプションを選択している。 |
発生例:
-----------------------------------------------------------------------
_asm(" .protect 0FFH"); /* 発生条件(1) */
extern void func2(void);
void func1(void)
{
func2(); /* 発生条件(2) コード jsr _func2 が生成される */
}
------------------------------------------------------------------------
- 回避策
以下のいずれかの方法で回避してください。
| (1) |
|
指示命令".ID"、".PROTECT"および".OFSREG"の代わりにそれぞれロードモジュールコンバータオプション"-ID"、"-protectx"および"-ofsregx"を使用してください。 |
| (2) |
|
指示命令".ID"、".PROTECT"および".OFSREG"を記述する場合は、リンク オプション"-JOPT"を使用しないでください。 |
- 恒久対策
次期バージョンで改修する予定です。