RENESAS TOOL NEWS 2007年07月01日 : 070701/tn5
| M16Cシリーズ用Cコンパイラパッケージ
ご使用上のお願い
--コンパイルオプション-OSFAを使用する場合の注意-- |
M16Cシリーズ用Cコンパイラパッケージの使用上の注意事項を連絡します。
- コンパイルオプション-Ostack_frame_align(-OSFA)を使用する場合の注意
1. 該当製品
M16Cシリーズ*用Cコンパイラパッケージ (M3T-NC30WA)
V.1.00 Release 1 ~ V.5.44 Release 00
*M16C/60, /30, /20, /10, /TinyおよびR8C/Tinyシリーズの総称です。
2. 内容
コンパイルオプション-Ostack_frame_align(-OSFA)を使用した場合に、コンパ
イラが生成するインスペクタ情報やスタック使用量表示ファイル(拡張子.stk)の
スタックサイズが誤った値になる場合があります。
このため、インスペクタ情報を使用するSTKビューワやCallWalker、および
スタック使用量表示ファイルを使用するスタックサイズ算出ユーティリティ
stk30の算出するスタックサイズが誤った値になる場合があります。
3. 発生条件
以下の条件をすべて満たす場合に発生します。
(1) コンパイルオプション -Ostack_frame_align(-OSFA)を使用している。
(2) コンパイルオプション -genterを指定していない
(3) スタックフレームを構築しない関数がある。
以下の条件をすべて満たす場合にスタックフレームを構築しません。
・関数はスタックを介して渡される引数を持たない。
・自動変数がない(register指定された自動変数を除く)または、
コンパイラの最適化により自動変数が削除されている。
・コンパイラがテンポラリ変数を生成していない。
発生例
------------------------------------------------------------
void sub(unsigned int);
void func(void) /* 発生条件(3) */
{
sub(10);
}
------------------------------------------------------------
4. 回避策
ご使用中のコンパイルオプション-Ostack_frame_align(-OSFA)を使用しない
もしくは、-genterを追加してください。
5. 恒久対策
次期バージョン V.5.45 Release 00 で改修する予定です。