MESC TOOL NEWS:
MESCT-NC308WA-000501D
PC 版
NC308WA, NC30WA, NC79WA, NC77WA
ご使用上のお願い
|
Cコンパイラ(アセンブラ、統合化開発環境付き)NC308WA,NC30WA,NC79WAおよびNC77WAの使用上の注意事項を連絡します。
-
該当製品
以下製品のPC版のみで発生します。EWS版は該当しません。
| M16C/80シリーズ用Cコンパイラ | NC308WA V.1.00 Release 1 ~ V.2.00 Release 2 |
| M16C/60,M16C/20シリーズ用Cコンパイラ | NC30WA V.1.00 Release 1 ~ V.3.20 Release 2 |
| 7900シリーズ用Cコンパイラ | NC79WA V.1.00 Release 1 ~ V.3.20 Release 2 |
| 77xxシリーズ用Cコンパイラ | NC77WA V.3.00 Release 1 ~ V.5.20 Release 2 |
-
内 容
最適化オプションを使用した場合に、Windowsエラーメッセージ「不正な処理を行ないました」が出力されることがあります。
-
発生条件
以下の条件すべてを満たしている場合に問題が発生することがあります。
(1)最適化オプション -O, -O1~-O5, -OR, -OSのいずれかを使用している。
(2)C言語で分岐命令を記述している。[例1]
(3)Cソースプログラムをコンパイルした結果のアセンブリソース上に無条件分岐命令があり、その分岐先がその無条件分岐命令の直後の行に存在している。[例2]
[例1:Cソースプログラム]
-------------------------------------------------------------
void func(void)
{
unsigned char i;
for (i=0;i<2;i++){
if (i==0) return;
switch(i){
case 1:
return;
case 2:
return;
default:
func2();
return; /* 問題が発生する可能性のある箇所 */
}
}
}
-------------------------------------------------------------
上記のプログラムでは最適化オプション-Oを使用した場合に問題が発生することがあります。最適化オプション-Oを使用しない場合は発生しません。
[例2:アセンブリソース]
-------------------------------------------------------------
bra L1
L1:
-------------------------------------------------------------
発生条件を満たす場合であっても、コンパイラの最適化処理の経過によっては、エラーが発生しない場合もあります。
エラーが発生しない場合、問題はありません。
-
回避策
最適化オプション -O, -O1~-O5, -OR, -OSを使用しないでください。
-
恒久対策
本内容は、次期バージョンアップの際に改修する予定です。