Renesas Synergy™

FAQ 3000014 : インラインアセンブル関数とE0550213メッセージ(CC-RL)

Q : 質問

RL78コンパイラCC-RLを使用しています。インラインアセンブル関数でラベルを定義すると、E0550213のエラーが出力されるのですが、対処方法を教えてください。 「E0550213:ラベルxxxxが複数回定義されています。 」

(例)
#pragma inline_asm sample
void sample(void) {
  LABEL_01:
    NOT1 CY
    BZ LABEL_01
}


A : 回答

#pragma inline_asm関数内にラベルを書くと、定義とインライン展開の数だけ同一名のラベルが作られます。
この場合はアセンブリ記述のローカル・ラベルを使用してください。ローカル・ラベルはアセンブリ・ソースでは同一名ですが、アセンブラが自動的に別名に変換します。

(例)
#pragma inline_asm sample
void sample(void) {
  .LOCAL LABEL_01 ;追加
  LABEL_01:
    NOT1 CY
    BZ LABEL_01
}

 

適用製品

e² studio
CS+ (旧 CubeSuite+)
RL78ファミリ用Cコンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください