RENESAS TOOL NEWS 2007年07月16日 : 070716/tn3
| M16Cシリーズ用Cコンパイラパッケージ V.5.43 Release 00
ご使用上のお願い
--#pragma SECTION使用時の注意事項-- |
M16Cシリーズ用Cコンパイラパッケージの使用上の注意事項を連絡します。
1. 該当製品
M16Cシリーズ*用Cコンパイラパッケージ (M3T-NC30WA)
V.5.43 Release 00
*M16C/60, /30, /20, /10, /Tiny, およびR8C/Tinyシリーズの総称です。
2. 内容
const修飾された変数に対して#pragma SECTIONを宣言してセクション名を
変更すると、その変数を誤ったセクションに生成する場合があります。
3. 発生条件
以下の条件すべてに該当する場合に発生します。
(1) const変数に対するextern宣言を行っている。
(2) (1)の宣言より後ろの行で#pragma SECTIONを用いてROM属性のセクション名を
変更する宣言をしている。
(3) (1)でextern宣言を行ったconst型変数の宣言を(2)の宣言の後に行っている。
発生例
------------------------------------------------------------------------
extern const int i;
#pragma SECTION rom rom2
. . . . . . . . . . . . . .
const int i = 1;
------------------------------------------------------------------------
上記ソースをコンパイルすると変数'i'が変更前のセクション'rom'に
生成されます。
4. 回避策
extern宣言よりも前の行で#pragma SECTIONの宣言を行ってください。
5. 恒久対策
次バージョンで修正する予定です。