ARM コンパイラツールチェーン エラーおよび警告リファレンス

ARM コ ンパイ ラ ツールチ ェ ーン
®
バージ ョ ン 5.01
エ ラ ーおよび警告 リ フ ァ レ ン ス
Copyright © 2010-2012 ARM. All rights reserved.
ARM DUI 0496GJ (ID 0 5 1 6 1 2 )
ARM コ ンパイ ラ ツールチ ェ ーン
エ ラ ーお よび警告 リ フ ァ レ ン ス
Copyright © 2010-2012 ARM. All rights reserved.
リ リ ース情報
変更履歴
日付
発行
機密保持ス テー タ ス
変更点
2010 年 5 月
A
非機密扱い
ARM コ ンパ イ ラ ツールチ ェ ーン v4.1 リ リ ース
2010 年 9 月 30 日
B
非機密扱い
ARM コ ンパ イ ラ ツールチ ェ ーン v4.1 のア ッ プデー ト 1
2011 年 1 月 28 日
C
非機密扱い
ARM コ ンパ イ ラ ツールチ ェ ーン v4.1 パ ッ チ 3 のア ッ プ
デー ト 2
2011 年 4 月 30 日
D
非機密扱い
ARM コ ンパ イ ラ ツールチ ェ ーン v5.0 リ リ ース
2011 年 7 月 29 日
E
非機密扱い
ARM コ ンパ イ ラ ツールチ ェ ーン v5.0 のア ッ プデー ト 1
2011 年 9 月 30 日
F
非機密扱い
ARM コ ンパ イ ラ ツールチ ェ ーン v5.01 リ リ ース
2012 年 2 月 29 日
G
非機密扱い
ARM コ ンパ イ ラ ツールチ ェ ーン v5.01 リ リ ース マニ ュ ア
ルの更新
著作権
ま たは ™ のマー ク が付いた言葉お よ び ロ ゴは、 こ の著作権情報で別段に規定 さ れてい る 場合を除 き 、
ARM の EU ま たはその他の国におけ る 登録商標お よ び商標です。 本書に記載 さ れてい る 他の製品名は、 各
社の所有す る 商標です。
®
本書に記載 さ れてい る 情報の全部ま たは一部、 な ら びに本書で紹介す る 製品は、 著作権所有者の文書に よ
る 事前の許可を得ない限 り 、 転用 ・ 複製 る こ と を禁 じ ます。
本書に記載 さ れてい る 製品は、 今後 も 継続的に開発 ・ 改良の対象 と な り ます。 本書に含ま れ る 製品お よ び
その利用方法についての情報は、 ARM が利用者の利益のために提供す る も のです。 し たが っ て当社では、
製品の市販性ま たは利用の適切性を含め、 暗示的 ・ 明示的に関係な く 一切の任を負い ません。
本書は、 本製品の利用者をサポー ト す る こ と だけ を目的 と し てい ます。 本書に記載 さ れてい る 情報の使用、
情報の誤 り ま たは省略、 あ る いは本製品の誤使用に よ っ て発生 し たいかな る 損失 ・ 損傷について も 、 ARM
は一切責任を負い ません。
ARM と い う 用語が使用 さ れてい る 場合、 "ARM ま たは必要に応 じ てその子会社 " を指 し ます。
機密保持ス テー タ ス
本書は非機密扱いであ り 、 本書を使用、 複製、 お よ び開示す る 権利は、 ARM お よ び ARM が本書を提供 し
た当事者 と の間で締結 し た契約の条項に基づいた ラ イ セ ン ス の制限に よ り 異な り ます。
製品ス テー タ ス
本書の情報は最終版であ り 、 開発済み製品に対応 し てい ます。
Web ア ド レ ス
http://www.arm.com
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
ii
目次
ARM コ ンパイ ラ ツールチ ェ ーン エ ラ ーおよび警告 リ
フ ァ レンス
第1章
第2章
表記規則 と フ ィ ー ド バ ッ ク
C および C++ コ ンパイ ラのエ ラ ーおよび警告
2.1
2.2
2.3
2.4
第3章
アセ ン ブ ラのエ ラ ーおよび警告
3.1
第4章
ARM DUI 0496GJ
ID 0 5 1 6 1 2
armar のエ ラ ーおよび警告 メ ッ セージの リ ス ト ..................................................... 6-2
その他のエ ラ ーおよび警告
7.1
Appendix A
fromelf のエ ラ ーおよび警告 メ ッ セージの リ ス ト .................................................... 5-2
ラ イ ブ ラ リ ア ンのエ ラ ーおよび警告
6.1
第7章
armlink のエ ラ ーおよび警告 メ ッ セージの非表示 ................................................... 4-2
armlink のエ ラ ーおよび警告 メ ッ セージの リ ス ト ................................................... 4-3
ELF イ メ ージ変換ユーテ ィ リ テ ィ のエ ラ ーおよび警告
5.1
第6章
armasm のエ ラ ーおよび警告 メ ッ セージの リ ス ト .................................................. 3-2
リ ン カのエ ラ ーおよび警告
4.1
4.2
第5章
内部エ ラ ー と その他の予期 し ないエ ラ ー ................................................................ 2-2
armcc のエ ラ ーおよび警告 メ ッ セージの非表示 ..................................................... 2-3
armcc のエ ラ ーおよび警告 メ ッ セージの リ ス ト ..................................................... 2-4
古いス タ イルの armcc のエ ラ ーお よび警告 メ ッ セージの リ ス ト ......................... 2-67
その他のエ ラ ーおよび警告 メ ッ セージの リ ス ト ..................................................... 7-2
『エ ラ ーおよび警告 リ フ ァ レ ン ス』 に対する改訂
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
iii
第1章
表記規則 と フ ィ ー ド バ ッ ク
以下では、 表記規則 と フ ィ ー ド バ ッ ク の方法について説明 し ます。
表記規則
以下の表記規則を使用 し てい ます。
monospace コ マ ン ド 、 フ ァ イ ル名、 プ ロ グ ラ ム名、 ソ ース コ ー ド な ど、 キー
ボー ド か ら 入力可能なテ キ ス ト を示 し てい ます。
monospace コ マ ン ド ま たはオプシ ョ ン に使用可能な略語を示 し ます。 コ マ ン
ド 名ま たはオプシ ョ ン名をすべて入力す る 代わ り に、 下線部分の
文字だけ を入力す る こ と がで き ます。
monospace italic
コ マ ン ド ま たは関数の引数で、 特定の値に置 き 換え る こ と が可能
な も の を示 し てい ます。
monospace bold
サ ンプル コ ー ド 以外に使用 さ れ る 言語キー ワー ド を示 し てい ま
す。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
italic
重要事項、 重要用語、 相互参照、 引用箇所を斜体で記載 し てい ま
す。
bold
メ ニ ュ ー名な ど のユーザ イ ン タ フ ェース要素を太字で記載 し てい
ます。 ま た、 適宜記述 リ ス ト 内の重要箇所 と ARM® プ ロ セ ッ サの
信号名に も 太字を用いてい ます。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
1-1
表記規則 と フ ィ ー ド バ ッ ク
本製品に関す る フ ィ ー ド バ ッ ク
本製品についてのご意見やご提案がご ざい ま し た ら 、 以下の情報を添え
て購入元ま でお寄せ下 さ い。
•
お名前 と 会社名
•
製品のシ リ アル番号
•
製品の リ リ ース情報
•
ご使用のプ ラ ッ ト フ ォ ーム の詳細 (ハー ド ウ ェ アプ ラ ッ ト フ ォー
ム、 オペレーテ ィ ン グ シ ス テ ムの種類 と バージ ョ ン な ど)
•
問題を再現す る サ イ ズの小 さ な独立 し たサン プル コ ー ド
•
操作の目的 と 実際の動作に関す る 詳 し い説明
•
使用 し た コ マ ン ド ( コ マ ン ド ラ イ ン オプシ ョ ン を含む)
•
問題を例示す る サン プル出力
•
ツールのバージ ョ ン情報 (バージ ョ ン番号、 ビル ド 番号を含む)
内容に関す る フ ィ ー ド バ ッ ク
内容に関す る ご意見につ き ま し ては、 電子 メ ールを [email protected] ま で
送信 し て下 さ い。 その際には、 以下の内容を記載 し て下 さ い。
•
タイ トル
•
文書番号 (ARM DUI 0496GJ)
•
オ ン ラ イ ン で ご覧の場合は、 該当す る ト ピ ッ ク 名
•
PDF 版の文書を ご覧の場合は、 問題のあ る ページ番号
•
問題点の簡潔な説明
ま た、 補足すべ き 点や改善すべ き 点についての全般的な ご提案 も お待ち
し てお り ます。
ARM では、 技術情報記事や FAQ の拡充 と 共に、 ド キ ュ メ ン ト に対す る 更新 と 訂正を
ARM Information Center にて定期的に行っ てお り ます。
その他の情報
•
ARM Information Center, http://infocenter.arm.com/help/index.jsp
•
ARM Technical Support Knowledge Articles,
http://infocenter.arm.com/help/topic/com.arm.doc.faqs/inde
x.html
•
ARM サポー ト お よ び メ ン テナン ス ,
http://www.arm.com/support/services/support-maintenance.php
•
ARM 用語集 ,
http://infocenter.arm.com/help/topic/com.arm.doc.aeg0014-/index.html
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
1-2
第2章
C および C++ コ ンパイ ラのエ ラ ーおよび警告
以下の ト ピ ッ ク では、 C お よ び C++ コ ンパ イ ラ (armcc) のエ ラ ーお よ び警告 メ ッ セー
ジについて説明 し てい ます。
•
内部エ ラ ー と その他の予期 し ないエ ラ ー (2-2 ページ)
ARM DUI 0496GJ
ID 0 5 1 6 1 2
•
armcc のエ ラ ーお よ び警告 メ ッ セージの非表示 (2-3 ページ)
•
armcc のエ ラ ーお よ び警告 メ ッ セージの リ ス ト (2-4 ページ)
•
古い ス タ イ ルの armcc のエ ラ ーお よ び警告 メ ッ セージの リ ス ト (2-67 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-1
C および C++ コ ンパイ ラのエ ラ ーおよび警告
2.1
内部エ ラ ー と その他の予期 し ないエ ラ ー
コ ンパ イ ラ の内部エ ラ ーは、 通常、 発生 し ていて も ま だ文書化 さ れていないエ ラ ー
であ る か、 コ ンパ イ ラ 自体の潜在的な問題を意味 し てい ます。
以下に例を示 し ます。
内部 エ ラ ー :
[0x87ecef:5010591]
こ れには、 以下の情報が含ま れてい ます。
•
メ ッ セージの説明 (内部 エ ラ ー )
•
発生 し たエ ラ ーを示す、 6 桁の 16 進数のエ ラ ー コ ー ド (0x87ecef)。
以前のバージ ョ ンの コ ー ド は、 4 桁で し た。
•
バージ ョ ン番号 (501 は ARM コ ンパ イ ラ v5.01)
•
ビル ド 番号 ( こ の例では 0591)。
内部エ ラ ーが表示 さ れた場合は、 購入元にお問い合わせ下 さ い。
調査を容易にす る ために、 エ ラ ーを発生 さ せた ソ ース フ ァ イ ル ま たは関数のみを送
る よ う に し て下 さ い。 ま た、 コ ー ド の コ ンパ イ ルに使用 し た コ ンパ イ ラ オプシ ョ ン
も お知 ら せ下 さ い。
フ ァ イ ルの前処理が必要にな る 場合 も あ り ます。 つま り 、 #include で追加 さ れ る フ ァ
イ ル も 考慮す る 必要があ り ます。 その場合は、 次の よ う に し て、 フ ァ イ ルを プ リ プ ロ
セ ッ サに通 し ます。
armcc <options> –E sourcefile.c > PPsourcefile.c
こ こ で、 <options> は、 -O2、 -g、 -I、 -D な ど の通常の コ ンパ イ ル ス イ ッ チです。 ただ
し 、 -c は指定 し ません。
前処理 し た フ ァ イ ルで も エ ラ ーが再現 さ れ る か ど う か を確認す る ために、 次の よ う
に し て、 フ ァ イ ルを コ ンパ イ ル し ます。
armcc <options> -c PPsourcefile.c
その後、 PPsourcefile.c フ ァ イ ル と コ ンパ イ ルの <options> を購入元に送付 し て下 さ
い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-2
C および C++ コ ンパイ ラのエ ラ ーおよび警告
2.2
armcc のエ ラ ーおよび警告 メ ッ セージの非表示
コ ンパ イ ラ は、 通常、 潜在的な移植性の問題やその他の問題点に関す る 警告を表示
し ます。
従来の コ ー ド (古い ス タ イ ルの C) を ARM に移植す る 場合、 多 く の警告が報告 さ れ
ます。 こ れ ら のすべての警告を、 –W で非表示にす る のが便利だ と 思え る 場合 も あ り ま
す。 し か し 、 移植性に関す る 理由か ら 、 警告を非表示にす る よ り も 、 コ ー ド を ANSI
互換に変更 る こ と を推奨 し ます。
一部の警告は、 デフ ォ ル ト で非表示にな っ てい ます。 こ れを オーバー ラ イ ド す る に
は、 --strict_warnings ス イ ッ チを使っ て、 非表示にな っ てい る すべての警告を有効に
し ます。
デフ ォ ル ト では、 最適化 メ ッ セージ (1593 か ら 2159 ま での メ ッ セージの大部分) は
警告ではあ り ません。 最適化 メ ッ セージ を警告 と し て扱 う には
--diag_warning=optimizations オプシ ョ ン を使用 し ます。
2.2.1
関連項目
参照
『 コ ン パ イ ラ リ フ ァ レ ン ス』 :
ARM DUI 0496GJ
ID 0 5 1 6 1 2
•
--diag_warning=tag[,tag,...] (3-82 ペ ー ジ)
•
--strict_warnings (3-205 ペ ー ジ)
•
-W (3-230 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-3
C および C++ コ ンパイ ラのエ ラ ーおよび警告
2.3
armcc のエ ラ ーおよび警告 メ ッ セージの リ ス ト
armcc のエ ラ ーお よ び警告 メ ッ セージは、 次の と お り です。
0
不明な エ ラ ー
1
フ ァ イ ル の最終行が復帰改行文字な し で終了 し て い ま す
2
フ ァ イ ル の最終行が バ ッ ク ス ラ ッ シ ュ で終了 し て い ま す
3
# イ ン ク ル ー ド フ ァ イ ル <entity> は そ の フ ァ イ ル自体 を イ ン ク ル ー ド し ま す
4
メ モ リ が不足 し て い ま す
5
<entity> の入力 フ ァ イ ル <filename> を 開け ま せ ん : <reason>
以下に例を示 し ます。
#include <file.h>
では、 次の よ う な メ ッ セージが表示 さ れ ます。
エ ラ ー : #5: source の入力 フ ァ イ ル "file.h" を 開け ま せ ん : そ の よ う な フ ァ イ ル ま た は
デ ィ レ ク ト リ はあ り ません
こ れは、 file.h がシ ス テ ム イ ン ク ルー ド デ ィ レ ク ト リ に存在 し ないため
です。
6
コ メ ン ト が フ ァ イ ル の最後で閉 じ ら れ て い ま せ ん
コ メ ン ト が /* で始ま っ てい ますが、 コ メ ン ト を閉 じ る ための対応す る
*/ があ り ません。
7
認識 さ れ な い ト ー ク ン
8
閉 じ 引用符が あ り ま せ ん
以下に例を示 し ます。
char foo[] = {"\"};
こ の例では、 バ ッ ク ス ラ ッ シ ュ に よ っ て、 後ろ の引用符 " が文字列を閉
じ る 記号ではな く 、 リ テ ラ ル文字 と し て扱われてい ます。 こ れを修正す
る には、 次の よ う に し ます。
char foo[] = {"\\"};
9
コ メ ン ト を 入れ子に す る こ と は で き ま せ ん
以下に例を示 し ます。
/*nested
/*comment*/
10
こ こ で は "#" は期待 さ れ て い ま せ ん
11
認識 さ れ な い プ リ プ ロ セ ッ シ ン グ デ ィ レ ク テ ィ ブ
以下に例を示 し ます。
#foo
12
前の構文 エ ラ ー の後、 解析は こ こ か ら 再開 さ れ ま す
13
フ ァ イ ル名が期待 さ れ ま す
以下に例を示 し ます。
#include <stdio.h>
14
ARM DUI 0496GJ
ID 0 5 1 6 1 2
プ リ プ ロ セ ッ シ ン グ デ ィ レ ク テ ィ ブ の最後 と 期待 さ れ る場所の後に余分な テ キ ス ト が あ り ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-4
C および C++ コ ンパイ ラのエ ラ ーおよび警告
以下に例を示 し ます。
#if EMBEDDED foo
ま たは
#include <stdio.h> foo
ま たは
#ifdef SOMETHING
:
#endif SOMETHING
#endif は、 引数を必要 と し ません。 行の末尾の部分を次の よ う に コ メ ン
ト と し て囲めば、 問題を解決で き ます。
#endif /* SOMETHING */
16
<entity> は有効な ソ ー ス フ ァ イ ル名で は あ り ま せ ん
17
] が期待 さ れ ま す
18
) が期待 さ れ ま す
以下に例を示 し ます。
int main(void
{
こ こ では、 ) が欠けてい ます。
19
数字の最後 と 期待 さ れ る場所の後に余分な テ キ ス ト が あ り ま す
以下に例を示 し ます。
int a = 37r;
20
識別子 <entity> が定義 さ れ て い ま せ ん
例えば、 C++ で コ ンパ イ ルす る 場合、 以下の コ ー ド
void foo( arg ) { }
では、 次の よ う な メ ッ セージが表示 さ れ ます。
エ ラ ー : #20: 識別子 <arg> が定義 さ れ て い ま せ ん
次の コ ー ド 例 も 、 こ のエ ラ ーを発生 さ せます。
int foo(void)
{
int a = 4;
a = i;
}
次の よ う な メ ッ セージが表示 さ れます。
エ ラ ー : #20: 識別子 "i" が定義 さ れ て い ま せ ん
こ れは、 i が宣言 さ れていないためです。
21
型修飾子は こ の宣言内で は無効で す
22
無効な 16 進数
23
整数定数が長す ぎ ま す
24
無効な 8 進数
以下に例を示 し ます。
int a = 0378;
25
ARM DUI 0496GJ
ID 0 5 1 6 1 2
引用符で囲 ま れ た ス ト リ ン グ内に は、 少な く と も 1 つ の文字が含 ま れ て い る 必要が あ り ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-5
C および C++ コ ンパイ ラのエ ラ ーおよび警告
以下に例を示 し ます。
char a ='';
26
文字定数内に文字が多す ぎ ま す
以下に例を示 し ます。
char a =’ abcd’ ;
こ れは、 エ ラ ーにな り ます。
注
単一引用符で囲まれた文字列には、 1 文字 し か指定で き ません。 複数の
文字を指定す る 場合は、 二重引用符を使用す る 必要があ り ます。 文字列
は、 a[] の よ う な適切な変数に割 り 当て る 必要があ り ます。
27
文字の値が範囲外で す
以下に例を示 し ます。
char foo[] = {"\xBBBB" };
では、 次の よ う な メ ッ セージが表示 さ れ ます。
警告 : #27-D : 文字の値が範囲外で す
28
式に定数値 を 含め る 必要が あ り ま す
29
式が期待 さ れ ま す
30
浮動小数点定数が範囲外で す
31
式は整数型で あ る必要が あ り ま す
32
式は算術型で あ る必要が あ り ま す
33
行番号が期待 さ れ ま す
34
無効な行番号
35
# エ ラ ー デ ィ レ ク テ ィ ブ : <entity>
36
こ の デ ィ レ ク テ ィ ブ の #if が あ り ま せ ん
37
こ の デ ィ レ ク テ ィ ブ の #endif が あ り ま せ ん
開かれた #if が ま だア ク テ ィ ブにな っ ていて、 フ ァ イ ルの末尾 よ り も 前
で #endif に よ っ て閉 じ ら れてい ません。
38
デ ィ レ ク テ ィ ブ は使用で き ま せ ん -- #else が既に表示 さ れ て い ま す
39
ゼ ロ に よ る除算
40
識別子が期待 さ れ ま す
こ のエ ラ ーは、 プ リ プ ロ セ ッ サ ス テー ト メ ン ト が正 し い形式でない場合
に発生 し ます。 例えば、 プ リ プ ロ セ ッ サ コ マ ン ド の直後に必要な識別子
が定 さ れていない場合な ど です。 #define の後の識別子がなか っ た場合
は、 次のエ ラ ーが表示 さ れ ます。
エ ラ ー : #40: 識別子が期待 さ れ ま す
こ のエ ラ ーは、 次の よ う な、 C++ キー ワー ド が含ま れてい る C コ ー ド を
C++ コ ンパ イ ラ で コ ンパ イ ル し た場合に も 発生 し ます。
int *new(void *p) { return p; }
こ れは、 new が C++ のキーワ ー ド であ る ため、 エ ラ ーにな り ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-6
C および C++ コ ンパイ ラのエ ラ ーおよび警告
41
式は算術型 ま た は ポ イ ン タ 型で あ る 必要が あ り ま す
42
オ ペ ラ ン ド の型の間に互換性が あ り ま せ ん (<type> と <type>)
44
式は ポ イ ン タ 型で あ る 必要が あ り ま す
45
#undef は こ の定義済み名に は使用で き ま せ ん
46
<entity> は定義済み で す。 再定義は無視 さ れ ま す
47
マ ク ロ <entity> の再定義に互換性が あ り ま せ ん
マ ク ロ が 2 回 (異な る 置換文字列で) 定義 さ れ ま し た。
その よ う にす る 必要があ る 場合は、 2 回目の定義の前でマ ク ロ の定義を
解除 し て下 さ い (#undef)。
以下に例を示 し ます。
#define TEST 0
#define TEST 1
こ の よ う にす る と 、 コ ンパ イ ラ に よ っ て以下の メ ッ セージが生成 さ れま
す。
警告 : #47-D : マ ク ロ "TEST" の再定義に互換性が あ り ま せ ん (行 1 で宣言)
こ のエ ラ ーを コ ンパ イ ラ オプシ ョ ン で直接制御す る 方法はあ り ません。
し か し 、 コ ンデ ィ シ ョ ナルプ リ プ ロ セ ッ シ ン グ を使用す る こ と がで き ま
す 以下に例を示 し ます。
#ifdef TEST_EQUALS_ZERO
#define TEST 0
#else
#define TEST 1
#endif
armcc -c foo.c で コ ンパ イ ルす る と 、 TEST は 1 と し て定義 さ れます (デ
フ ォ ル ト )。
armcc -c -DTEST_EQUALS_ZERO foo.c で コ ンパ イ ルす る と 、 TEST は 0 と し て定
義 さ れます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
49
マ ク ロ パ ラ メ ー タ 名が重複 し て い ま す
50
"##" を マ ク ロ 定義の最初に す る こ と は で き ま せ ん
51
"##" を マ ク ロ 定義の最後に す る こ と は で き ま せ ん
52
マ ク ロ パ ラ メ ー タ 名が期待 さ れ ま す
53
: が期待 さ れ ま す
54
マ ク ロ 呼び出 し 内の引数が少な す ぎ ま す
55
マ ク ロ 呼び出 し 内の引数が多す ぎ ま す
56
sizeof の オ ペ ラ ン ド に関数は使用で き ま せ ん
57
こ の演算子は定数式で は使用で き ま せ ん
58
こ の演算子は プ リ プ ロ セ ッ シ ン グ式で は使用で き ま せ ん
59
関数呼び出 し は定数式で は使用で き ま せ ん
60
こ の演算子は整数的な定数式で は使用で き ま せ ん
61
整数演算の結果が範囲外で す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-7
C および C++ コ ンパイ ラのエ ラ ーおよび警告
62
シ フ ト 数が負で す
63
シ フ ト 数が大 き す ぎ ま す
64
宣言で何 も宣言 さ れ て い ま せ ん
以下に例を示 し ます。
int;
65
; が期待 さ れ ま す
66
列挙値が "int" の範囲外で す
こ の診断 メ ッ セージは、 enum 定数が signed int の範囲外であ る 場合に、 コ
ンパ イ ラ に よ っ て生成 さ れ ます。
以下に例を示 し ます。
typedef enum
{
Bit31 = 0x80000000
} Bits;
C モー ド で コ ンパ イ ルす る と 、 こ の メ ッ セージが警告 と し て生成 さ れま
す。
注
以前のバージ ョ ン間で も 、 --enum_is_int お よ び --strict ス イ ッ チを使用
し てい る 場合で も 、 コ ンパ イ ラ の動作が変更 さ れてい ます。
C モー ド :
•
警告が生成 さ れ ますが、 コ ンパ イ ラ に よ っ て定数が unsigned に昇
格 さ れます。
•
ス イ ッ チ --strict は、 常に こ の メ ッ セージ を エ ラ ー と し て生成 し
ます。
C++ モー ド :
•
デフ ォ ル ト では、 範囲外の定数は警告な し で unsigned に昇格 さ れ
ます。 --strict が使用 さ れてい る 場合で も 、 同様です。
メ ッ セージがエ ラ ーであ る 場合の対応策 と し て、 以下の コ ー ド 例を使用
し て下 さ い。
typedef enum
{
Bit31 = (int)0x80000000
} Bits;
オーバーフ ロ ーは発生 し な く な り 、 エ ラ ー も 報告 さ れな く な り ます。
注
Bit31 は signed int にな る ので、 その値は負にな り ます。
『 コ ンパ イ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
構造体、 共用体、 列挙型、 ビ ッ ト フ ィ ール ド (6-9 ページ) .
67
} が期待 さ れ ま す
68
整数変換の結果、 符号が変更 さ れ ま し た
定数が signed long で表現す る には大 き すぎ る ので、 unsigned 型に さ れま
し た。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-8
C および C++ コ ンパイ ラのエ ラ ーおよび警告
例:
long l = 2147483648;
69
整数変換の結果、 切 り 捨て ら れ ま し た
70
不完全型は使用で き ま せ ん
例:
typedef struct{
unsigned char size;
char string[];
} FOO;
構造体の中の配列のサ イ ズが宣言 さ れていないので、 コ ンパ イ ラ が構造
体のサ イ ズ を割 り 当て る こ と がで き ません。 不完全型は、 --gnu お よ び
--c99 モー ド では使用で き ます。
71
sizeof の オ ペ ラ ン ド に ビ ッ ト フ ィ ー ル ド は使用で き ま せ ん
76
マ ク ロ の引数が空で す
77
こ の宣言に は記憶 ク ラ ス も型指定子 も あ り ま せ ん
78
パ ラ メ ー タ 宣言に イ ニ シ ャ ラ イ ザ を 含め る こ と は で き ま せ ん
79
型指定子が期待 さ れ ま す
可変個引数関数 (例えば printf()) を示す省略記号は、 その前に少な く
と も 1 つのパ ラ メ ー タ が必要です。 次の関数は、
int foo( ... );
次の よ う に変更 し ます。
int foo( int bar, ... );
80
こ こ に記憶 ク ラ ス を 指定す る こ と は で き ま せ ん
81
記憶 ク ラ ス を 複数指定す る こ と は で き ま せ ん
82
記憶 ク ラ ス が最初で は あ り ま せ ん
83
型指定子が複数回指定 さ れ て い ま す
84
型指定子の組み合わ せ が無効で す
型名ま たは型指定子は、 同一の宣言内で、 2 番目の型名ま たは型指定子
と し て使 う こ と はで き ません。 以下に例を示 し ます。
typedef int int;
ARM DUI 0496GJ
ID 0 5 1 6 1 2
85
パ ラ メ ー タ の記憶 ク ラ ス が無効で す
86
関数の記憶 ク ラ ス が無効で す
87
こ こ で型指定子 を 使用す る こ と は で き ま せ ん
88
関数の配列は使用で き ま せ ん
89
void 型の配列は使用で き ま せ ん
90
関数 を 返す関数は使用で き ま せ ん
91
配列 を 返す関数は使用で き ま せ ん
92
識別子 リ ス ト パ ラ メ ー タ は関数定義で の み使用で き ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-9
C および C++ コ ンパイ ラのエ ラ ーおよび警告
93
関数型は typedef か ら は取得で き ま せ ん
94
配列の サ イ ズ は ゼ ロ よ り 大 き く す る 必要が あ り ま す
サ イ ズがゼ ロ の配列は、 GNU モー ド (--gnu) だけで使用で き ます。 例
えば、
char name[0];
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
95
•
--gnu (3-114 ペ ー ジ)
•
C お よ び C++ 言語に対す る GNU 拡張機能 (4-48 ページ) .
配列が大 き す ぎ ま す
配列ま たは構造体の最大サ イ ズには、 4GB の制限があ り ます。
96
変換単位に は、 少な く と も 1 つ の宣言が含 ま れ て い る 必要が あ り ま す
97
関数は こ の型の値 を 返す こ と は で き ま せ ん
98
配列に こ の型の エ レ メ ン ト を 含め る こ と は で き ま せ ん
99
こ こ の宣言は パ ラ メ ー タ を 宣言す る 必要が あ り ま す
100
パ ラ メ ー タ 名が重複 し て い ま す
101
<entity> は現在の有効範囲で既に宣言 さ れ て い ま す
102
列挙型の forward 宣言は標準で は あ り ま せ ん
103
ク ラ ス が大 き す ぎ ま す
104
構造体 ま た は ユ ニ オ ン が大 き す ぎ ま す
105
ビ ッ ト フ ィ ー ル ド の サ イ ズ が無効で す
ビ ッ ト フ ィ ール ド の大 き さ は、 型のサ イ ズ以下であ る 必要があ り ます。
例えば、 --strict を使っ た、 以下の よ う な場合です。
struct X{
int y:5000;
};
106
ビ ッ ト フ ィ ー ル ド の型が無効で す
ビ ッ ト フ ィ ール ド は整数型であ る 必要があ り ます。
例:
struct X{
float x:5;
float y:2;
};
ARM DUI 0496GJ
ID 0 5 1 6 1 2
107
長 さ が ゼ ロ の ビ ッ ト フ ィ ー ル ド は無名で な け れ ば な り ま せ ん
108
長 さ が 1 の符号付 き ビ ッ ト フ ィ ー ル ド
109
式は (ポ イ ン タ -) 関数型で あ る必要が あ り ま す
110
定義 ま た は タ グ名が期待 さ れ ま す
111
ス テ ー ト メ ン ト に到達で き ま せ ん
112
while が期待 さ れ ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-10
C および C++ コ ンパイ ラのエ ラ ーおよび警告
114
<entity> が参照 さ れ ま し た が定義 さ れ て い ま せ ん
115
continue ス テ ー ト メ ン ト は ル ー プ 内で の み使用で き ま す
116
break ス テ ー ト メ ン ト は ル ー プ ま た は ス イ ッ チ内で の み使用で き ま す
例:
void foo(void){
int a=0;
continue;
}
ま たは
void bar(void){
int a=0;
break;
}
ARM DUI 0496GJ
ID 0 5 1 6 1 2
117
non-void <entity> は値 を 返す必要が あ り ま す
118
void 関数は値 を 返す こ と が で き ま せ ん
119
<type> 型に キ ャ ス ト で き ま せ ん
120
戻 り 値型 と 関数型が一致 し て い ま せ ん
121
case ラ ベ ル は ス イ ッ チ内で の み使用で き ま す
122
default ラ ベ ル は ス イ ッ チ内で の み使用で き ま す
123
case ラ ベ ル の値は こ の ス イ ッ チ内に既に あ り ま す
124
default ラ ベ ル は こ の ス イ ッ チ内に既に あ り ま す
125
( が期待 さ れ ま す
126
式は左辺値で な け れ ば な り ま せ ん
127
ス テ ー ト メ ン ト が期待 さ れ ま す
128
ル ー プ に は前の コ ー ド か ら は到達で き ま せ ん
129
block-scope 関数に は extern 記憶 ク ラ ス の み を 含め る こ と が で き ま す
130
{ が期待 さ れ ま す
131
式は ポ イ ン タ - ク ラ ス 型で あ る 必要が あ り ま す
132
式は構造体へ の ポ イ ン タ ま た は ユ ニ オ ン へ の ポ イ ン タ で あ る 必要が あ り ま す
133
メ ン バ名が期待 さ れ ま す
134
フ ィ ー ル ド 名が期待 さ れ ま す
135
<entity> に メ ン バ <entity> が あ り ま せ ん
136
<entity> に フ ィ ー ル ド <entity> が あ り ま せ ん
137
式は修正可能な左辺値で な け れ ば な り ま せ ん
138
レ ジ ス タ 変数の ア ド レ ス を 取得す る こ と は で き ま せ ん
139
ビ ッ ト フ ィ ー ル ド の ア ド レ ス を 取得す る こ と は で き ま せ ん
140
関数呼び出 し 内の引数が多す ぎ ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-11
C および C++ コ ンパイ ラのエ ラ ーおよび警告
関数宣言が前の関数プ ロ ト タ イ プのパ ラ メ ー タ 数 と 一致 し ません。
例:
extern void foo(int x);
void bar(void)
{
foo(1,2);
}
141
ボ デ ィ が あ る 場合、 無名の プ ロ ト タ イ プ の パ ラ メ ー タ は使用で き ま せ ん
142
式は ポ イ ン タ - オ ブ ジ ェ ク ト 型で あ る 必要が あ り ま す
143
プ ロ グ ラ ム が大 き す ぎ る か複雑す ぎ て コ ン パ イ ル で き ま せ ん
144
<type> 型の値 を 使用 し て <type> 型の エ ン テ ィ テ ィ を 初期化す る こ と は で き ま せ ん
固定サ イ ズの文字配列を初期化す る 文字列が、 配列のサ イ ズ と 正確に同
じ 長 さ であ り 、 終端の \0 のための余裕があ り ません。 例えば、 次の よ
う な場合です。
char name[5] = "Hello";
name 配列は、 最大 5 文字を保持で き ます。 C の文字列は常に NULL で終
わ る ため (例えば "Hello\0")、 "Hello" は収ま り ません。 コ ンパ イ ラ に
よ っ て、 以下の よ う な メ ッ セージが報告 さ れ ます。
エ ラ ー : #144: "const char [6]" 型の値 を 使用 し て "char [5]" 型の エ ン テ ィ テ ィ を 初期
化す る こ と は で き ま せ ん
ゼ ロ 以外の int か ら pointer への暗黙的な キ ャ ス ト が行われ る 場合に も 、
同様のエ ラ ーが発生 し ます。
以下に例を示 し ます。
void foo_func( void )
{
char *foo=1;
}
では、 次の よ う な メ ッ セージが表示 さ れ ます。
#144: "int" 型の値 を 使用 し て "char *" 型の エ ン テ ィ テ ィ を 初期化す る こ と は で き ま せ ん
キ ャ ス ト に関 し ては、 --loose_implicit_cast ス イ ッ チを使用 し て、 こ のエ
ラ ーを非表示にす る こ と がで き ます。
145
<entity> は初期化で き ま せ ん
146
イ ニ シ ャ ラ イ ザ の値が多す ぎ ま す
147
宣言は <entity> と 互換性が あ り ま せ ん
次の不適切な C コ ー ド
typedef enum { e } E;
typedef enum { f } F;
E g(void);
F g(void);
は、 すべてのモー ド で任意エ ラ ーであ り 、 --diag_warning 147 を使っ てエ
ラ ーか ら 警告にダ ウ ン グ レー ド す る こ と も 、 --diag_suppress 147 を使っ て
完全に非表示にす る こ と も で き ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
148
<entity> は既に初期化 さ れ て い ま す
149
グ ロ ー バ ル ス コ ー プ 宣言に こ の記憶 ク ラ ス を 含め る こ と が で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-12
C および C++ コ ンパイ ラのエ ラ ーおよび警告
150
型名は パ ラ メ ー タ と し て再宣言で き ま せ ん
151
typedef 名は パ ラ メ ー タ と し て再宣言で き ま せ ん
152
非ゼ ロ 整数 を ポ イ ン タ に変換 し ま す
153
式は ク ラ ス 型で あ る 必要が あ り ま す
154
式は構造体型 ま た は ユ ニ オ ン 型で あ る 必要が あ り ま す
155
古い形式の代入演算子
156
古い形式の イ ニ シ ャ ラ イ ザ
157
式は整数的な定数式で な け れ ば な り ま せ ん
158
式は左辺値 ま た は関数指定子で な け れ ば な り ま せ ん
159
宣言は前の <entity> と 互換性が あ り ま せ ん
160
<entity> の外部名 と 外部名競合が発生 し ま し た
161
認識 さ れ な い #pragma
163
テ ン ポ ラ リ フ ァ イ ル <entity> を 開け ま せ ん で し た
164
テ ン ポ ラ リ フ ァ イ ル の デ ィ レ ク ト リ 名が長す ぎ ま す (<entity>)
165
関数呼び出 し に引数が少な す ぎ ま す
関数プ ロ ト タ イ プで定義 さ れてい る パ ラ メ ー タ の数が、 関数呼び出 し で
渡 さ れたパ ラ メ ー タ の数 と 一致 し ません。
以下に例を示 し ます。
extern void foo(int x);
void bar(void)
{
foo();
}
166
浮動小数点定数が無効で す
167
<type> 型の引数は <type> 型の パ ラ メ ー タ と 互換性が あ り ま せ ん
168
こ こ で は関数型 を 使用で き ま せ ん
169
宣言が期待 さ れ ま す
こ の問題は、 い く つかの C++ ヘ ッ ダ フ ァ イ ルを C++ コ ンパ イ ラ ではな
く C コ ンパ イ ラ で コ ンパ イ ル し よ う と し た場合に発生 し ます。 以下の
メ ッ セジが報告 さ れます。
エ ラ ー : #169: 宣言が期待 さ れ ま す
170
ポ イ ン タ が、 ベ ー ス と な っ て い る オ ブ ジ ェ ク ト の外側 を 指 し て い ま す
171
型変換が無効で す
172
外部 / 内部の リ ン ケ ー ジ が前の宣言 と 競合 し て い ま す
リ ン ケージの不一致に関す る エ ラ ーは、 関数が暗黙的に extern と し て宣
言 さ れ、 後で static と し て再宣言 さ れた場合、 --strict で コ ンパ イ ル さ れ
ていなければ、 非表示にな り ます。
例:
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-13
C および C++ コ ンパイ ラのエ ラ ーおよび警告
extern void foo(void);
static void foo(void){}
173
浮動小数点値が必要な整数型に収 ま り ま せ ん
174
式は機能 し ま せ ん
175
添字が範囲外で す
177
<entity> が宣言 さ れ ま し た が参照 さ れ て い ま せ ん
デフ ォ ル ト では、 使用 さ れない宣言についての警告は、 以下の場合に発
生 し ます。
•
変数、 typedef、 お よ び関数の ロ ーカルな (関数内の) 宣言
•
ラ ベル (常に関数内)
•
最上位の ス タ テ ィ ッ ク 関数 と ス タ テ ィ ッ ク 変数
--diag_suppress 177 オプシ ョ ン を指定す る と 、 こ れ ら の警告が非表示に
な り ます。
178
配列に適用 し た "&" は機能 し ま せ ん
179
"%" の右 オ ペ ラ ン ド が ゼ ロ で す
180
引数は仮パ ラ メ ー タ と 互換性が あ り ま せ ん
181
引数は対応す る フ ォ ー マ ッ ト ス ト リ ン グ変換 と 互換性が あ り ま せ ん
例えば、 --strict で コ ンパ イ ル し た場合、 以下の コ ー ド
unsigned long foo = 0x1234;
printf("%08X", foo);
で生成 さ れ る 警告は、 次の と お り です。
警告 : #181-D : 引数は対応す る フ ォ ー マ ッ ト ス ト リ ン グ変換 と 互換性が あ り ま せ ん
警告が表示 さ れない よ う にす る には、 コ ー ド を次の よ う に書 き 換え ま
す。
unsigned long foo = 0x1234;
printf("%0lX", foo);
ま たは次の よ う に し ます。
unsigned int foo = 0x1234;
printf("%0X", foo);
char、 short、 ま たは int には、 %0X を使用で き ます。 ARM では int も long
も 32 ビ ッ ト 幅ですが、 long 整数には lX を使用 し て下 さ い。
182
ソ ー ス フ ァ イ ル <entity> を 開け ま せ ん で し た (検索 リ ス ト に デ ィ レ ク ト リ が あ り ま せ ん)
183
キ ャ ス ト 型は整数で な け れ ば な り ま せ ん
184
キ ャ ス ト 型は算術 ま た は ポ イ ン タ で な け れ ば な り ま せ ん
185
ダ イ ナ ミ ッ ク な初期化が到達で き な い コ ー ド 内に あ り ま す
186
符号な し 整数 と ゼ ロ の無効な比較
以下に例を示 し ます。
unsigned short foo;
if (foo<0) printf("This never happens");
こ の場合、 符号な し の (例えば char や int の) 値 と ゼ ロ の比較は常に
FALSE に評価 さ れ る と い う 警告が発生 し ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-14
C および C++ コ ンパイ ラのエ ラ ーおよび警告
187
== が必要な場所で "=" が使用 さ れ て い ま す
例:
int main(void)
{
int a;
const int b =1;
if (a=b)
}
188
列挙型 と 別の型が混在 し て い ま す
189
<entity> フ ァ イ ル の書 き 込み中に エ ラ ー が発生 し ま し た
190
中間言語 フ ァ イ ル が無効で す
191
型指定子は キ ャ ス ト 型で は無効で す
C の仕様では、 キ ャ ス ト は左辺値を生成 し ない こ と にな っ てい る ので、
修飾 さ れた型へのキ ャ ス ト は修飾 さ れていないバージ ョ ンの型へのキ ャ
ス と 同 じ 効果を持つ こ と にな り ます。 こ の警告は、 コ ー ド には問題がな
い も のの、 型修飾子が効果を持たない こ と を ユーザに知 ら せ る だけの も
のす。 こ の警告は、 --diag_suppress 191 で非表示にす る こ と がで き ます。
例:
"val2 = (const float)val1;" は "val2 = (float)val1;" と 同等
192
認識 さ れ な い文字 エ ス ケ ー プ シ ー ケ ン ス
こ のエ ラ ーは、 通常、 16 ビ ッ ト の Unicode 文字な ど の非 ASCII 文字セ ッ
ト を使お う と し た こ と に関連 し てい ます。 コ ンパ イ ラ では、 Unicode な
ど のマルチバ イ ト 文字セ ッ ト がサポー ト さ れ ます。 ソ ース フ ァ イ ルは、
コ ン ピ ュ ー タ で選択 さ れてい る ロ ケールに応 じ て コ ンパ イ ル さ れます。
その よ う せずに、 エ ス ケープ処理 を使っ て、 特定の値を エ ン コ ー ド す る
こ と も で き ます (Kernighan and Ritchie の A2.5.2 で推奨 さ れてい ます)。
以下に例を示 し ます。
char *p = "\x12\x34\x56\x78"; // 12 34 56 78
文字エ ス ケープ と 文字列エ ス ケープでは、 \ の次の文字に特別な意味が
ない場合、 エ ス ケープの値はその文字自身 と な り ます。 例えば、 \s は、
s と 同 じ なので、 警告が生成 さ れます。
193
未定義の プ リ プ ロ セ ッ シ ン グ識別子 と し て ゼ ロ が使用 さ れ て い ま す <entity>
194
asm ス ト リ ン グ が期待 さ れ ま す
195
asm 関数は プ ロ ト タ イ プ に す る 必要が あ り ま す
196
asm 関数に は省略記号 を 含め る こ と が で き ま せ ん
219
フ ァ イ ル <entity> の削除中に エ ラ ー が発生 し ま し た
220
整数値が必要な浮動小数点型に収 ま り ま せ ん
221
浮動小数点値が必要な浮動小数点型に収 ま り ま せ ん
222
浮動小数点演算の結果が範囲外で す
223
関数 <entity> が暗黙に宣言 さ れ て い ま す
こ れは、 関数のプ ロ ト タ イ プがない と き に発生す る 、 一般的な警告で
す。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-15
C および C++ コ ンパイ ラのエ ラ ーおよび警告
以下に例を示 し ます。
void foo(void)
{
printf("foo");
}
こ の問題に対処す る には、 #include <stdio.h> を追加 し ます。 こ の フ ァ イ
ルに、 printf のプ ロ ト タ イ プが含まれてい ます。
ANSI C では、 --diag_suppress 223 で こ の警告を非表示にす る こ と がで き
ます。 古い ス タ イ ルの C を ANSI C モー ド で コ ンパ イ ルす る と き には、
こ の方法が便利です。
224
フ ォ ー マ ッ ト ス ト リ ン グ に は追加の引数が必要で す
225
フ ォ ー マ ッ ト ス ト リ ン グ が こ の引数の前に終了 し て い ま す
226
フ ォ ー マ ッ ト ス ト リ ン グ変換が無効で す
227
マ ク ロ 再帰
228
コ ン マ が最後に く る 形式は標準で は あ り ま せ ん
229
ビ ッ ト フ ィ ー ル ド に列挙型の す べ て の値 を 入れ る こ と は で き ま せ ん
230
ビ ッ ト フ ィ ー ル ド で は非標準の型で す
厳密な ANSI C では、 ビ ッ ト フ ィ ール ド に指定で き る 型は int、 signed
int、 お よ び unsigned int のみです。
例:
struct X {
char y:2;
};
ARM DUI 0496GJ
ID 0 5 1 6 1 2
231
宣言は関数の外側で は見え ま せ ん
232
void の古い形式の typedef は無視 さ れ ま す
233
左オ ペ ラ ン ド は、 こ の フ ィ ー ル ド を 含む構造体 ま た は ユ ニ オ ン で は あ り ま せ ん
234
ポ イ ン タ は、 こ の フ ィ ー ル ド を 含む構造体 ま た は ユ ニ オ ン を 指 し て い ま せ ん
235
変数 <entity> は、 未定義の型で宣言 さ れ て い ま し た
236
制御式が定数で す
237
セ レ ク タ 式が定数で す
238
パ ラ メ ー タ の指定子が無効で す
239
ク ラ ス 宣言外の指定子が無効で す
240
宣言に重複 し た指定子が あ り ま す
241
ユ ニ オ ン に は ベ ー ス ク ラ ス が存在す る こ と は で き ま せ ん
242
複数の ア ク セ ス制御指定子は使用で き ま せ ん
243
ク ラ ス 定義 ま た は構造体定義が あ り ま せ ん
244
修飾 さ れ た名前は、 ク ラ ス <type> ま た は そ の ベ ー ス ク ラ ス の メ ン バ で は あ り ま せ ん
245
非ス タ テ ィ ッ ク メ ン バ参照は、 特定の オ ブ ジ ェ ク ト に関連付け ら れ て い る 必要が あ り ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-16
C および C++ コ ンパイ ラのエ ラ ーおよび警告
246
非ス タ テ ィ ッ ク デ ー タ メ ン バ は、 そ の ク ラ ス の外で は定義で き ま せ ん
247
<entity> は既に定義 さ れ て い ま す
こ の問題の典型的な例は、 変数名が複数回使用 さ れてい る 場合です。
こ の問題は、 仮宣言に依存す る 従来の コ ー ド を コ ンパ イ ル し てい る 場合
に発生す る こ と があ り ます。 仮宣言では、 以下の よ う に、 変数の宣言 と
初期化を個別の ス テー ト メ ン ト で行 う こ と がで き ます。
int a;
int a = 1;
仮宣言は、 C コ ー ド ではデフ ォ ル ト で許可 さ れてい ますが、 C++ コ ー ド
ではエ ラ ーにな り ます。
248
参照へ の ポ イ ン タ は使用で き ま せ ん
249
参照 を 参照す る こ と は で き ま せ ん
250
void を 参照す る こ と は で き ま せ ん
251
参照の配列は使用で き ま せ ん
252
参照 <entity> に は イ ニ シ ャ ラ イ ザ が必要で す
253
, が期待 さ れ ま す
254
型名は使用で き ま せ ん
こ の問題は、 以下の よ う に、 typedef 名が式の中で直接使用 さ れてい る
場合に発生 し ます。
typedef int footype;
int x = footype; // " エ ラ ー : #254: 型名は使用で き ま せ ん
こ の問題に対処す る には、 先にその型の イ ン ス タ ン ス を作成 し ます。 例
えば、 次の よ う に、 その新 し い型の変数を作成 し ます。
typedef int footype;
footype bar = 1;
int x = bar;
255
型定義は使用で き ま せ ん
256
型名 <entity> の再宣言は無効で す
257
定数 <entity> に は イ ニ シ ャ ラ イ ザ が必要で す
258
"this" は、 非ス タ テ ィ ッ ク メ ン バ関数内で の み使用で き ま す
259
定数値が不明で す
260
明示的な型が あ り ま せ ん ("int" を 想定)
261
ア ク セ ス制御が指定 さ れ て い ま せ ん (デ フ ォ ル ト で は <entity>)
262
ク ラ ス 名 ま た は構造体名で は あ り ま せ ん
263
ベ ー ス ク ラ ス 名が重複 し て い ま す
264
ベ ー ス ク ラ ス が無効で す
265
<entity> に ア ク セ ス で き ま せ ん
C++ では、 --diag_warning 265 オプシ ョ ンに よ っ て、 ア ク セ ス制御エ ラ ー
を警告に降格す る こ と がで き ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-17
C および C++ コ ンパイ ラのエ ラ ーおよび警告
以下に例を示 し ます。
class A { void f() {}; }; // プ ラ イ ベ ー ト メ ン バ
A a;
void g() { a.f(); } // 誤 っ た ア ク セ ス
では、 次の よ う な メ ッ セージが表示 さ れ ます。
エ ラ ー : #265-D : 関数 "A::f" に ア ク セ ス で き ま せ ん
ARM DUI 0496GJ
ID 0 5 1 6 1 2
266
<entity> が あ い ま い で す
267
古い ス タ イ ル の パ ラ メ ー タ リ ス ト で す ( ア ナ ク ロ ニ ズ ム)
268
宣言は、 ブ ロ ッ ク 内の実行可能ス テ ー ト メ ン ト の後に は表示で き ま せ ん
269
ア ク セ ス で き な い ベ ー ス ク ラ ス <type> に変換で き ま せ ん
274
マ ク ロ 呼び出 し が正 し く 終了 し ま せ ん で し た
276
後に "::" が付い て い る 名前は、 ク ラ ス 名 ま た は ネ ー ム ス ペ ー ス 名で す
277
friend 宣言が無効で す
278
コ ン ス ト ラ ク タ ま た は デ ス ト ラ ク タ が値 を 返す こ と は で き ま せ ん
279
デ ス ト ラ ク タ 宣言が無効で す
280
ク ラ ス と 同 じ 名前の メ ン バ を 宣言 し ま す
281
グ ロ ー バ ル ス コ ー プ 修飾子 ("::" が先行) は使用で き ま せ ん
282
グ ロ ー バ ル ス コ ー プ に は <entity> が含 ま れ て い ま せ ん
283
修飾 さ れ た名前は使用で き ま せ ん
284
NULL 参照は使用で き ま せ ん
285
"<...>" に よ る初期化は <type> 型の オ ブ ジ ェ ク ト に は使用で き ま せ ん
286
ベ ー ス ク ラ ス <type> が あ い ま い で す
287
派生 し た ク ラ ス <type> に は ク ラ ス <type> の複数の イ ン ス タ ン ス が含 ま れ て い ま す
288
ベ ー ス ク ラ ス <type> へ の ポ イ ン タ を 派生 ク ラ ス <type> へ の ポ イ ン タ に変換で き ま せ ん。 ベ ー
ス ク ラ ス は仮想で す。
289
引数 リ ス ト と 一致す る コ ン ス ト ラ ク タ <entity> の イ ン ス タ ン ス は あ り ま せ ん
290
ク ラ ス <type> の コ ピ ー コ ン ス ト ラ ク タ が あ い ま い で す
291
ク ラ ス <type> の デ フ ォ ル ト コ ン ス ト ラ ク タ は あ り ま せ ん
292
<entity> は、 ク ラ ス <type> の非 ス タ テ ィ ッ ク デ ー タ メ ン バ ま た は ベ ー ス ク ラ ス で は あ り ま せ
ん
293
間接非仮想ベ ー ス ク ラ ス は使用で き ま せ ん
294
ユ ニ オ ン メ ン バ が無効で す -- ク ラ ス <type> に は禁止 さ れ た メ ン バ関数が含 ま れ て い ま す
296
左辺値で な い配列は使用で き ま せ ん
297
演算子が期待 さ れ ま す
298
継承 さ れ た メ ン バ は使用で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-18
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
299
<entity> の ど の イ ン ス タ ン ス を 対象に し て い る か特定で き ま せ ん
300
bound 関数へ の ポ イ ン タ は関数の呼び出 し に の み使用で き ま す
301
typedef 名は既に宣言 さ れ て い ま す (同 じ 型で)
302
<entity> は既に定義 さ れ て い ま す
304
引数 リ ス ト と 一致す る <entity> の イ ン ス タ ン ス は あ り ま せ ん
305
関数の戻 り 値型の宣言内で は型 を 定義で き ま せ ん
306
デ フ ォ ル ト 引数が パ ラ メ ー タ リ ス ト の最後に あ り ま せ ん
307
デ フ ォ ル ト 引数の再定義で す
308
<entity> の複数の イ ン ス タ ン ス が引数 リ ス ト と 一致 し て い ま す
309
コ ン ス ト ラ ク タ <entity> の複数の イ ン ス タ ン ス が引数 リ ス ト と 一致 し て い ま す
310
<type> 型の デ フ ォ ル ト 引数は <type> 型の パ ラ メ ー タ と 互換性が あ り ま せ ん
311
戻 り 値型の み で識別 さ れ る関数は オ ー バ ー ロ ー ド で き ま せ ん
312
<type> か ら <type> へ の適切な ユ ー ザ定義変換が あ り ま せ ん
313
こ の関数に は型指定子 を 使用で き ま せ ん
314
非ス タ テ ィ ッ ク メ ン バ関数の み を 仮想に で き ま す
315
オ ブ ジ ェ ク ト に は メ ン バ関数 と 互換性の な い cv 修飾子が含 ま れ て い ま す
316
プ ロ グ ラ ム が大 き す ぎ て コ ン パ イ ル で き ま せ ん (仮想関数が多す ぎ ま す)
317
戻 り 値型が戻 り 値型 <type> ( オ ー バ ー ラ イ ド さ れ た仮想関数 <entity> の も の) と 同 じ で な い
か、 共変で は あ り ま せ ん
318
仮想 <entity> の オ ー バ ー ラ イ ド が あ い ま い で す
319
純指定子 ("= 0") は仮想関数で の み使用で き ま す
320
不適切な形式の純指定子で す ("= 0" の み を 使用で き ま す)
321
デ ー タ メ ン バ イ ニ シ ャ ラ イ ザ は使用で き ま せ ん
322
抽象 ク ラ ス 型 <type> の オ ブ ジ ェ ク ト は使用で き ま せ ん
323
抽象 ク ラ ス <type> を 返す関数は使用で き ま せ ん
324
friend 宣言が重複 し て い ま す
325
イ ン ラ イ ン 指定子は関数宣言で の み使用で き ま す
326
"inline" は使用で き ま せ ん
327
inline 関数の記憶 ク ラ ス が無効で す
328
ク ラ ス メ ン バ の記憶 ク ラ ス が無効で す
329
ロ ー カ ル ク ラ ス メ ン バ <entity> に は定義が必要で す
330
<entity> に ア ク セ ス で き ま せ ん
332
ク ラ ス <type> に は const オ ブ ジ ェ ク ト を コ ピ ー す る た め の コ ピ ー コ ン ス ト ラ ク タ が あ り ま せ
ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-19
C および C++ コ ンパイ ラのエ ラ ーおよび警告
333
暗黙に宣言 さ れ た メ ン バ関数 を 定義す る こ と は で き ま せ ん
334
ク ラ ス <type> に は適切な コ ピ ー コ ン ス ト ラ ク タ が あ り ま せ ん
335
リ ン ケ ー ジ を 指定で き ま せ ん
336
外部 リ ン ケ ー ジ指定が不明で す
337
リ ン ケ ー ジ指定は前の <entity> と 互換性が あ り ま せ ん
関数の リ ン ケージが前の宣言への互換性のない指定 と 共に再宣言 さ れた
場合に、 こ のエ ラ ーは生成 さ れ ます。
以下に例を示 し ます。
int foo(void);
int bar(void)
{
int x;
x = foo();
return x;
}
extern "C" int foo(void)
{
return 0;
}
では、 次の よ う な メ ッ セージが表示 さ れ ます。
エ ラ ー : #337: リ ン ケ ー ジ指定は前の "foo" (行 1 で宣言) と 互換性が あ り ま せ ん
ARM DUI 0496GJ
ID 0 5 1 6 1 2
338
オ ー バ ー ロ ー ド さ れ た関数 <entity> の複数の イ ン ス タ ン ス に "C" リ ン ケ ー ジ が含 ま れ て い ま
す
339
ク ラ ス <type> に は複数の デ フ ォ ル ト コ ン ス ト ラ ク タ が あ り ま す
340
値が テ ン ポ ラ リ に コ ピ ー さ れ、 テ ン ポ ラ リ へ の参照が使用 さ れ て い ま す
341
"operator<entity>" は メ ン バ関数で な け れ ば な り ま せ ん
342
演算子 と し て ス タ テ ィ ッ ク メ ン バ関数 を 使用で き ま せ ん
343
ユ ー ザ定義変換に は引数 を 指定で き ま せ ん
344
こ の operator 関数の パ ラ メ ー タ が多す ぎ ま す
345
こ の operator 関数の パ ラ メ ー タ が少な す ぎ ま す
346
非 メ ン バ演算子に は ク ラ ス 型の パ ラ メ ー タ が必要で す
347
デ フ ォ ル ト 引数は指定で き ま せ ん
348
<type> か ら <type> へ の複数の ユ ー ザ定義変換が適用 さ れ ま す :
349
演算子 <entity> は こ れ ら の オ ペ ラ ン ド と 一致 し ま せ ん
350
複数の演算子 <entity> が こ れ ら の オ ペ ラ ン ド と 一致 し ま す :
351
allocation 関数の最初の パ ラ メ ー タ は "size_t" 型で な け れ ば な り ま せ ん
352
allocation 関数で は "void *" の戻 り 値型が必要で す
353
deallocation 関数で は "void" の戻 り 値型が必要で す
354
deallocation 関数の最初の パ ラ メ ー タ は "void *" 型で な け れ ば な り ま せ ん
356
型は オ ブ ジ ェ ク ト 型で な け れ ば な り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-20
C および C++ コ ンパイ ラのエ ラ ーおよび警告
357
ベ ー ス ク ラ ス <type> は既に初期化 さ れ て い ま す
358
ベ ー ス ク ラ ス 名が必要で す -- <type> を 想定 ( ア ナ ク ロ ニ ズ ム)
359
<entity> は既に初期化 さ れ て い ま す
360
メ ン バ ま た ベ ー ス ク ラ ス の名前が あ り ま せ ん
361
this へ の代入で す ( ア ナ ク ロ ニ ズ ム)
362
"overload" キ ー ワ ー ド が使用 さ れ て い ま す ( ア ナ ク ロ ニ ズ ム)
363
無名共用体が無効で す -- パ ブ リ ッ ク で な い メ ン バ は使用で き ま せ ん
364
無名共用体が無効で す -- メ ン バ関数は使用で き ま せ ん
365
グ ロ ー バ ル ま た は ネ ー ム ス ペ ー ス ス コ ー プ に あ る無名共用体は、 ス タ テ ィ ッ ク と し て宣言 さ れ る必
要が あ り ま す
366
<entity> は次の イ ニ シ ャ ラ イ ザ を 提供 し ま せ ん :
367
ク ラ ス <type> の暗黙に生成 さ れ た コ ン ス ト ラ ク タ は次の も の を 初期化で き ま せ ん :
368
<entity> は、 次の も の を 初期化す る た め の コ ン ス ト ラ ク タ を 定義 し て い ま せ ん :
こ れは、 const 構造体、 ま たは const を含む構造体があ る こ と を示 し てい
ます。 こ の メ ッ セージは、 エ ラ ー 369 を補助す る 警告 と し て生成 さ れま
す。 構造体の const メ ンバが適切に初化 さ れていれば、 無視 し て も 問題
あ り ません。
369
<entity> に は、 初期化 さ れ て い な い const ま た は reference メ ン バ が含 ま れ て い ま す
こ れは、 const 構造体、 ま たは正 し く 初期化 さ れていない const を含む構
造体の イ ン ス タ ン ス があ る こ と を示 し てい ます。 各 イ ン ス タ ン ス で構造
体を正 し く 初期化す る か、 初期化を行 う コ ン ス ト ラ ク タ を用意 る 必要が
あ り ます。
370
<entity> に は、 初期化 さ れ て い な い const フ ィ ー ル ド が含 ま れ て い ま す
371
ク ラ ス <type> に は、 const オ ブ ジ ェ ク ト を コ ピ ー す る た め の代入演算子が あ り ま せ ん
372
ク ラ ス <type> に は適切な代入演算子が あ り ま せ ん
373
ク ラ ス <type> の代入演算子が あ い ま い で す
375
宣言に は typedef 名が必要で す
377
"virtual" は使用で き ま せ ん
378
"static" は使用で き ま せ ん
379
bound 関数の通常の関数ポ イ ン タ へ の キ ャ ス ト で す ( ア ナ ク ロ ニ ズ ム)
380
式は ポ イ ン タ - メ ン バ型で あ る 必要が あ り ま す
381
余分な ";" は無視 さ れ ま す
C では、 次の例の よ う に、 宣言の行の末尾に予期 し ないセ ミ コ ロ ン があ
る こ と に よ っ て、 こ の問題が発生す る 場合があ り ます。
int x;;
こ の問題は、 マ ク ロ を使用 し てい る と き に、 不注意のために発生す る こ
と も あ り ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-21
C および C++ コ ンパイ ラのエ ラ ーおよび警告
同様に、 C++ では、 こ の問題が次の よ う な構造に よ っ て発生す る こ と が
あ り ます。
class X { ... } ; ;
こ れは、 多 く の場合、 次の よ う なマ ク ロ の使用が原因です。
#define M(c) class c { ... } ;
M(X);
空の宣言は不正であ る ため、 余分なセ ミ コ ロ ンは不正です。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
382
非標準 メ ン バ定数の宣言 (標準形式は ス タ テ ィ ッ ク const 整数 メ ン バ)
384
引数 リ ス ト と 一致す る 多重定義 さ れ た <entity> の イ ン ス タ ン ス は あ り ま せ ん
386
必要な型 と 一致す る <entity> の イ ン ス タ ン ス は あ り ま せ ん
387
配列サ イ ズ削除式が使用 さ れ ま し た ( ア ナ ク ロ ニ ズ ム)
389
抽象 ク ラ ス <type> に キ ャ ス ト で き ま せ ん
390
関数 "main" を 呼び出 し た り 、 こ の関数の ア ド レ ス を 取得 し た り す る こ と は で き ま せ ん
391
配列に対 し て new-initializer を 指定で き ま せ ん
392
メ ン バ関数 <entity> は、 そ の ク ラ ス の外で は再宣言で き ま せ ん
393
不完全な ク ラ ス型へ の ポ イ ン タ は使用で き ま せ ん
394
関数内部の ロ ー カ ル変数 を 参照で き ま せ ん
395
後置の <entity> に単一引数の関数が使用 さ れ て い ま す ( ア ナ ク ロ ニ ズ ム)
398
配列型へ の キ ャ ス ト は標準で は あ り ま せ ん (<type> へ の キ ャ ス ト と し て処理 さ れ ま す)
399
<entity> に は演算子 new<entity>() が あ り ま す が、デ フ ォ ル ト 演算子 delete<entity>()
はあ り ません
400
<entity> に は デ フ ォ ル ト 演算子 delete<entity>() が あ り ま す が、演算子 new<entity>()
はあ り ません
401
ベ ー ス ク ラ ス <entity> の デ ス ト ラ ク タ は仮想で は あ り ま せ ん
403
メ ン バ <entity> の再宣言は無効で す
404
関数 "main" は イ ン ラ イ ン で は宣言で き ま せ ん
405
ク ラ ス と 同 じ 名前の メ ン バ関数は コ ン ス ト ラ ク タ で な け れ ば な り ま せ ん
406
ネ ス ト さ れ た <entity> を 使用 し て い ま す ( ア ナ ク ロ ニ ズ ム)
407
デ ス ト ラ ク タ に パ ラ メ ー タ を 指定す る こ と は で き ま せ ん
408
ク ラ ス <type> の コ ピ ー コ ン ス ト ラ ク タ に <type> 型の パ ラ メ ー タ を 指定す る こ と は で き ま せ ん
409
<entity> は不完全型 <type> を 返 し ま す
410
保護 さ れ た <entity> に は、 <type> ポ イ ン タ ま た は オ ブ ジ ェ ク ト を 介 し て ア ク セ ス で き ま せ ん
411
パ ラ メ ー タ は指定で き ま せ ん
412
こ こ で は "asm" を 宣言で き ま せ ん
413
<type> か ら <type> へ の適切な conversion 関数が あ り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-22
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
414
不完全な ク ラ ス へ の ポ イ ン タ を 削除 し ま す
415
<type> か ら <type> に変換す る た め の適切な コ ン ス ト ラ ク タ が あ り ま せ ん
416
<type> か ら <type> に変換す る た め に複数の コ ン ス ト ラ ク タ が適用 さ れ ま す :
417
<type> か ら <type> へ の複数の conversion 関数が適用 さ れ ま す :
418
<type> か ら 組み込み型へ の複数の conversion 関数が適用 さ れ ま す :
424
コ ン ス ト ラ ク タ ま た は デ ス ト ラ ク タ は自 ら の ア ド レ ス を 取得で き ま せ ん
427
修飾 さ れ た名前は メ ン バ宣言で は使用で き ま せ ん
428
列挙型 と 別の型が混在 し て い ま す ( ア ナ ク ロ ニ ズ ム)
429
new 内の配列の サ イ ズ は負以外の値で な け れ ば な り ま せ ん
430
ロ ー カ ル テ ン ポ ラ リ へ の参照 を 返 し ま す
433
<type> 型の参照 と <type> 型の イ ニ シ ャ ラ イ ザ の バ イ ン ド で修飾子が削除 さ れ ま し た
434
<type> 型の参照 (const で修飾 さ れ て い な い) は <type> 型の値で初期化で き ま せ ん
435
関数へ の ポ イ ン タ は削除で き ま せ ん
436
conversion 関数は非 ス タ テ ィ ッ ク メ ン バ関数で な け れ ば な り ま せ ん
437
こ こ で は テ ン プ レ ー ト を 宣言で き ま せ ん
438
< が期待 さ れ ま す
439
> が期待 さ れ ま す
440
テ ン プ レ ー ト パ ラ メ ー タ 宣言が あ り ま せ ん
441
<entity> の引数 リ ス ト が あ り ま せ ん
442
<entity> の引数が少な す ぎ ま す
443
<entity> の引数が多す ぎ ま す
450
long long 型は標準で は あ り ま せ ん
451
<entity> の省略は標準で は あ り ま せ ん
452
戻 り 値型は conversion 関数に は指定で き ま せ ん
456
<entity> の イ ン ス タ ン ス 生成時の過剰な再帰
457
<entity> は、 関数 ま た は ス タ テ ィ ッ ク デ ー タ メ ン バ で は あ り ま せ ん
458
<type> 型の引数は <type> 型の テ ン プ レ ー ト パ ラ メ ー タ と 互換性が あ り ま せ ん
459
テ ン ポ ラ リ ま た は変換 を 必要 と す る 初期化は実行で き ま せ ん
460
<entity> の宣言は関数パ ラ メ ー タ を 非表示に し ま す
461
non-const へ の参照の初期値は左辺値で な け れ ば な り ま せ ん
463
"template" は使用で き ま せ ん
464
<type> は ク ラ ス テ ン プ レ ー ト で は あ り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-23
C および C++ コ ンパイ ラのエ ラ ーおよび警告
467
<entity> へ の参照が無効で す (ユ ニ オ ン / 非ユ ニ オ ン が不一致)
468
テ ン プ レ ー ト 引数は ロ ー カ ル型 を 参照で き ま せ ん
469
<entity> の タ グ の種類は <entity> の宣言 と 互換性が あ り ま せ ん
470
グ ロ ー バ ル ス コ ー プ に は <entity> と い う 名前の タ グ が含 ま れ て い ま せ ん
471
<entity> に は <entity> と い う 名前の タ グ メ ン バ が あ り ま せ ん
473
<entity> は、 メ ン バ へ の ポ イ ン タ 宣言で の み使用で き ま す
476
後に "::~" が付い て い る 名前は、 ク ラ ス 名 ま た は型名で す
477
デ ス ト ラ ク タ 名が <type> ク ラ ス の名前 と 一致 し ま せ ん
478
デ ス ト ラ ク タ 名 と し て使用 さ れ て い る 型が <type> 型 と 一致 し ま せ ん
479
<entity> は、 呼び出 さ れ た後に "inline" で再宣言 さ れ て い ま す
485
<entity> は、 イ ン ス タ ン ス 化で き る エ ン テ ィ テ ィ で は あ り ま せ ん
486
コ ン パ イ ラ に よ っ て生成 さ れ た <entity> は明示的に イ ン ス タ ン ス 化で き ま せ ん
487
イ ン ラ イ ン <entity> は明示的に イ ン ス タ ン ス化で き ま せ ん
490
<entity> は イ ン ス タ ン ス 化で き ま せ ん -- 明示的に特殊化 さ れ て い ま す
494
typedef に よ っ て void 型の パ ラ メ ー タ リ ス ト を 宣言す る の は標準で は あ り ま せ ん
コ ンパ イ ラ が ANSI C モー ド であ る 場合、 こ のエ ラ ーは関数宣言 f(V) (V
は void 型) に よ っ て発生 し た可能性があ り ます。
f が引数を持たない関数であ る こ と を示す特殊構文 f(<void>) では、 キー
ワー ド <void> が必要です。 代わ り に void 型の名前を使用す る こ と はで き
ません。
496
テ ン プ レ ー ト パ ラ メ ー タ <entity> は こ の ス コ ー プ で は再宣言で き ま せ ん
497
<entity> の宣言は テ ン プ レ ー ト パ ラ メ ー タ を 非表示に し ま す
498
テ ン プ レ ー ト 引数 リ ス ト は パ ラ メ ー タ リ ス ト と 一致 し て い な け れ ば な り ま せ ん
501
演算子名は関数 と し て宣言す る必要が あ り ま す
502
演算子名は使用で き ま せ ん
503
<entity> は現在の ス コ ー プ で は特殊化で き ま せ ん
504
メ ン バ関数の ア ド レ ス を 取得す る た め の非標準形式で す
C++ 標準では、 メ ンバへのポ イ ン タ の名前が、 修飾名 と & 文字を使っ
て、 &A::f の よ う にな っ てい る 必要があ り ます。
以前はフ ロ ン ト エ ン ド が既存の慣行に譲歩 し て、 &f や、 よ り 単純な f の
よ う な非標準形式を容認 し てい ま し た。 現在では、 こ の よ う な使用は任
意エ ラ ーを生成 し ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
505
テ ン プ レ ー ト パ ラ メ ー タ が少な す ぎ ま す -- 前の宣言 と 一致 し ま せ ん
506
テ ン プ レ ー ト パ ラ メ ー タ が多す ぎ ま す -- 前の宣言 と 一致 し ま せ ん
507
演算子 delete(void *) の関数 テ ン プ レ ー ト は使用で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-24
C および C++ コ ンパイ ラのエ ラ ーおよび警告
508
ク ラ ス テ ン プ レ ー ト と テ ン プ レ ー ト パ ラ メ ー タ の名前 を 同 じ に す る こ と は で き ま せ ん
511
列挙型は使用で き ま せ ん
512
参照型に対 し て型修飾子は使用で き ま せ ん
513
<type> 型の値 を <type> 型の エ ン テ ィ テ ィ に割 り 当て る こ と は で き ま せ ん
514
符号な し 整数 と 負の定数の無効な比較
515
不完全な ク ラ ス <type> に は変換で き ま せ ん
516
const オ ブ ジ ェ ク ト に は イ ニ シ ャ ラ イ ザ が必要で す
517
オ ブ ジ ェ ク ト に は、 初期化 さ れ て い な い const ま た は reference メ ン バ が含 ま れ て い ま す
518
非標準の プ リ プ ロ セ ッ シ ン グ デ ィ レ ク テ ィ ブ
519
<entity> に テ ン プ レ ー ト 引数 リ ス ト を 指定す る こ と は で き ま せ ん
520
<...> に よ る初期化で は集合 タ イ プ の オ ブ ジ ェ ク ト を 期待 し て い ま し た
521
ポ イ ン タ - メ ン バ選択 ク ラ ス 型の間に互換性が あ り ま せ ん (<type> と <type>)
522
無効な friend 宣言
524
const オ ブ ジ ェ ク ト に対 し て non-const 関数が呼び出 さ れ て い ま す ( ア ナ ク ロ ニ ズ ム)
525
依存す る ス テ ー メ ン ト と し て宣言は使用で き ま せ ん
526
パ ラ メ ー タ を void 型に す る こ と は で き ま せ ん
以下に例を示 し ます。
void foo(void a) { }
529
こ の演算子は テ ン プ レ ー ト 引数式で は使用で き ま せ ん
530
ト ラ イ ブ ロ ッ ク に は、 少な く と も 1 つ の ハ ン ド ラ が必要で す
531
ハ ン ド ラ に は例外宣言が必要で す
532
ハン ド ラ はデ フ ォ ル ト ハン ド ラ に よ っ て マ ス ク されます
533
ハ ン ド ラ は潜在的に <type> 型の前の ハ ン ド ラ に よ っ て マ ス ク さ れ ま す
534
例外 を 指定す る た め に ロ ー カ ル型 を 使用 し ま す
535
例外の指定で型が重複 し て い ま す
536
例外の指定は、 前の <entity> の例外の指定 と 互換性が あ り ま せ ん
540
例外処理の サ ポ ー ト が デ ィ セ ー ブ ル さ れ て い ま す
541
例外の指定の省略は前の <entity> と 互換性が あ り ま せ ん
542
イ ン ス タ ン ス 生成要求 フ ァ イ ル <entity> を 作成で き ま せ ん で し た
543
型の な い テ ン プ レ ー ト 引数で は非算術処理 を 実行で き ま せ ん
544
非 ロ ー カ ル変数の宣言に ロ ー カ ル型 を 使用 し ま す
545
関数の宣言に ロ ー カ ル型 を 使用 し ま す
546
制御の転送に よ り 、 次の初期化が バ イ パ ス さ れ ま す :
例:
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-25
C および C++ コ ンパイ ラのエ ラ ーおよび警告
int main(void){
int choice = 1;
int z =1;
switch(choice)
{
case 1:
int y = 1;
z = y + z;
break;
case 2:
break;
}
return 0;
こ の例では、 y は初期化 さ れた変数であ り 、 他の (使用 さ れない) case
の ス コ ープ内にあ り ます。
『C++ Standard』 のセ ク シ ョ ン 6.7 に、 次の よ う な記載があ り ます。
「It is possible to transfer into a block, but not in a way that bypasses declarations
with initialization. A program that jumps from a point where a local variable with
automatic storage duration is not in scope to a point where it is in scope is
ill-formed unless the variable has POD type (3.9) and is declared without an
initializer (8.5).」 (ブ ロ ッ ク 内に移動す る こ と は能ですが、 初期化を行 う
宣言をバ イ パ ス し てはいけ ません。 自動保存期間を持つ ロ ーカル変数が
ス コ ープ内にない場所か ら ス コ ープ内にあ る 場所にジ ャ ン プす る プ ロ グ
ラ ムは、 その変数が POD 型であ り (3.9)、 イ ニシ ャ ラ イ ザな し で宣言
(8.5) さ れていない限 り 、 不正な形式です。)
注
switch ス テー ト メ ン ト の条件か ら case ラ ベルへの移動は、 こ う し たジ ャ
ン プ と 考え ら れ ます。
こ の問題に対処す る 一般的な方法は、 y を宣言す る case を次の よ う に括
弧で囲む こ と です。
case 1:
{
int y = 1;
z = y + z;
}
break;
y は POD (Plain Old Data) 型なので、 次の よ う に、 初期化を使用 し ない
方法 も あ り ます。
case 1:
int y;
y = 1;
z = y + z;
break;
ARM DUI 0496GJ
ID 0 5 1 6 1 2
548
例外ハ ン ド ラ に制御が転送 さ れ ま す
549
値が設定 さ れ る前に <entity> が使用 さ れ て い ま す
550
<entity> は設定 さ れ ま し た が使用 さ れ ま せ ん で し た
551
<entity> は現在の ス コ ー プ で は定義で き ま せ ん
552
例外 を 指定で き ま せ ん
553
<entity> の外部 / 内部 リ ン ケ ー ジ が競合 し て い ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-26
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
554
<entity> は、 暗黙 ま た は明示の変換の た め に呼び出 さ れ ま せ ん
555
<entity> の タ グ の種類は <type> 型の テ ン プ レ ー ト パ ラ メ ー タ と 互換性が あ り ま せ ん
556
演算子 new(size_t) の関数テ ン プ レ ー ト は使用で き ま せ ん
558
<type> 型の メ ン バ へ の ポ イ ン タ は使用で き ま せ ん
559
operator 関数の パ ラ メ ー タ リ ス ト に省略記号 を 含め る こ と が で き ま せ ん
560
<entity> は、 将来キ ー ワ ー ド と し て使用す る た め に予約 さ れ て い ま す
561
無効な マ ク ロ 定義 :
562
無効な マ ク ロ 未定義 :
563
無効な <entity> の出力 フ ァ イ ル <filename>
564
<entity> の出力 フ ァ イ ル <filename> を 開け ま せ ん : <reason>
570
デ バ ッ グ オ プ シ ョ ン 引数に エ ラ ー が あ り ま す
571
無効な オ プ シ ョ ン :
574
無効な番号 :
576
無効な イ ン ス タ ン ス 生成 モ ー ド :
578
無効な エ ラ ー リ ミ ッ ト :
585
仮想関数テ ー ブ ル は C++ の コ ン パ イ ル時に の み抑止で き ま す
586
ア ナ ク ロ ニ ズ ム オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
587
イ ン ス タ ン ス 生成 モ ー ド オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
588
自動 イ ン ス タ ン ス 生成 モ ー ド は、 C++ の コ ン パ イ ル時に の み使用で き ま す
589
暗黙の テ ン プ レ ー ト イ ン ク ル ー ド モ ー ド は、 C++ の コ ン パ イ ル時に の み使用で き ま す
590
例外処理オ プ シ ョ ン は、 C++ の コ ン パ イ ル時に の み使用で き ま す
593
ソ ー ス フ ァ イ ル名が あ り ま せ ん
594
複数の入力 フ ァ イ ル を コ ン パ イ ル す る 場合は出力 フ ァ イ ル を 指定で き ま せ ん
595
コ マ ン ド ラ イ ン に引数が多す ぎ ま す
596
出力 フ ァ イ ル が指定 さ れ て い ま す が、 ど の フ ァ イ ル も 必要あ り ま せ ん
598
テ ン プ レ ー ト パ ラ メ ー タ を void 型に す る こ と は で き ま せ ん
600
厳密な ANSI モ ー ド は、 ア ナ ク ロ ニ ズ ム の許可 と 互換性が あ り ま せ ん
601
throw 式 を void 型に す る こ と は で き ま せ ん
602
ロ ー カ ル イ ン ス タ ン ス 生成 モ ー ド は自動 イ ン ス タ ン ス 生成 と 互換性が あ り ま せ ん
603
抽象 ク ラ ス 型 <type> の パ ラ メ ー タ は使用で き ま せ ん :
604
抽象 ク ラ ス <type> の配列は使用で き ま せ ん
605
浮動小数点 テ ン プ レ ー ト パ ラ メ ー タ は標準で は あ り ま せ ん
606
こ の プ ラ グ マ は宣言の直前に な け れ ば な り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-27
C および C++ コ ンパイ ラのエ ラ ーおよび警告
607
こ の プ ラ グ マ は ス テ ー ト メ ン ト の直前に な け れ ば な り ま せ ん
608
こ の プ ラ グ マ は ス テ ー ト メ ン ト ま た は宣言の直前に な け れ ば な り ま せ ん
609
こ こ で こ の種類の プ ラ グ マ は使用で き ま せ ん
611
オ ー バ ー ロ ー ド さ れ た仮想関数 <entity> は、 <entity> で一部分が オ ー バ ー ラ イ ド さ れ ま す
612
inline template 関数の特定の定義は、 そ の関数が初め て使用 さ れ る前に指定す る必要が あ り ま
す
613
診断制御オ プ シ ョ ン 内の無効な エ ラ ー タ グ :
614
診断制御オ プ シ ョ ン 内の無効な エ ラ ー番号 :
615
パ ラ メ ー タ 型に は、 境界が不明な配列へ の ポ イ ン タ が含 ま れ ま す
616
パ ラ メ ー タ 型に は、 境界が不明な配列へ の参照が含 ま れ ま す
617
メ ン バ関数へ の ポ イ ン タ を 関数へ の ポ イ ン タ に キ ャ ス ト し ま す
618
構造体 ま た は ユ ニ オ ン が名前付 き の メ ン バ を 宣言 し て い ま せ ん
619
非標準の無名の フ ィ ー ル ド
620
非標準の無名の メ ン バ
624
<entity> は型名で は あ り ま せ ん
625
プ リ コ ン パ イ ル ヘ ッ ダ 入力 フ ァ イ ル <entity> を 開け ま せ ん : <reason>
626
プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル <entity> は無効か、 こ の バ ー ジ ョ ン の コ ン パ イ ラ に よ っ て生成
さ れた ものではあ り ません
627
プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル <entity> が こ の デ ィ レ ク ト リ で生成 さ れ て い ま せ ん
628
プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル <entity> の生成に使用 さ れ た ヘ ッ ダ フ ァ イ ル が変更 さ れ て い ま
す
629
コ マ ン ド ラ イ ン オ プ シ ョ ン が、 プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル <entity> の作成時に使用 さ れ た
も の と 一致 し ま せ ん
630
プ リ プ ロ セ ッ シ ン グ デ ィ レ ク テ ィ ブ の初期シ ー ケ ン ス は、 プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル
<entity> の初期シ ー ケ ン ス と 互換性が あ り ま せ ん
631
<entity> に対 し て、 マ ッ プ さ れ た メ モ リ を 取得で き ま せ ん : <reason>
こ れは、 大 き な プ リ コ ンパ イ ルヘ ッ ダ (PCH) の使用を試みた と き に、
ARM コ ンパ イ ラ ツールチ ェーン が使用す る TMP デ ィ レ ク ト リ にサ イ ズの
制限があ る 場合に発生す る 可能性があ り ます。 こ れを回避す る には、 TMP
環境変数を削除 し ます。 こ れに よ り 、 現在の作業デ ィ レ ク ト リ に一時
フ ァ イ ルが作成 さ れ ます。
『ARM® コ ンパ イ ラ ツールチ ェーンの概要』 の以下のセ ク シ ョ ン を参照 し
て下 さ い。
•
一時フ ァ イ ルデ ィ レ ク ト リ の TMP お よ び TMPDIR 環境変数
(2-30 ページ)
ARM DUI 0496GJ
ID 0 5 1 6 1 2
632
"<entity>" : プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル "<entity>" の使用
633
"<entity>" : プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル "<entity>" の作成
634
メ モ リ の使用法が プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル <entity> と 競合 し て い ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-28
C および C++ コ ンパイ ラのエ ラ ーおよび警告
こ れは、 コ ンパ イ ラ のア ド レ ス空間の必須部分を使用で き ないために
PCH フ ァ イ ルを ビル ド にマ ッ プで き ない場合に発生す る 可能性があ り ま
す。
エ ラ ー 631 も 参照 し て下 さ い。
635
PCH メ モ リ サ イ ズ が無効で す
636
PCH オ プ シ ョ ン は、 コ マ ン ド ラ イ ン の最初に表示 さ れ な け れ ば な り ま せ ん
637
PCH メ モ リ 割 り 当て用の メ モ リ が足 り ま せ ん
638
プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル は、 複数の入力 フ ァ イ ル を コ ン パ イ ル す る 場合は使用で き ま せ ん
639
プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル を 生成す る に は、 割 り 当て済み の メ モ リ が足 り ま せ ん (<entity>
バ イ ト 必要)
640
プ ロ グ ラ ム内に非常に大 き な エ ン テ ィ テ ィ が あ る た め、 プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル を 生成で き
ません
641
<entity> は有効な デ ィ ク レ ト リ で は あ り ま せ ん
642
テ ン ポ ラ リ フ ァ イ ル名 を 作成で き ま せ ん
643
"restrict" は使用で き ま せ ん
644
関数型へ の ポ イ ン タ ま た は参照は "restrict" に よ っ て修飾で き ま せ ん
645
<entity> は、 認識 さ れ な い __declspec 属性で す
646
こ こ で呼び出 し 規則修飾子 を 指定す る こ と は で き ま せ ん
647
呼び出 し 規則修飾子が競合 し て い ま す
650
こ こ で指定 し た呼び出 し 規則は無視 さ れ ま す
651
呼び出 し 規則の後に、 ネ ス ト さ れ た宣言子 を 続け る こ と は で き ま せ ん
652
こ の型で は呼び出 し 規則は無視 さ れ ま す
654
宣言修飾子は前の宣言 と 互換性が あ り ま せ ん
655
修飾子 <entity> は こ の宣言に は使用で き ま せ ん
656
ト ラ イ ブ ロ ッ ク に制御が転送 さ れ ま す
657
イ ン ラ イ ン の指定は前の <entity> と 互換性が あ り ま せ ん
658
テ ン プ レ ー ト 定義の閉 じ 括弧が見つ か り ま せ ん
659
wchar_t keyword オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
660
パ ッ ク ア ラ イ メ ン ト 値が無効で す
661
整数定数が期待 さ れ ま す
662
純仮想関数の呼び出 し
例えば、 次の よ う に、 純仮想関数 pvfn が呼び出 さ れ る と し ます。
struct T { T(); virtual void pvfn() = 0; };
// 純仮想関数
T::T() { pvfn(); } // こ こ で警告が発生
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-29
C および C++ コ ンパイ ラのエ ラ ーおよび警告
デフ ォ ル ト では、 純仮想関数を呼び出す と 、 次の よ う な結果にな り ま
す。
1.
ラ イ ブ ラ リ 関数 __cxa_pure_virtual() が呼び出 さ れ る
2.
__cxa_pure_virtual() 関数がシ グナル SIGPVFN を生成す る
3.
こ のシ グナルが default_signal_handler に よ っ て ト ラ ッ プ さ れ る
4.
こ のハン ド ラ がセ ミ ホ ス テ ィ ン グ を使っ て コ ン ソ ールに " 純仮想関数
が呼び出 さ れ ま し た " と 表示す る
『 コ ンパ イ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
純仮想関数の呼び出 し (E-3 ページ) .
663
ソ ー ス フ ァ イ ル識別子 ス ト リ ン グ が無効で す
664
ク ラ ス テ ン プ レ ー ト は friend 宣言で は定義で き ま せ ん
665
"asm" は使用で き ま せ ん
666
"asm" は関数定義 と 一緒に使用す る必要が あ り ま す
667
"asm" 関数は標準で は あ り ま せ ん
668
明示的な パ ラ メ ー タ な し の省略記号は標準で は あ り ま せ ん
669
"&..." は標準で は あ り ま せ ん
670
"&..." は使用で き ま せ ん
672
const volatile へ の参照の初期値 と し て テ ン ポ ラ リ が使用 さ れ て い ま す ( ア ナ ク ロ ニ ズ ム)
673
<type> 型の参照は <type> 型の値で初期化す る こ と は で き ま せ ん
674
const volatile へ の参照の初期値は左辺値で な け れ ば な り ま せ ん
676
<entity> の ス コ ー プ 外宣言の使用
678
<entity> の呼び出 し は イ ン ラ イ ン に で き ま せ ん
679
<entity> は イ ン ラ イ ン に で き ま せ ん
680
無効な PCH デ ィ レ ク ト リ :
688
<entity> が パ ッ ク ア ラ イ メ ン ト ス タ ッ ク で見つ か り ま せ ん
689
パ ッ ク ア ラ イ メ ン ト ス タ ッ ク が空で す
690
RTTI オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
691
削除 さ れ た コ ピ ー に必要な <entity> に ア ク セ ス で き ま せ ん
692
参照パ ラ メ ー タ を 右辺値に バ イ ン ド で き な い の で、 削除 さ れ た コ ピ ー に必要な <entity> を 呼び
出せ ま せ ん
693
<typeinfo> は、 typeid を 使用す る 前に イ ン ク ル ー ド す る 必要が あ り ま す
694
<entity> は、 const ま た は そ の他の型修飾子 を キ ャ ス ト で き ま せ ん
695
dynamic_cast の型は、 完全な ク ラ ス 型へ の ポ イ ン タ か参照、 ま た は void * で な け れ ば な り ま
せん
696
ポ イ ン タ dynamic_cast の オ ペ ラ ン ド は、 完全な ク ラ ス 型へ の ポ イ ン タ で な け れ ば な り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-30
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
697
参照 dynamic_cast の オ ペ ラ ン ド は、 完全な ク ラ ス型の左辺値で な け れ ば な り ま せ ん
698
ラ ン タ イ ム dynamic_cast の オ ペ ラ ン ド は、 ポ リ モ ー フ ィ ッ ク ク ラ ス で な け れ ば な り ま せ ん
699
bool オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
702
= が期待 さ れ ま す
703
条件宣言内で宣言子が期待 さ れ ま す
704
条件内で宣言 さ れ て い る <entity> は、 こ の ス コ ー プ で は再宣言で き ま せ ん
705
デ フ ォ ル ト の テ ン プ レ ー ト 引数は、 関数テ ン プ レ ー ト に は使用で き ま せ ん
706
, ま た は ">" が期待 さ れ ま す
707
テ ン プ レ ー ト パ ラ メ ー タ リ ス ト が期待 さ れ ま す
708
ブ ー ル値の イ ン ク リ メ ン ト は廃止 さ れ る予定で す
709
ブ ー ル型は使用で き ま せ ん
710
ベ ー ス ク ラ ス <entity> の オ フ セ ッ ト ( ク ラ ス <entity> 内) が大 き す ぎ ま す
711
式は ブ ー ル型 ( ま た は ブ ー ル に変換可能な型) で な け れ ば な り ま せ ん
712
array new お よ び delete オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
713
<entity> は変数名で は あ り ま せ ん
717
const_cast 内の型は、 オ ブ ジ ェ ク ト 型へ の ポ イ ン タ 、 参照、 ま た は ポ イ ン タ - メ ン バ で な け れ ば
な り ません
718
const_cast は型指定子の み を 調整で き ま す。 基本型 を 変更す る こ と は で き ま せ ん。
719
mutable は使用で き ま せ ん
720
<entity> を 再定義 し て ア ク セ ス権 を 変更す る こ と は で き ま せ ん
722
代替 ト ー ク ン "<:" の使用は予想 さ れ て い ま せ ん
723
代替 ト ー ク ン "%:" の使用は予想 さ れ て い ま せ ん
724
ネ ー ム ス ペ ー ス は定義で き ま せ ん
725
名前は ネ ー ム ス ペ ー ス 名で な け れ ば な り ま せ ん
726
ネ ー ム ス ペ ー ス エ イ リ ア ス は定義で き ま せ ん
727
ネ ー ム ス ペ ー ス で修飾 さ れ た名前が必要で す
728
ネ ー ム ス ペ ー ス名は使用で き ま せ ん
730
<entity> は ク ラ ス テ ン プ レ ー ト で は あ り ま せ ん
731
不完全な要素型の配列は標準で は あ り ま せ ん
732
領域割 り 当て演算子は ネ ー ム ス ペ ー ス で は宣言で き ま せ ん
733
領域解放演算子は ネ ー ム ス ペ ー ス で は宣言で き ま せ ん
734
<entity> は <entity> の using 宣言 と 競合 し て い ま す
735
<entity> の using 宣言は <entity> と 競合 し て い ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-31
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
736
ネ ー ム ス ペ ー ス オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
737
using 宣言は無視 さ れ ま す -- 現在の ネ ー ム ス ペ ー ス を 参照 し て い ま す
738
ク ラ ス で修飾 さ れ た名前が必要で す
744
互換性の な い メ モ リ 属性が指定 さ れ て い ま す
745
メ モ リ 属性は無視 さ れ ま す
746
メ モ リ 属性の後に、 ネ ス ト さ れ た宣言子 を 続け る こ と は で き ま せ ん
747
メ モ リ 属性が複数回指定 さ れ て い ま す
748
呼び出 し 規則が複数回指定 さ れ て い ま す
749
型修飾子は使用で き ま せ ん
750
<entity> が、 そ の テ ン プ レ ー ト を 宣言す る 前に使用 さ れ ま し た
751
同 じ パ ラ メ ー タ 型の ス タ テ ィ ッ ク お よ び非 ス タ テ ィ ッ ク メ ン バ関数は多重定義で き ま せ ん
752
<entity> が前に宣言 さ れ て い ま せ ん
753
テ ン プ レ ー ト id は使用で き ま せ ん
754
ク ラ ス で修飾 さ れ た名前は使用で き ま せ ん
755
<entity> は現在の ス コ ー プ で は宣言で き ま せ ん
756
修飾 さ れ た名前は ネ ー ム ス ペ ー ス メ ン バ宣言で は使用で き ま せ ん
757
<entity> は型名で は あ り ま せ ん
758
明示的な イ ン ス タ ン ス 生成は現在の ス コ ー プ で は実行で き ま せ ん
759
<entity> は現在の ス コ ー プ で は明示的に イ ン ス タ ン ス化で き ま せ ん
760
<entity> が複数回明示的に イ ン ス タ ン ス 化 さ れ て い ま す
761
typename は テ ン プ レ ー ト 内で の み使用で き ま す
763
typename オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
764
implicit typename オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
765
オ ブ ジ ェ ク ト ラ イ ク な マ ク ロ 定義の先頭に非標準文字が あ り ま す
766
仮想 <entity> の例外の指定は、 オ ー バ ー ラ イ ド さ れ た <entity> の指定 と 互換性が あ り ま せ
ん
767
ポ イ ン タ を よ り 小 さ い整数に変換 し ま す
768
暗黙的に宣言 さ れ た仮想 <entity> の例外の指定は、 オ ー バ ー ラ イ ド さ れ た <entity> の指定
と 互換性が あ り ま せ ん
769
<entity> (<entity> か ら 暗黙的に呼び出 し ) が あ い ま い で す
770
オ プ シ ョ ン "explicit" は C++ の コ ン パ イ ル時に の み使用で き ま す
771
"explicit" は使用で き ま せ ん
772
宣言が <entity> (予約済み ク ラ ス 名) と 競合 し て い ま す
773
() の み が配列 <entity> の イ ニ シ ャ ラ イ ザ と し て使用で き ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-32
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
774
"virtual" は関数テ ン プ レ ー ト 宣言で は使用で き ま せ ん
775
無名共用体が無効で す -- ク ラ ス メ ン バ テ ン プ レ ー ト は使用で き ま せ ん
776
テ ン プ レ ー ト の ネ ス ト の深 さ が <entity> の前の宣言 と 一致 し ま せ ん
777
こ の宣言に は複数の "template <...>" 節 を 含め る こ と が で き ま せ ん
778
for-init の ス コ ー プ を 制御す る オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
779
for-loop 初期化で宣言 さ れ た <entity> は、 こ の ス コ ー プ で は再宣言で き ま せ ん
780
<entity> へ の参照で す -- 古い for-init ス コ ー プ ル ー ル で は <entity> で し た
781
for-init の相違に対す る警告 を 制御す る オ プ シ ョ ン は C++ の コ ン パ イ ル時に の み使用で き ま す
782
こ こ で は仮想 <entity> の定義が必要で す
783
空の コ メ ン ト は ト ー ク ン 貼 り 付け演算子 "##" と し て解釈 さ れ ま す
784
記憶 ク ラ ス は friend 宣言で は使用で き ま せ ん
785
<entity> の テ ン プ レ ー ト パ ラ メ ー タ リ ス ト は こ の宣言で は使用で き ま せ ん
786
<entity> は有効な メ ン バ ク ラ ス ま た は関数 テ ン プ レ ー ト で は あ り ま せ ん
787
有効な メ ン バ ク ラ ス ま た は関数テ ン プ レ ー ト 宣言で は あ り ま せ ん
788
テ ン プ レ ー ト パ ラ メ ー タ リ ス ト を 含む テ ン プ レ ー ト 宣言の後に、 明示的な特殊化宣言 を 続け る こ と
はで き ません
789
<entity> の明示的な特殊化は、 <entity> を 初め て使用す る 前に行 う 必要が あ り ま す
790
明示的な特殊化は現在の ス コ ー プ で は実行で き ま せ ん
791
<entity> の部分的な特殊化は実行で き ま せ ん
792
<entity> は明示的に特殊化で き る エ ン テ ィ テ ィ で は あ り ま せ ん
793
<entity> の明示的な特殊化は、 初め て使用す る前に実行す る必要が あ り ま す
794
テ ン プ レ ー ト パ ラ メ ー タ <entity> は elaborated 型指定子で は使用で き ま せ ん
795
<entity> を 特殊化す る に は、 "template<>" 構文 を 使用す る 必要が あ り ま す
798
オ プ シ ョ ン old_specializations は C++ の コ ン パ イ ル時に の み使用で き ま す
799
template<> 構文 を 使用 し な い <entity> の特殊化は標準で は あ り ま せ ん
800
こ の宣言に extern "C" リ ン ケ ー ジ を 含め る こ と は で き ま せ ん
801
<entity> は、 現在の ス コ ー プ の ク ラ ス ま た は関数 テ ン プ レ ー ト 名で は あ り ま せ ん
802
参照 さ れ て い な い関数 テ ン プ レ ー ト の再宣言時に お け る デ フ ォ ル ト 引数の指定は標準で は あ り ま せ
ん
803
既に参照 さ れ て い る 関数テ ン プ レ ー ト の再宣言時に デ フ ォ ル ト 引数 を 指定す る こ と は で き ま せ ん
804
ベ ー ス ク ラ ス <type> の メ ン バ へ の ポ イ ン タ は派生 ク ラ ス <type> の メ ン バ へ の ポ イ ン タ に変換
で き ま せ ん。 ベ ー ス ク ラ ス は仮想で す。
805
例外の指定は、 <entity><entity> の例外の指定 と 互換性が あ り ま せ ん
806
例外の指定の省略は <entity> と 互換性が あ り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-33
C および C++ コ ンパイ ラのエ ラ ーおよび警告
807
デ フ ォ ル ト 引数式の最後が期待 さ れ て い ま せ ん で し た
808
参照の デ フ ォ ル ト 初期化は実行で き ま せ ん
809
初期化 さ れ て い な い <entity> に const メ ン バ が含 ま れ て い ま す
810
初期化 さ れ て い な い ベ ー ス ク ラ ス <type> に const メ ン バ が含 ま れ て い ま す
811
const <entity> に は イ ニ シ ャ ラ イ ザ が必要で す -- ク ラ ス <type> に は明示的に宣言 さ れ た
デ フ ォ ル ト コ ン ス ト ラ ク タ があ り ません
812
const オ ブ ジ ェ ク ト に は イ ニ シ ャ ラ イ ザ が必要で す -- ク ラ ス <type> に は明示的に宣言 さ れ
たデ フ ォ ル ト コ ン ス ト ラ ク タ があ り ません
814
厳密な ANSI モ ー ド は long 保存規則 と 互換性が あ り ま せ ん
815
戻 り 値型に対す る型修飾子は無効で す
以下に例を示 し ます。
__packed void foo( void ) { }
戻 り 値型が __packed にな る こ と はあ り え ないので、 __packed 修飾子は無
視 さ れます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
816
関数定義で は、 "void" 戻 り 値型に対 し て型修飾子は使用で き ま せ ん
817
ス タ テ ィ ッ ク デ ー タ メ ン バ宣言は こ の ク ラ ス で は使用で き ま せ ん
818
テ ン プ レ ー ト の イ ン ス タ ン ス 生成の結果、 無効な関数宣言が生成 さ れ ま し た
819
"..." は使用で き ま せ ん
821
extern inline <entity> は参照 さ れ ま し た が定義 さ れ て い ま せ ん
822
<type> 型の デ ス ト ラ ク タ 名が無効で す
824
デ ス ト ラ ク タ 参照が あ い ま い で す -- <entity> お よ び <entity> の両方 を 使用で き ま す
825
<entity> を 使用で き ま す
826
<entity> は ま っ た く 参照 さ れ て い ま せ ん
827
コ ン ス ト ラ ク タ イ ニ シ ャ ラ イ ザ リ ス ト で は、 ユ ニ オ ン の 1 つ の メ ン バ の み を 指定で き ま す
828
new[] お よ び "delete[]" の サ ポ ー ト が無効 と な っ て い ま す
829
生成 さ れ た C コ ー ド で、 "long double" の代わ り に "double" が使用 さ れ て い ま す
830
<entity> に は対応す る演算子 delete<entity> (割 り 当て ら れ た オ ブ ジ ェ ク ト の初期化中に例
外が ス ロ ー さ れ た場合に呼び出 さ れ ま す) が あ り ま せ ん
831
配置の削除の サ ポ ー ト は デ ィ セ ー ブ ル さ れ て い ま す
832
該当す る演算子 delete が表示 さ れ て い ま せ ん
833
不完全型へ の ポ イ ン タ ま た は参照は使用で き ま せ ん
834
部分的な特殊化は無効で す -- <entity> は既に全体が特殊化 さ れ て い ま す
835
例外の指定が不完全で す
836
ロ ー カ ル変数へ の参照 を 返 し ま す
837
明示的な型の省略は標準で は あ り ま せ ん ("int" を 想定)
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-34
C および C++ コ ンパイ ラのエ ラ ーおよび警告
関数が戻 り 値型な し で宣言ま たは定義 さ れてい ます。
例えば、 次の コ ー ド では、
foo(void){
int a;
}
int 型の結果が想定 さ れ ます。
結果を返 さ ない場合は、 戻 り 値型 と し て void を指定 し て下 さ い。 こ れ
は、 古い ス タ イ ルの C では一般的な こ と です。
--diag_suppress 837 オプシ ョ ン を指定す る と 、 こ の警告が非表示にな り
ます。
こ の メ ッ セージの特別な ケース であ る main() については、 メ ッ セージ番
号 938 も 参照 し て下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
838
複数の部分的な特殊化が、 <entity> の テ ン プ レ ー ト 引数 リ ス ト と 一致 し て い ま す
840
テ ン プ レ ー ト 引数 リ ス ト は プ ラ イ マ リ テ ン プ レ ー ト の宣言で は使用で き ま せ ん
841
部分的な特殊化に デ フ ォ ル ト テ ン プ レ ー ト 引数 を 指定す る こ と は で き ま せ ん
842
<entity> は、 <entity> の テ ン プ レ ー ト 引数 リ ス ト で使用 さ れ て い ま せ ん
844
部分的な特殊化の テ ン プ レ ー ト 引数 リ ス ト に は、 テ ン プ レ ー ト パ ラ メ ー タ に型 を 依存す る 型の な い
引数が イ ン ク ル ー ド さ れ て い ま す
845
こ の部分的な特殊化は、 <entity> の イ ン ス タ ン ス 生成に使用 さ れ る は ず で し た
846
こ の部分的な特殊化は、 <entity> の イ ン ス タ ン ス 生成 を あ い ま い に す る は ず で し た
847
式は整数型 ま た は列挙型で あ る必要が あ り ま す
848
式は算術型 ま た は列挙型で あ る必要が あ り ま す
849
式は、 算術型、 列挙型、 ま た は ポ イ ン タ 型で あ る必要が あ り ま す
850
キ ャ ス ト 型は整数 ま た は列挙で な け れ ば な り ま せ ん
851
キ ャ ス ト 型は、 算術、 列挙、 ま た は ポ イ ン タ で な け れ ば な り ま せ ん
852
式は、 完全な オ ブ ジ ェ ク ト 型へ の ポ イ ン タ で な け れ ば な り ま せ ん
854
部分的な特殊化の型の な い引数は型の な い パ ラ メ ー タ ま た は定数の名前で な け れ ば な り ま せ ん
855
戻 り 値型が戻 り 値型 <type> ( オ ー バ ー ラ イ ド さ れ た仮想関数 <entity> の も の) と 同 じ で は あ
り ません
856
オ プ シ ョ ン "guiding_decls" は C++ の コ ン パ イ ル時に の み使用で き ま す
857
ク ラ ス テ ン プ レ ー ト の部分的な特殊化は、 そ れ が メ ン バ に な っ て い る ネ ー ム ス ペ ー ス で宣言す る必
要が あ り ま す
858
<entity> は純仮想関数で す
859
純仮想 <entity> に は オ ー バ ラ イ タ が あ り ま せ ん
860
__declspec 属性は無視 さ れ ま す
861
入力行に無効な文字が あ り ま す
862
関数は不完全型 <type> を 返 し ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-35
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
863
こ の "#pragma pack" デ ィ レ ク テ ィ ブ の効果は <entity> に対 し て ロ ー カ ル で す
864
<entity> は テ ン プ レ ー ト で は あ り ま せ ん
865
friend 宣言で は部分的な特殊化 を 宣言で き ま せ ん
866
例外の指定は無視 さ れ ま す
867
size_t の宣言が期待 さ れ る 型 <type> と 一致 し ま せ ん
868
ネ ス ト さ れ た テ ン プ レ ー ト 引数 リ ス ト の隣接す る ">" 区切 り 文字の間に空白が必要で す (">>"
は右シ フ ト 演算子)
869
ロ ケ ー ル <entity> を 設定 し て マ ル チ バ イ ト 文字の処理 を 有効に す る こ と が で き ま せ ん で し た
870
マ ル チ バ イ ト 文字シ ー ケ ン ス が無効で す
871
テ ン プ レ ー ト の イ ン ス タ ン ス 生成の結果、 予期 し な い関数型 <type> に な り ま し た ( テ ン プ レ ー
ト 宣言以降に名前の意味が変更 さ れ た可能性が あ り す -- テ ン プ レ ー ト の型は <type> で す)
872
導入宣言が あ い ま い で す -- 複数の関数 テ ン プ レ ー ト <entity> が <type> 型 と 一致 し ま す
873
型の な い テ ン プ レ ー ト 引数で は非整数処理 を 実行で き ま せ ん
884
メ ン バ へ の ポ イ ン タ 表現 <entity> は <entity> に対 し て既に設定 さ れ て い ま す
885
<type> を 使用 し て <type> の コ ン ス ト ラ ク タ を 指定す る こ と は で き ま せ ん
886
整数定数の接尾文字が無効で す
890
境界が指定 さ れ て い な い可変長配列は使用で き ま せ ん
891
明示的な テ ン プ レ ー ト 引数 リ ス ト は こ の宣言で は使用で き ま せ ん
892
リ ン ケ ー ジ を 持つ エ ン テ ィ テ ィ は可変長配列 を 含む型に す る こ と が で き ま せ ん
893
可変長配列の保存期間 を ス タ テ ィ ッ ク に す る こ と が で き ま せ ん
894
<entity> は テ ン プ レ ー ト で は あ り ま せ ん
895
可変長配列次元 (<entity> と 宣言)
896
テ ン プ レ ー ト 引数が期待 さ れ ま す
902
型修飾子は無視 さ れ ま す
912
ク ラ ス メ ン バ参照が あ い ま い で す -- <entity> が <entity> よ り も優先 し て使用 さ れ て い ま
す
915
セ グ メ ン ト 名は既に指定 さ れ て い ま す
916
派生 ク ラ ス <type> の メ ン バ へ の ポ イ ン タ は ベ ー ス ク ラ ス <type> の メ ン バ へ の ポ イ ン タ に変換
で き ま せ ん。 ベ ー ス ク ラ ス は仮想で す。
917
イ ン ス タ ン ス 生成 フ ァ イ ル の無効な デ ィ レ ク ト リ :
921
イ ン ス タ ン ス 生成情報 フ ァ イ ル名は、 複数の入力 フ ァ イ ル を コ ン パ イ ル す る 場合は指定で き ま せ ん
923
複数の コ マ ン ド ラ イ ン オ プ シ ョ ン が省略形 "--<entity>" と 一致 し て い ま す
925
関数型の型修飾子は無視 さ れ ま す
926
定義 リ ス ト フ ァ イ ル を 開け ま せ ん : <entity>
928
va_start の使用法が正 し く あ り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-36
C および C++ コ ンパイ ラのエ ラ ーおよび警告
929
va_arg の使用法が正 し く あ り ま せ ん
930
va_end の使用法が正 し く あ り ま せ ん
931
pending instantiations は C++ の コ ン パ イ ル時に の み使用で き ま す
932
#import フ ァ イ ル の無効な デ ィ レ ク ト リ :
934
参照型の メ ン バ は ユ ニ オ ン で は使用で き ま せ ん
935
こ こ に "typedef" を 指定す る こ と は で き ま せ ん
936
<entity> を 再宣言す る と ア ク セ ス 権が変更 さ れ ま す
937
ク ラ ス ま た は ネ ー ム ス ペ ー ス で修飾 さ れ た名前が必要で す
938
戻 り 値型 "int" が関数 "main" の宣言で省略 さ れ て い ま す
main() が戻 り 値型な し で宣言ま たは定義 さ れてい ます。
以下に例を示 し ます。
main(void){
int a;
}
こ の コ ー ド は、 --strict で コ ンパ イ ル さ れた場合、 コ ンパ イ ラ に よ っ て
エ ラ ー と し て報告 さ れます。
結果を返 さ ない場合は、 戻 り 値型 と し て void を指定 し て下 さ い。 こ れ
は、 古い ス タ イ ルの C では一般的な こ と です。
ANSI C では、 --diag_suppress 938 オプシ ョ ン を指定す る と 、 こ の警告が
非表示にな り ます。
C++ では、 常にエ ラ ーにな り ます。
よ り 一般的な ケース については、 メ ッ セージ番号 837 を参照 し て下 さ い。
939
メ ン バ へ の ポ イ ン タ 表現 <entity> は <entity> に お い て制約が大 き す ぎ ま す
940
非 void <entity> の末尾に return ス テ ー ト メ ン ト が あ り ま せ ん
関数に戻 り 値型が定義 さ れてい ますが、 値が返 さ れてい ません。
例:
int foo(int a)
{
printf("Hello %d", a);
}
ARM DUI 0496GJ
ID 0 5 1 6 1 2
941
<entity> の重複す る using-declaration は無視 さ れ ま す
942
enum ビ ッ ト フ ィ ー ル ド は常に符号な し で す が、 enum <type> に は負の列挙子が含 ま れ て い ま す
943
オ プ シ ョ ン "class_name_injection" は C++ の コ ン パ イ ル時に の み使用で き ま す
944
オ プ シ ョ ン "arg_dep_lookup" は C++ の コ ン パ イ ル時に の み使用で き ま す
945
オ プ シ ョ ン "friend_injection" は C++ の コ ン パ イ ル時に の み使用で き ま す
946
template の後の名前は テ ン プ レ ー ト で な け れ ば な り ま せ ん
949
こ の宣言時に お け る デ フ ォ ル ト 引数の指定は標準で は あ り ま せ ん
951
関数 "main" の戻 り 値型は "int" で な け れ ば な り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-37
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
952
型の な い テ ン プ レ ー ト パ ラ メ ー タ を ク ラ ス 型に す る こ と は で き ま せ ん
953
ク ラ ス の外側に あ る ク ラ ス テ ン プ レ ー ト メ ン バ の宣言時に、 デ フ ォ ル ト テ ン プ レ ー ト 引数 を 指定で
き ません
954
return ス テ ー ト メ ン ト は、 コ ン ス ト ラ ク タ の ト ラ イ ブ ロ ッ ク の ハ ン ド ラ で は使用で き ま せ ん
955
通常の指定子お よ び拡張指定子は、 イ ニ シ ャ ラ イ ザ指定で組み合わ せ る こ と が で き ま せ ん
956
2 番目の添字 を 最初の添字 よ り も小 さ く す る こ と は で き ま せ ん
959
ビ ッ ト フ ィ ー ル ド の宣言 さ れ た サ イ ズ が、 ビ ッ ト フ ィ ー ル ド 型の サ イ ズ よ り も大 き く な っ て い ま す。
<entity> ビ ッ ト に切 り 捨て ら れ ま す。
960
コ ン ス ト ラ ク タ 名 と し て使用 さ れ て い る型が <type> 型 と 一致 し ま せ ん
961
リ ン ケ ー ジ の な い型 を 使用 し て リ ン ケ ー ジ の あ る変数 を 宣言 し て い ま す
962
リ ン ケ ー ジ の な い型 を 使用 し て関数 を 宣言 し て い ま す
963
戻 り 値型は コ ン ス ト ラ ク タ に は指定で き ま せ ん
964
戻 り 値型は デ ス ト ラ ク タ に は指定で き ま せ ん
965
ユ ニ バ ー サ ル文字名が正 し い形式で は あ り ま せ ん
966
ユ ニ バ ー サ ル文字名が無効な文字 を 指定 し て い ま す
967
ユ ニ バ ー サ ル文字名は、 基本キ ャ ク ラ タ セ ッ ト の文字 を 指定で き ま せ ん
968
こ の ユ ニ バ ー サ ル文字は識別子に は使用で き ま せ ん
969
識別子 __VA_ARGS__ は、 可変個引数 マ ク ロ の置換 リ ス ト に の み表示で き ま す
970
こ の friend 宣言の修飾子は無視 さ れ ま す
971
配列範囲指定子は ダ イ ナ ミ ッ ク な イ ニ シ ャ ラ イ ザ に は適用で き ま せ ん
972
プ ロ パ テ ィ 名は こ こ に は表示 さ れ ま せ ん
975
可変長配列型は使用で き ま せ ん
976
複合 リ テ ラ ル は整数的な定数式で は使用で き ま せ ん
977
<type> 型の複合 リ テ ラ ル は使用で き ま せ ん
978
テ ン プ レ ー ト friend 宣言は ロ ー カ ル ク ラ ス で は宣言で き ま せ ん
979
あ い ま い な "?" 演算 : <type> 型の 2 番目の オ ペ ラ ン ド は <type> 型の 3 番目の オ ペ ラ ン
ド に変換で き ま す。 そ の逆 も 可能で す。
980
関数ポ イ ン タ へ の適切な operator() ま た は変換関数の な い ク ラ ス 型の オ ブ ジ ェ ク ト の呼び出 し
982
引数 リ ス ト に対 し て <type> 型の オ ブ ジ ェ ク ト を 呼び出す こ と が で き る方法が複数あ り ま す
983
typedef 名は既に宣言 さ れ て い ま す (同様の型で)
984
演算子 new と 演算子 delete に は内部 リ ン ケ ー ジ を 与え る こ と は で き ま せ ん
985
記憶 ク ラ ス "mutable" は無名共用体に は使用で き ま せ ん
986
プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル が無効で す
987
抽象 ク ラ ス 型 <type> は キ ャ ッ チ型 と し て使用で き ま せ ん :
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-38
C および C++ コ ンパイ ラのエ ラ ーおよび警告
988
修飾 さ れ た関数型 を 使用 し て非 メ ン バ関数 ま た は ス タ テ ィ ッ ク メ ン バ関数 を 宣言す る こ と は で き ま
せん
989
修飾 さ れ た関数型 を 使用 し て パ ラ メ ー タ を 宣言す る こ と は で き ま せ ん
990
修飾 さ れ た関数型へ の ポ イ ン タ ま た は参照 を 作成で き ま せ ん
991
余分な中括弧は標準で は あ り ま せ ん
992
無効な マ ク ロ 定義 :
コ ンパ イ ル行での、 "-D##" の よ う な不適切な -D の使用
993
ポ イ ン タ 型 <type> お よ び <type> の減算は標準で は あ り ま せ ん
994
空の テ ン プ レ ー ト パ ラ メ ー タ リ ス ト は テ ン プ レ ー ト テ ン プ レ ー ト パ ラ メ ー タ 宣言で は使用で き ま せ
ん
995
class が期待 さ れ ま す
996
テ ン プ レ ー ト テ ン プ レ ー ト パ ラ メ ー タ を 宣言す る場合は、 "class" キ ー ワ ー ド を 使用す る 必要が
あ り ます
997
<entity> は <entity> に よ っ て隠蔽 さ れ て い ま す -- 仮想関数の オ ー バ ー ラ イ ド を 意図 ?
998
修飾 さ れ た名前は、 関数定義で あ る friend 宣言に は使用で き ま せ ん
999
<entity> は <entity> と 互換性が あ り ま せ ん
1000
こ こ に記憶 ク ラ ス を 指定す る こ と は で き ま せ ん
1001
using-declaration に よ っ て指定 さ れ た ク ラ ス メ ン バ は、 直接ベ ー ス ク ラ ス で表示 さ れ て い な
ければな り ま せん
1006
テ ン プ レ ー ト テ ン プ レ ー ト パ ラ メ ー タ は、 そ の テ ン プ レ ー ト パ ラ メ ー タ の い ず れ か と 同 じ 名前に す
る こ と はで き ません
1007
デ フ ォ ル ト 引数の再帰的な イ ン ス タ ン ス生成
1009
<entity> は、 定義で き る エ ン テ ィ テ ィ で は あ り ま せ ん
1010
デ ス ト ラ ク タ 名は修飾す る必要が あ り ま す
1011
friend ク ラ ス名は "typename" で示す こ と が で き ま せ ん
1012
using-declaration で は コ ン ス ト ラ ク タ ま た は デ ス ト ラ ク タ を 指定で き ま せ ん
1013
修飾 さ れ た friend テ ン プ レ ー ト 宣言は、 前に宣言 し た特定の テ ン プ レ ー ト を 参照す る必要が あ
り ます
1014
ク ラ ス テ ン プ レ ー ト 宣言内の指定子が無効で す
1015
引数は仮パ ラ メ ー タ と 互換性が あ り ま せ ん
1016
ARM 関数修飾子の接頭文字形式は、 こ の位置に置 く こ と が で き ま せ ん
1017
重複す る ARM 関数修飾子は使用で き ま せ ん
1018
ARM 関数修飾子は こ の宣言 / 定義に は使用で き ま せ ん
ARM 関数修飾子には、 __svc、 __pure、 __irq の よ う な修飾子が含ま れま
す。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-39
C および C++ コ ンパイ ラのエ ラ ーおよび警告
『 コ ンパ イ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
キーワー ド と 演算子 (5-6 ページ) .
1019
関数修飾子 <entity> は非 ス タ テ ィ ッ ク メ ン バ関数に は使用で き ま せ ん
1020
__irq 関数は引数 を 取る こ と が で き ま せ ん
1021
__irq 関数は結果 を 返す こ と が で き ま せ ん
1022
<entity> 関数へ の ポ イ ン タ ま た は参照 を 持つ こ と は で き ま せ ん
1023
__global_reg は こ の宣言に は使用で き ま せ ん
1024
無効な グ ロ ー バ ル レ ジ ス タ 番号で す。 1 ~ 8 を 使用で き ま す。
無効な レ ジ ス タ が __global_reg で使用 さ れてい ます。
例:
__global_reg(786) int x;
1025
__svc パ ラ メ ー タ <entity> が、 ARM SVC 命令の許可 さ れ た範囲 (0 ~ 0xffffff) 外で す
SVC 番号は、 ARM コ ンパ イ ラ では 0 ~ 0xffffff、 Thumb コ ンパ イ ラ で
は 0 ~ 0xFF の範囲に制限 さ れてい ます。
標準セ ミ ホ ス テ ィ ン グ SVC は、 ARM では 0x123456、 Thumb では 0xAB が
使用 さ れ ます。
1026
グ ロ ー バ ル レ ジ ス タ 変数の ア ド レ ス を 取得す る こ と は で き ま せ ん
1027
__svc_indirect 関数に は引数が必要で す
1028
グ ロ ー バ ル レ ジ ス タ 宣言が <entity> と 競合 し て い ま す
1029
__packed は、 非ポ イ ン タ パ ラ メ ー タ で は無視 さ れ ま す
1030
<entity> <type> は、 __packed な し で前に宣言 さ れ て い ま す
1031
<type> の定義 (パ ッ ク さ れ た <type> 内) は __packed で な け れ ば な り ま せ ん
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 で は、 次の よ う な記載が あ り ま す。
「パ ッ ク 構造体の す べ て の サ ブ 構造体は、 __packed を 使用 し て 宣言す る
必要が あ り ま す。」
パ ッ ク さ れ て い な い子構造体が、 パ ッ ク さ れ た 親構造体 に 含 ま れ て い る
と 、 エ ラ ー に な り ま す。 サ ブ 構造体が配列で あ る 場合 も 同様で す。
以下 に 例 を 示 し ま す。
typedef struct ChildStruct {
int a;
} ChildStruct;
typedef __packed struct ParentStruct {
ChildStruct child[1];
} ParentStruct;
次の よ う な メ ッ セ ー ジ が表示 さ れ ま す。
エ ラ ー : #1031: "ChildStruct" の定義 (パ ッ ク さ れ た "ParentStruct" 内) は
__packed で な け れ ば な り ま せ ん
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
__packed (5-18 ペ ー ジ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-40
C および C++ コ ンパイ ラのエ ラ ーおよび警告
1032
ネ ス ト さ れ た ア ノ ニ マ ス <entity> の定義 (パ ッ ク さ れ た <type> 内) は __packed で な け
ればな り ま せん
1033
<entity> は関数定義 と 互換性が あ り ま せ ん
1034
__irq 関数 を 関数呼び出 し の タ ー ゲ ッ ト に す る こ と は で き ま せ ん
1038
無効な ア ラ イ メ ン ト が指定 さ れ て い ま す。 2 の整数の累乗の み を 指定で き ま す。
1039
ア ラ イ メ ン ト 宣言が <entity> と 競合 し て い ま す
1040
ア ン ダ ー ア ラ イ メ ン ト は許可 さ れ ま せ ん
1041
自動 オ ブ ジ ェ ク ト の ア ラ イ メ ン ト は 8 を 超え る こ と が で き ま せ ん
以下 に 例 を 示 し ま す。
int main(void){
__align(16) int foo = 10;
}
__align は ロ ー カ ル変数 foo に は使用で き な い た め、 エ ラ ー が発生 し ま
す。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
__align (5-7 ペ ー ジ) .
1042
<entity> は、 位置非依存で コ ン パ イ ル さ れ て い る 場合、 ダ イ ナ ミ ッ ク に初期化で き ま せ ん
1043
<entity> は mutable メ ン バ を 保持 し て い る の で const に で き ま せ ん
1044
オ プ シ ョ ン "dep_name" は C++ の コ ン パ イ ル時に の み使用で き ま す
1045
operator-> 関数の シ ー ケ ン ス の ル ー プ が ク ラ ス <type> で始 ま っ て い ま す
1046
<entity> に メ ン バ ク ラ ス <entity> が あ り ま せ ん
1047
グ ロ ー バ ル ス コ ー プ に は <entity> と い う 名前の ク ラ ス が含 ま れ て い ま せ ん
1048
テ ン プ レ ー ト の デ フ ォ ル ト 引数の再帰的な イ ン ス タ ン ス生成
1049
ア ク セ ス宣言 と using 宣言は ユ ニ オ ン に表示で き ま せ ん
1050
<entity> は ク ラ ス メ ン バ で は あ り ま せ ん
1051
非標準 メ ン バ定数 を 宣言で き ま せ ん
1053
オ プ シ ョ ン "parse_templates" は C++ の コ ン パ イ ル時に の み使用で き ま す
1054
オ プ シ ョ ン "dep_name" は "no_parse_templates" で は使用で き ま せ ん
1055
指定 さ れ て い る言語 モ ー ド の間に互換性が あ り ま せ ん
1056
ネ ス ト さ れ た ク ラ ス の再宣言は無効で す
1057
未知の サ イ ズ配列 を 含む型は使用で き ま せ ん
1058
ス タ テ ィ ッ ク な保存期間 を 持つ変数は inline 関数内で定義で き ま せ ん
1059
内部 リ ン ケ ー ジ を 持つ エ ン テ ィ テ ィ は、 外部 リ ン ケ ー ジ を 持つ inline 関数内で参照で き ま せ ん
1060
引数の型 <type> は、 こ の型汎用の関数 マ ク ロ と 一致 し ま せ ん
1062
friend 宣言は、 前の宣言に デ フ ォ ル ト 引数 を 追加で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-41
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1063
<entity> は こ の ス コ ー プ で宣言で き ま せ ん
1064
予約済み の識別子 <entity> は、 関数内で の み使用で き ま す
1065
こ の ユ ニ バ ー サ ル文字 を 識別子の先頭に は使用で き ま せ ん
1066
文字列 リ テ ラ ル が期待 さ れ ま す
1070
va_copy の使用法が正 し く あ り ま せ ん
1071
<entity> は、 浮動小数点型 と 一緒の場合の み使用で き ま す
1072
複素型は使用で き ま せ ん
1073
指定子の種類が無効で す
1074
浮動小数点値は正確に表現で き ま せ ん
1075
複素数浮動小数点演算の結果が範囲外で す
1077
イ ニ シ ャ ラ イ ザ は、 フ レ キ シ ブ ル配列 メ ン バ に対 し て指定で き ま せ ん
1079
標準で は、 後続の宣言に よ っ て <entity> に型 を 指定す る必要が あ り ま す ("int" を 想定)
1080
イ ン ラ イ ン <entity> に は定義が必要で す
1081
整数 を よ り 小 さ い ポ イ ン タ に変換 し ま す
1082
_Complex ま た は _Imaginary 型の型指定子に は浮動小数点型 を 含め る 必要が あ り ま す
1083
イ ン ラ イ ン ア セ ン ブ ラ の構文 エ ラ ー
1084
こ の命令は イ ン ラ イ ン ア セ ン ブ ラ で は使用で き ま せ ん
1085
オペ ラ ン ドがあ り ません
1086
オ ペ ラ ン ド の型が正 し く あ り ま せ ん
1087
オ ペ ラ ン ド は定数で な け れ ば な り ま せ ん
1088
オ ペ ラ ン ド の数が正 し く あ り ま せ ん
1089
PSR オ ペ ラ ン ド が無効で す
1090
PSR オ ペ ラ ン ド が期待 さ れ ま す
1091
指定 さ れ た シ フ ト が無効で す
1092
acc0 で な け れ ば な り ま せ ん
1093
修正可能な左辺値で な け れ ば な り ま せ ん
1094
レ ジ ス タ 式が期待 さ れ ま す
1095
ラ ベ ル名 ま た は関数名が期待 さ れ ま す
1096
命令 を 条件付 き に す る こ と は で き ま せ ん
1097
[ ま た は ] が期待 さ れ ま す
1098
シ フ ト 演算が期待 さ れ ま す
1099
] が期待 さ れ ま せ ん
1100
レ ジ ス タ 指定シ フ ト は使用で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-42
C および C++ コ ンパイ ラのエ ラ ーおよび警告
1101
プ レ イ ン デ ッ ク ス ア ド レ ッ シ ン グ は使用で き ま せ ん
1102
ポ ス ト イ ン デ ク ス ア ド レ ッ シ ン グ は使用で き ま せ ん
1103
ア ド レ シ ン グ モ ー ド では ラ イ ト バ ッ ク で き ません
1104
{ が期待 さ れ ま す
1105
} が期待 さ れ ま す
1106
レ ジ ス タ リ ス ト に レ ジ ス タ が多す ぎ ま す
1107
こ こ で は ^ の み が有効で す
1108
レ ジ ス タ リ ス ト に仮想 レ ジ ス タ と C/C++ 式 を 混在 さ せ る こ と は で き ま せ ん
1109
レ ジ ス タ 範囲で は仮想 レ ジ ス タ の み を 指定で き ま す
1110
ユ ー ザ モ ー ド の レ ジ ス タ 選択 /CPSR 更新は、 イ ン ラ イ ン ア セ ン ブ ラ で は サ ポ ー ト さ れ て い ま せ ん。
組み込み ア セ ン ブ ラ ま た は ア ウ ト オ ブ ラ イ ン ア セ ン ブ ラ を 使用 し て く だ さ い。
1111
コ プ ロ セ ッ サ名が期待 さ れ ま す
1112
コ プ ロ セ ッ サ レ ジ ス タ 名が期待 さ れ ま す
こ れ ら のエ ラ ーは、 次の よ う な イ ン ラ イ ン アセ ン ブ ラ に よ っ て発生 し ま
す。
•
MCR ま たは MRC 命令で、 コ プ ロ セ ッ サ番号を指定 し 忘れてい る
•
無効な コ プ ロ セ ッ サ番号 / コ プ ロ セ ッ サ レ ジ ス タ 番号が指定 さ れ
てい る
正 し い使用例は、 次の と お り です。
void foo()
{
int reg0;
__asm
{
MRC p15, 0, reg0, c1, c0, 0
}
}
1114
こ の機能は、 タ ー ゲ ッ ト ア ー キ テ ク チ ャ / プ ロ セ ッ サ で は サ ポ ー ト さ れ て い ま せ ん
例えば、 以下の コ ー ド を armcc --cpu 4T で コ ンパ イ ル し た場合、
int main(void) {
int a,b,c;
__asm {
QADD a,b,c
}
return(a);
}
サチ ュ レー ト 加算命令は ARMv5TE 以降で し かサポー ト さ れていないた
め、 エ ラ ー メ ッ セージが生成 さ れ ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1115
const オ ペ ラ ン ド に割 り 当て ら れ ま せ ん
1116
レ ジ ス タ リ ス ト は空に で き ま せ ん
1117
非修飾の仮想関数は使用で き ま せ ん
1118
復帰改行が期待 さ れ ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-43
C および C++ コ ンパイ ラのエ ラ ーおよび警告
1119
ス タ テ ィ ッ ク 変数へ の参照は __asm 関数で は使用で き ま せ ん
1120
ス タ テ ィ ッ ク 関数へ の参照は __asm 関数で は使用で き ま せ ん
1121
デ ー タ メ ン バ へ の ポ イ ン タ は __asm 関数で は使用で き ま せ ん
1122
__asm 関数に は ス タ テ ィ ッ ク 修飾子 を 含め る こ と が で き ま せ ん。
1123
ベ ー ス ク ラ ス <type> は <type> の仮想ベ ー ス ク ラ ス で す
1124
ベ ー ス ク ラ ス <type> は <type> の仮想ベ ー ス ク ラ ス で は あ り ま せ ん
1125
<entity> に メ ン バ関数 <entity> が あ り ま せ ん
1126
"__asm" は こ の宣言に は使用で き ま せ ん
1127
メ ン バ イ ニ シ ャ ラ イ ザ リ ス ト は __asm コ ン ス ト ラ ク タ に は使用で き ま せ ん
1128
ト ラ イ ブ ロ ッ ク は __asm コ ン ス ト ラ ク タ に は使用で き ま せ ん
1129
オ ペ ラ ン ド の順序 と 前の コ ン パ イ ラ バ ー ジ ョ ン に互換性が あ り ま せ ん
1130
__align は typedef で は使用で き ま せ ん
1131
移植不可能命令 ( ラ イ ト バ ッ ク と ベ ー ス を 使用す る LDM が レ ジ ス タ リ ス ト で指定 さ れ て い る場合、
ベ ー ス の最終的な値は予想で き ま せ ん)
1132
移植不可能命令 ( ラ イ ト バ ッ ク と ベ ー ス を 使用す る STM が レ ジ ス タ リ ス ト の最初に な い場合、
ベ ー ス の格納値は予想で き ま せ ん)
1133
式オ ペ ラ ン ド は仮想ベ ー ス レ ジ ス タ で は使用で き ま せ ん
1134
リ テ ラ ル は "long long" と し て処理 さ れ ま す
定数が signed long で表現す る には大 き すぎ る ので、 (signed) long long と
し て処理 さ れま し た。
以下に例を示 し ます。
int foo(unsigned int bar)
{
return (bar == 2147483648);
}
2147483648 は signed long で使用で き る 最大値 よ り 1 大 き いので、 警告が
発生 し ます。 ll 接尾文字は、 定数が signed long 型ではな く 、 (64 ビ ッ ト
の) long long 型 と し て処理 さ れ る こ と を意味 し ます。
警告が表示 さ れない よ う にす る には、 定数に明示的に ll ま たは LL 接尾
文字を追加 し ます。 以下に例を示 し ます。
int foo(unsigned int bar)
{
return (bar == 2147483648LL);
}
『 コ ンパ イ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
1135
long long (4-14 ページ) .
リ テ ラ ル は "unsigned long long" と し て処理 さ れ ま す
定数が signed long long で表現す る には大 き すぎ る ので、 unsigned long
long 型に さ れ ま し た。 エ ラ ー番号 1134 を参照 し て下 さ い。
1137
ARM DUI 0496GJ
ID 0 5 1 6 1 2
コ ン マ が期待 さ れ ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-44
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1138
こ の式の後に期待 さ れ な い コ ン マ が あ り ま す
1139
MRRC 処理の オ ペ コ ー ド は 0 ~ 15 の範囲に な け れ ば な り ま せ ん
1140
MCRR 処理の オ ペ コ ー ド は 0 ~ 15 の範囲に な け れ ば な り ま せ ん
1141
CDP 処理の オ ペ コ ー ド は 0 ~ 15 の範囲に な け れ ば な り ま せ ん
1142
MRC 処理の オ ペ コ ー ド は 0 ~ 7 の範囲に な け れ ば な り ま せ ん
1143
MCR 処理の オ ペ コ ー ド は 0 ~ 7 の範囲に な け れ ば な り ま せ ん
1144
opcode_2 は 0 ~ 7 の範囲に な け れ ば な り ま せ ん
1145
LDC/STC の余分な オ ペ コ ー ド は 0 ~ 255 の範囲に な け れ ば な り ま せ ん
1146
LDC/STC オ フ セ ッ ト は -1020 ~ 1020 の範囲内に あ り 、 ワ ー ド 境界で整列 さ せ る必要が あ り ま
す
1147
定数 オ ペ ラ ン ド が範囲外で す
1148
浮動小数点演算子は --fpu=none で は使用で き ま せ ん
1149
関数定義内の浮動小数点の戻 り 値型は、 -fpu=none で は使用で き ま せ ん
1150
関数定義内の浮動小数点の パ ラ メ ー タ 型は、 -fpu=none で は使用で き ま せ ん
1151
イ ニ シ ャ ラ イ ザ に よ る 浮動小数点変数定義は、 -fpu=none で は使用で き ま せ ん
1152
ポ リ モ ー フ ィ ッ ク ベ ー ス ク ラ ス も エ ク ス ポ ー ト す る 必要が あ り ま す
1153
こ の レ ジ ス タ リ ス ト の物理 レ ジ ス タ を 割 り 当て る こ と は で き ま せ ん
1154
こ こ に は偶数番号の物理 レ ジ ス タ の み を 指定で き ま す
1155
こ こ に は物理 レ ジ ス タ へ の割 り 当て の み を 指定で き ま す
1156
こ こ に は物理 レ ジ ス タ か ら の割 り 当て の み を 指定で き ま す
1157
破壊 さ れ た レ ジ ス タ リ ス ト の物理 レ ジ ス タ の み を 指定で き ま す
1158
こ こ で は PSR オ ペ ラ ン ド は無効で す
1159
明確な ラ ベ ル名 ま た は関数名が期待 さ れ ま す
1160
テ ン ポ ラ リ の デ ス ト ラ ク タ の呼び出 し は、 こ の命令に よ っ て更新 さ れ た条件 フ ラ グ を 上書 き し ま す
1161
ス タ ッ ク ポ イ ン タ SP (r13) を 直接変更す る こ と は で き ま せ ん
1162
リ ン ク レ ジ ス タ LR (r14) を 直接変更す る こ と は で き ま せ ん
1163
プ ロ グ ラ ム カ ウ ン タ PC (r15) を 直接変更す る こ と は で き ま せ ん
1164
オ フ セ ッ ト は ワ ー ド 境界で整列 さ せ る 必要が あ り ま す
1165
型は無名共用体で は宣言で き ま せ ん
1166
ロ ー カ ル変数へ の ポ イ ン タ を 返 し ま す
1167
ロ ー カ ル テ ン ポ ラ リ へ の ポ イ ン タ を返し ま す
1168
オ プ シ ョ ン "export" は C++ の コ ン パ イ ル時に の み使用で き ま す
1169
オ プ シ ョ ン "export" は "no_dep_name" で は使用で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-45
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1170
オ プ シ ョ ン "export" は "implicit_include" で は使用で き ま せ ん
1171
<entity> の宣言は、 別の変換単位内の宣言 と 互換性が あ り ま せ ん
1172
も う 1 つ の宣言は <entity> で す
1175
フ ィ ー ル ド 宣言は可変長配列 を 含む型に す る こ と が で き ま せ ん
1176
<entity> の宣言は <entity> の コ ン パ イ ル中に は別の意味 を 持 っ て い ま し た
1177
template が期待 さ れ ま す
1178
"export" は明示的な イ ン ス タ ン ス 生成に は使用で き ま せ ん
1179
"export" は こ の宣言に は使用で き ま せ ん
1180
無名の ネ ー ム ス ペ ー ス の メ ン バ は "export" と し て宣言で き ま せ ん
1181
テ ン プ レ ー ト を 定義 し た後に "export" と し て宣言す る こ と は で き ま せ ん
1182
宣言に ラ ベ ル を 付け る こ と は で き ま せ ん
1183
エ ク スポー ト された テ ン プ レ ー ト のサポー トはデ ィ セーブ ル されています
1184
エ ク ス ポ ー ト さ れ た テ ン プ レ ー ト フ ァ イ ル を 開け ま せ ん : <entity>
1185
<entity> は <entity> の コ ン パ イ ル中に既に定義 さ れ て い ま す
1186
<entity> は別の変換単位で既に定義 さ れ て い ま す
1188
メ イ ク フ ァ イ ル の依存関係 を 一覧表示す る オ プ シ ョ ン は、 複数の変換単位 を コ ン パ イ ル す る 場合に
は指定で き ま せ ん
1190
前処理済み出力 を 生成す る オ プ シ ョ ン は、 複数の変換単位 を コ ン パ イ ル す る 場合に は指定で き ま せ
ん
1191
ク ラ ス と 同 じ 名前の フ ィ ー ル ド を 、 ユ ー ザ が宣言 し た コ ン ス ト ラ ク タ に よ っ て ク ラ ス で宣言す る こ
と はでき ません
1192
"implicit_include" は、 複数の変換単位 を コ ン パ イ ル す る 場合に は使用で き ま せ ん
1193
エ ク ス ポ ー ト さ れ た テ ン プ レ ー ト フ ァ イ ル <entity> は破壊 さ れ て い ま す
1194
<entity> は イ ン ス タ ン ス 化で き ま せ ん -- エ ク ス ポ ー ト さ れ た定義 を 含む変換単位で明示的に
特殊化 さ れ て い ま す
1196
オ ブ ジ ェ ク ト に は メ ン バ <entity> と 互換性の な い cv 修飾子が含 ま れ て い ま す
1197
引数 リ ス ト と 一致す る <entity> の イ ン ス タ ン ス は あ り ま せ ん ( オ ブ ジ ェ ク ト に は一致 を 妨げ る
cv 修飾子が含 ま れ て い ま す)
1198
属性が、 <type> と 互換性の な い モ ー ド を 指定 し て い ま す
1199
指定 さ れ た幅 を 持つ型は あ り ま せ ん
1200
属性に よ っ て指定 さ れ た ア ラ イ メ ン ト 値が無効で す
1201
<type> の属性が無効で す
1202
<entity> の属性が無効で す
1203
パ ラ メ ー タ の属性が無効で す
1204
属性 <entity> は引数 を 取 る こ と が で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-46
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1207
属性 <entity> は無視 さ れ ま す
1208
属性は こ こ に表示で き ま せ ん
1209
属性 <entity> に対す る引数が無効で す
1210
packed 属性は typedef で は無視 さ れ ま す
1211
goto *expr で は、 expr は void * 型で あ る必要が あ り ま す
1212
"goto *expr" は標準で は あ り ま せ ん
1213
ラ ベ ル の ア ド レ ス の取得は標準で は あ り ま せ ん
1214
フ ァ イ ル名が複数回指定 さ れ て い ま す
1215
# 警告デ ィ レ ク テ ィ ブ : <entity>
1216
属性 <entity> は関数定義で の み使用で き ま す
1217
transparent_union 属性は ユ ニ オ ン の み に適用 さ れ、 <type> は ユ ニ オ ン で は あ り ま せ ん
1218
transparent_union 属性は不完全型で は無視 さ れ ま す
1219
<type> を 透過的に で き ま せ ん。 こ れ は、 <entity> が ユ ニ オ ン と 同 じ サ イ ズ で な い た め で す。
1220
<type> を 透過的に で き ま せ ん。 こ れ は、 ユ ニ オ ン と 同 じ サ イ ズ で な い <type> 型の フ ィ ー ル ド
が あ る た め で す。
1221
透過的に で き る の は パ ラ メ ー タ の み で す
1222
<entity> 属性は ロ ー カ ル変数に は適用 さ れ ま せ ん
1224
属性は関数定義に は使用で き ま せ ん
1225
ロ ー カ ル ラ ベ ル の宣言は ス テ ー ト メ ン ト 式の先頭の み に表示 さ れ る 必要が あ り ま す
1226
case range の 2 番目の定数は最初の定数 よ り 大 き く な け れ ば な り ま せ ん
1227
asm 名は関数定義で は使用で き ま せ ん
1228
asm 名は typedef で は無視 さ れ ま す
1229
不明の レ ジ ス タ 名 "<entity>"
1230
修飾子文字 '<entity>' は asm オ ペ ラ ン ド で は無視 さ れ ま す
1231
不明の asm 制約条件修飾子 '<entity>'
1232
不明の asm 制約条件文字 '<entity>'
1233
asm オ ペ ラ ン ド に制約条件文字が あ り ま せ ん
1234
asm 出力 オ ペ ラ ン ド に は、 '=' ま た は '+' の い ず れ か の修飾子 を 含め る必要が あ り ま す
1235
asm 入力 オ ペ ラ ン ド に、 '=' ま た は '+' 修飾子 を 含め る こ と は で き ま せ ん
1236
asm ス テ ー ト メ ン ト に対す る オ ペ ラ ン ド が多す ぎ ま す (最大値は 30。 '+' 修飾子は暗黙的な オ ペ
ラ ン ド を 追加 し ま す)
1237
asm ス テ ー ト メ ン ト に コ ロ ン が多す ぎ ま す
1238
レ ジ ス タ "<entity>" が 2 回以上使用 さ れ て い ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-47
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1239
レ ジ ス タ "<entity>" が使用 さ れ、 か つ上書 き さ れ て い ま す
1240
レ ジ ス タ "<entity>" が複数回上書 き さ れ て い ま す
1241
レ ジ ス タ "<entity>" に は一定の目的が あ り ま す が、 asm ス テ ー ト メ ン ト で は使用で き ま せ ん
1242
レ ジ ス タ "<entity>" に は一定の目的が あ り ま す が、 asm ス テ ー ト メ ン ト で は上書 き で き ま せ ん
1243
空の上書 き リ ス ト は完全に省略す る 必要が あ り ま す
1244
asm オ ペ ラ ン ド が期待 さ れ ま す
1245
上書 き す る レ ジ ス タ が期待 さ れ ま す
1246
"format" 属性が、 変数引数 を 持た な い <entity> に適用 さ れ ま し た
1247
最初の代入引数は最初の変数引数で は あ り ま せ ん
1248
フ ォ ー マ ッ ト 引数の イ ン デ ッ ク ス が パ ラ メ ー タ の数 よ り 大 き く な っ て い ま す
1249
フ ォ ー マ ッ ト 引数は文字列型で は あ り ま せ ん
1250
構文の あ い ま い さ を な く す た め に使用 さ れ て い る "template" キ ー ワ ー ド は、 テ ン プ レ ー ト 内で
の み使用で き ま す
1253
属性は非関数型 <type> に は適用 さ れ ま せ ん
1254
void ま た は関数型へ の ポ イ ン タ に対す る 演算
1255
記憶 ク ラ ス は auto ま た は レ ジ ス タ で な け れ ば な り ま せ ん
1256
<type> は、 省略記号パ ラ メ ー タ を 介 し て渡 さ れ る と 、 <type> に促進 さ れ ま す。 代わ り に後者の
型 を 使用 し て く だ さ い。
1257
<entity> は ベ ー ス ク ラ ス メ ン バ で は あ り ま せ ん
1262
符号化 さ れ た名前が長す ぎ ま す
1263
オ フ セ ッ ト は ハ ー フ ワ ー ド 境界で整列 さ せ る 必要が あ り ま す
1264
オ フ セ ッ ト は ダ ブ ル ワ ー ド 境界で整列 さ せ る 必要が あ り ま す
1265
浮動小数点型へ の変換 ま た は浮動小数点型か ら の変換は、 --fpu=none で は実行で き ま せ ん
1266
オ ペ ラ ン ド は定数式で な け れ ば な り ま せ ん
1267
暗黙の物理 レ ジ ス タ <entity> は変数 と し て定義す る 必要が あ り ま す
1268
宣言は不明の エ ン テ ィ テ ィ <entity> に エ イ リ ア ス さ れ て い ま す
1269
宣言は そ の エ イ リ ア ス <entity> と 一致 し ま せ ん
1270
エ イ リ ア ス と し て宣言 さ れ た エ ン テ ィ テ ィ に は定義 を 含め る こ と が で き ま せ ん
1271
可変長配列 フ ィ ー ル ド 型は、 長 さ が ゼ ロ の配列 フ ィ ー ル ド 型 と し て処理 さ れ ま す
1272
左辺値に対す る非標準キ ャ ス ト は サ ポ ー ト さ れ て い ま せ ん
1273
認識 さ れ な い フ ラ グ名
1274
void 戻 り 値型は修飾で き ま せ ん
1275
auto 指定子は こ こ で は無視 さ れ ま す (標準 C/C++ で は無効)
1276
packed 属性の な い ア ラ イ メ ン ト の縮小は無視 さ れ ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-48
C および C++ コ ンパイ ラのエ ラ ーおよび警告
1277
<entity> に対応す る メ ン バ テ ン プ レ ー ト は、 別の変換単位で別の種類の テ ン プ レ ー ト と し て宣言
されています
1278
余分な イ ニ シ ャ ラ イ ザ は無視 さ れ ま す
1279
va_start は省略記号パ ラ メ ー タ を 含む関数の み に表示で き ま す
1282
変数 <entity> は レ ジ ス タ 範囲で は使用で き ま せ ん
1283
こ こ で は物理 レ ジ ス タ 名が必要で す
1284
こ こ に レ ジ ス タ 範囲 を 指定す る こ と は で き ま せ ん
1285
暗黙の物理 レ ジ ス タ <entity> が定義 さ れ て い ま せ ん
1286
LDRD/STRD 命令は展開 さ れ ま す
イ ン ラ イ ン アセ ンブ ラ で LDRD お よ び STRD 命令が使用 さ れ る と 、 こ れ ら
は コ ンパ イ ラ に よ っ て 2 つの LDR ま たは STR 命令に展開 さ れてか ら 、 コ
ンパ イ ラ の最適化ス テージに渡 さ れます。
最適化ス テージでは、 通常、 2 つの LDR ま たは STR 命令を 1 つの LDRD ま た
は STRD 命令に結合 し 直 し ますが、 場合に よ っ ては、 LDRD ま たは STRD が使
用 さ れない こ と も あ り ます。
1287
LDM/STM 命令は展開で き ま す
イ ン ラ イ ン アセ ンブ ラ で LDM お よ び STM 命令が使用 さ れ る と 、 こ れ ら は
コ ンパ イ ラ に よ っ て複数の LDR ま たは STR 命令に展開 さ れてか ら 、 コ ン
パ イ ラ の最適化ス テージに渡 さ れ ます。
最適化ス テージでは、 通常、 2 つの LDR ま たは STR 命令を LDM ま たは STM
命令に結合 し 直 し ますが、 場合に よ っ ては、 1 つの LDM ま たは STM 命令が
使用 さ れない こ と も あ り ます。
1288
名前の競合の た め に、 暗黙の ARM レ ジ ス タ <entity> が定義 さ れ ま せ ん で し た
1289
ス テ ー ト メ ン ト 式は ブ ロ ッ ク ス コ ー プ で の み使用で き ま す
1291
asm 名は非 レ ジ ス タ 自動変数で無視 さ れ ま す
1292
inline 関数は エ イ リ ア ス と し て も 宣言 さ れ ま す。 定義は無視 さ れ ま す。
1293
条件に よ る代入
ブール値が必要な コ ン テ キ ス ト (if、 while、 for の制御式) や条件式の
第 1 オペ ラ ン ド で、 式に次のいずれかが含まれてい ます。
•
ビ ッ ト 単位否定演算子 (~)。 論理否定演算子 (!) を使 う 必要が
あ っ た と 考え ら れ ます。
•
代入演算子 (=)。 等価演算子 (==) の入力間違いだ と 考え ら れま
す。
ど ち ら の場合 も 、 演算子が意図 し た も のであ る 場合は、 0 と の明示的な
比較を追加すれば、 警告を非表示にで き ます。
こ の警告は、 --diag_suppress 1293 オプシ ョ ン を指定す る と 、 非表示にで
き ます。
例:
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-49
C および C++ コ ンパイ ラのエ ラ ーおよび警告
int main(void)
{
int a,b;
if (a=b)
}
1294
古い ス タ イ ル の関数 <entity>
コ ンパ イ ラ は、 古い ス タ イ ルの関数宣言 も 、 新 し い ス タ イ ルの関数宣言
も 受容 し ます。
関数宣言の古い ス タ イ ル と 新 し い ス タ イ ルの違いは、 次の と お り です。
// 新 し い ス タ イ ル
int add2(int a, int b)
{
return a+b;
}
// 古い ス タ イ ル
int oldadd2(a,b)
int a;
int b;
{
return a+b;
}
古い ス タ イ ルの関数を C モー ド で コ ンパ イ ルす る と 、 次の メ ッ セージが
生成 さ れ ます。
警告 : #1294-D : 古い ス タ イ ル の関数 oldadd2
1295
廃止 さ れ る予定の宣言 <entity> - arg 型 を 指定
通常、 こ の警告は、 ANSI C モー ド で引数型のない宣言があ っ た場合に
発生 し ます。 ANSI C では、 こ の よ う な宣言は廃止 さ れ る 予定です。 ただ
し 、 古い コ ー ド を移植す る 場合な ど、 --diag_suppress 1295 オプシ ョ ン を
指定 し て、 こ の警告を非表示に し た方が便利な場合 も あ り ます。
C++ では、
void foo();
が次の意味にな り ます。
void foo(void);
警告は生成 さ れ ません。
1296
拡張定数 イ ニ シ ャ ラ イ ザ が使用 さ れ て い ま す
定数 イ ニシ ャ ラ イ ザ と し て使用 さ れてい る 式が移植で き ない可能性があ
り ます。
こ の メ ッ セージは、 ANSI C の厳密な規則に従っ ていない定数があ る こ
と を警告 し てい ます (ANSI C の仕様には、 こ れを容認す る 条項 も あ り
ます)。
例えば、 以下の コ ー ド を --c90 ス イ ッ チで コ ンパ イ ルす る と し ます。
const int foo_table[] = { (int)"foo", 0, 1, 2};
こ れは ANSI C 標準準拠ではあ り ません。 --diag_suppress 1296 で コ ンパ イ
ルす る と 、 こ の警告を非表示にで き ます。
1297
複数の イ ン ク ル ー ド に対 し て ヘ ッ ダ フ ァ イ ル が保護 さ れ て い ま せ ん
こ の警告は、 保護 さ れていないヘ ッ ダ フ ァ イ ルが イ ン ク ルー ド さ れた場
合に発生 し ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-50
C および C++ コ ンパイ ラのエ ラ ーおよび警告
保護 さ れていないヘ ッ ダ フ ァ イ ル と は、 次の よ う な宣言内に ラ ッ プ さ れ
ていないヘ ッ ダ フ ァ イ ルの こ と です。
#ifdef foo_h
#define foo_h
/* イ ン ク ル ー ド フ ァ イ ル の本文 */
#endif
こ の警告はデフ ォ ル ト ではオ フ にな っ てい ます。 次のオプシ ョ ン を使っ
て有効にで き ます。
--diag_warning 1297
1298
ヘ ッ ダ フ ァ イ ル は '<entity>' に よ っ て保護 さ れ て い ま す が、 こ れ を #define は し て い ま せ ん
例:
#ifndef MYHEADER_H
//#define MYHEADER_H
#endif
こ の コ ー ド を修正す る には、 コ メ ン ト の ス ラ ッ シ ュ (//) を削除 し ま
す。 こ の警告はデフ ォ ル ト ではオ フ にな っ てい ます。 次のオプシ ョ ン を
使っ て有効にで き ます。
--diag_warning 1298
1299
メ ン バ お よ び ベ ー ス ク ラ ス は宣言の順序で初期化 さ れ ま せ ん。 メ ン バ初期化 リ ス ト 順で は あ り ま せ
ん。
1300
<entity> は暗黙の仮想 を 継承 し ま す
こ の警告は、 派生 ク ラ ス の非仮想 メ ンバ関数が親 ク ラ ス の仮想 メ ンバを
隠蔽す る 場合に発生 し ます。 以下に例を示 し ます。
struct Base { virtual void f(); };
struct Derived : Base { void f(); };
では、 次の よ う な メ ッ セージが表示 さ れ ます。
警告 : #1300-D : f は暗黙の仮想 を 継承 し ま す
struct Derived : Base { void f(); };
^
派生 ク ラ ス で virtual キー ワ ー ド を追加す る と 、 こ の警告が生成 さ れな
い よ う にす る こ と がで き ます。 C++ では、 --diag_suppress 1300 オプシ ョ
ン を指定す る と 、 暗黙の仮想の警告が非表示にな り ます。
1301
構造体 <entity> に挿入 さ れ る パ デ ィ ン グ
構造体の メ ンバを正 し く 整列 さ せ る ために、 メ ンバ間にい く つかのパ
デ ィ ン グが挿入 さ れ ま し た。 こ の警告はデフ ォ ル ト でオ フ にな っ てい ま
すが、 --diag_warning 1301 ま たは --remarks を使っ て、 表示 さ れ る よ う に
す る こ と がで き ます。
以下に例を示 し ます。
struct X {
char x;
int y;
}
では、 次の よ う な メ ッ セージが表示 さ れ ます。
警告 : #1301-D : 構造体 X に挿入 さ れ る パ デ ィ ン グ
コ ンパ イ ラ は、 struct の末尾ま たは複数の struct の間に追加 さ れたパ
デ ィ ン グについて警告を生成す る こ と も で き ます。 2530 を参照 し て下
さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-51
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1302
型は レ ジ ス タ で返す に は大 き す ぎ ま す - __value_in_regs は無視 さ れ ま す
1303
--force_new_nothrow の使用 : "throw()" を 追加
1304
operator new に例外の指定が あ り ま せ ん
1305
--force_new_nothrow の使用 : "(::std::nothrow)" を 追加
1307
浮動小数点引数は、 -fpu=none で は使用で き ま せ ん
1308
ベ ー ス ク ラ ス <type> (__packed ク ラ ス <type>) は __packed で な け れ ば な り ま せ ん
1310
共有 ブ ロ ッ ク サ イ ズ が前に指定 さ れ た サ イ ズ と 一致 し ま せ ん
1311
括弧で囲 ま れ た式は、 配列次元で は な く ブ ロ ッ ク サ イ ズ の指定 と 見な さ れ ま す
1312
共有配列の ブ ロ ッ ク サ イ ズ は ゼ ロ よ り 大 き く す る必要が あ り ま す
1313
複数の ブ ロ ッ ク サ イ ズ は指定で き ま せ ん
1314
strict ま た は relaxed に は shared が必要で す
1316
指定 さ れ た ブ ロ ッ ク サ イ ズ は <entity> の最大値 を 超え て い ま す
1317
shared を 返す関数は使用で き ま せ ん
1320
構造体 ま た は ユ ニ オ ン 内で共有型は使用で き ま せ ん
1321
パ ラ メ ー タ を 共有型に す る こ と は で き ま せ ん
1323
共有変数は static ま た は extern で な け れ ば な り ま せ ん
1327
ア フ ィ ニ テ ィ 式は、 共有型で あ る か、 共有型へ の ポ イ ン タ で な け れ ば な り ま せ ん
1328
ア フ ィ ニ テ ィ は (共有型へ の ポ イ ン タ で は な く ) 共有型で す
1329
shared void* 型は、 等に つ い て の み比較で き ま す
1331
入力行内の null (ゼ ロ ) 文字は無視 さ れ ま す
1332
文字列 ま た は文字定数に null (ゼ ロ ) 文字が含 ま れ て い ま す
1333
ヘ ッ ダ 名に null (ゼ ロ ) 文字が含 ま れ て い ま す
1334
for イ ニ シ ャ ラ イ ザ内の宣言は、 そ れ を 囲む ス コ ー プ の宣言 を 非表示に し ま す
1335
非表示に さ れ る宣言は <entity> で す
1336
<entity> の プ ロ ト タ イ プ 宣言は、 こ の非 プ ロ ト タ イ プ 再宣言の後で無視 さ れ ま す
1338
<entity> に外部 C リ ン ケ ー ジ を 含め る 必要が あ り ま す
1339
変数宣言は for イ ニ シ ャ ラ イ ザ の宣言 を 非表示に し ま す
1340
typedef <entity> は elaborated 型指定子で は使用で き ま せ ん
1341
ゼ ロ 定数の呼び出 し は無視 さ れ ま す
1342
パ ラ メ ー タ <entity> は関数 ト ラ イ ブ ロ ッ ク の catch 節で は再宣言で き ま せ ん
1343
<entity> の最初の明示的な特殊化は、 テ ン プ レ ー ト を 含む ネ ー ム ス ペ ー ス で宣言す る必要が あ り
ます
1345
"template" の後に は識別子が必要で す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-52
C および C++ コ ンパイ ラのエ ラ ーおよび警告
1347
レ イ ア ウ ト 修飾子は shared へ の ポ イ ン タ を 修飾で き ま せ ん
1348
レ イ ア ウ ト 修飾子は不完全な配列 を 修飾で き ま せ ん
1349
<entity> の宣言は ハ ン ド ラ パ ラ メ ー タ を 非表示に し ま す
1350
配列型へ の非標準キ ャ ス ト は無視 さ れ ま す
1351
こ の プ ラ グ マ は _Pragma 演算子で は使用で き ま せ ん (#pragma デ ィ レ ク テ ィ ブ を 使用す る 必要
が あ り ま す)
1352
フ ィ ー ル ド は ベ ー ス ク ラ ス の末端パ デ ィ ン グ を 使用 し ま す
1353
GNU C++ コ ン パ イ ラ は ビ ッ ト フ ィ ー ル ド パ デ ィ ン グ を 使用で き ま す
1354
メ モ リ マ ッ ピ ン グ が プ リ コ ン パ イ ル ヘ ッ ダ フ ァ イ ル <entity> と 競合 し て い ま す
1355
抽象 ク ラ ス <type> に は仮想デ ス ト ラ ク タ が含 ま れ て い る の で、 こ の ク ラ ス へ の ポ イ ン タ に
delete を 呼び出す と 、 動作は未定義に な り ま す
1356
asm 名は非ス タ テ ィ ッ ク メ ン バ宣言で は使用で き ま せ ん
1357
<entity> の ス タ テ ィ ッ ク な初期化 を 行 う と (<entity> の ア ド レ ス を 使用)、 リ ン ク 失敗
<option> が発生す る 場合が あ り ま す
エ ラ ー番号 1359 を参照 し て下 さ い。
1358
extern const <entity> の ス タ テ ィ ッ ク な初期化 (<entity> の ア ド レ ス を 使用) は、 ROPI
に対 し て低 く す る こ と が で き ま せ ん
1359
<entity> の ス タ テ ィ ッ ク な初期化 を 行 う と (<entity> の ア ド レ ス を 使用)、 リ ン ク 失敗
<option> が発生す る 場合が あ り ま す
警告 1357 お よ び 1359 は、 非 PI コ ー ド 構造が使用 さ れてい る こ と と 、 そ
の後の リ ン ク 手順が失敗す る 可能性があ る こ と に対す る 警告です。
例えば、 --apcs /ropi で次の コ ー ド を コ ンパ イ ル し た場合、
char *str = "test"; /* グ ロ ー バ ル ポ イ ン タ */
次の よ う な メ ッ セージが表示 さ れます。
警告 : #1357-D : 変数 "str" の ス タ テ ィ ッ ク な初期化 を 行 う と (文字列 リ テ ラ ル の ア ド レ ス を
使用)、 リ ン ク 失敗 --ropi が発生す る場合が あ り ま す
グ ロ ーバルポ イ ン タ str は .constdata セ ク シ ョ ン の char 文字列 test のア
ド レ ス に初期化す る 必要があ り ますが、 PI シ ス テ ム では絶対ア ド レ ス を
使用で き ないためです。
例えば、 --apcs /rwpi で次の コ ー ド を コ ンパ イ ル し た場合、
int bar;
int *foo = &bar; /* グ ロ ー バ ル ポ イ ン タ */
次の よ う な メ ッ セージが表示 さ れます。
警告 : #1359-D : 変数 "foo" の ス タ テ ィ ッ ク な初期化 を 行 う と (bar の ア ド レ ス を 使用)、 リ
ン ク 失敗 --rwpi が発生す る 場合が あ り ま す
グ ロ ーバルポ イ ン タ foo は .data セ ク シ ョ ン の bar のア ド レ ス に初期化す
る 必要があ り ますが、 PI シ ス テ ム では絶対ア ド レ ス を使用で き ないため
です。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-53
C および C++ コ ンパイ ラのエ ラ ーおよび警告
以下の解決方法があ り ます。
•
グ ロ ーバルポ イ ン タ を使用 し ない よ う に コ ー ド を変更 し ます。 例え
ば、 代わ り にグ ロ ーバル配列ま たは ロ ーカルポ イ ン タ を使用で き
ます。
•
次の よ う に、 初期化を実行時に行い ます。
int bar;
int *foo;
次に、 関数内で foo = &bar; と 設定す る コ ー ド を書 き ます。 こ れは、
静的にデー タ を初期化す る 場合 と は異な り 、 コ ー ド を生成す る と
き に コ ンパ イ ラ が ROPI/RWPI の制約を回避す る ための ス コ ープ を
持て る よ う にす る ためです。
リ ン カのエ ラ ー L6248E を参照 し て く だ さ い。
1360
extern const <entity> の ス タ テ ィ ッ ク な初期化 (<entity> の ア ド レ ス を 使用) は、 RWPI
に対 し て低 く す る こ と が で き ま せ ん
例えば、 --apcs /rwpi で次の コ ー ド を コ ンパ イ ル し た場合、
extern int y;
int* const x = &y;
int* foo()
{
return(x);
}
y に接頭文字 extern を付け る と 、 変数 x と y の直接ア ド レ ス オ フ セ ッ ト
を コ ンパ イ ラ が定義で き な く な る ため、 警告が生成 さ れます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1361
<entity> が "deprecated" と 宣言 さ れ ま し た
1362
認識 さ れ な い フ ォ ー マ ッ ト 関数型 <entity> は無視 さ れ ま す
1363
ベ ー ス ク ラ ス <entity> は、 ベ ー ス ク ラ ス <entity> の末端パ デ ィ ン グ を 使用 し ま す
1366
こ の無名共用体 / 構造体 フ ィ ー ル ド は <entity> に よ っ て非表示に さ れ ま す
1367
無効な エ ラ ー番号
1368
無効な エ ラ ー タ グ
1369
エ ラ ー番号 ま た は エ ラ ー タ グ が期待 さ れ ま す
1370
ク ラ ス の サ イ ズ は末端パ デ ィ ン グ の影響 を 受け ま す
1371
ラ ベ ル は関数定義内で の み参照で き ま す
1372
ス テ ー ト メ ン ト 式内に制御 を 転送す る こ と は で き ま せ ん
1374
ス テ ー ト メ ン ト 式の外へ制御 を 転送す る こ と は で き ま せ ん
1375
非 POD ク ラ ス 定義は、 ス テ ー ト メ ン ト 式内で は行 う こ と が で き ま せ ん
1376
破棄可能な エ ン テ ィ テ ィ は、 ス テ ー ト メ ン ト 式内で は使用で き ま せ ん
1377
ダ イ ナ ミ ッ ク に初期化 さ れ た ロ ー カ ル ス タ テ ィ ッ ク 変数は、 ス テ ー ト メ ン ト 式内で は使用で き ま せ
ん
1378
可変長配列は ス テ ー ト メ ン ト 式内で は使用で き ま せ ん
1379
ス テ ー ト メ ン ト 式は デ フ ォ ル ト 引数内で は使用で き ま せ ん
1382
関数へ の ポ イ ン タ と デ ー タ へ の ポ イ ン タ 間に お け る 非標準の変換で す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-54
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1383
イ ン タ フ ェ ー ス型に は仮想ベ ー ス ク ラ ス を 含め る こ と が で き ま せ ん
1384
イ ン タ フ ェ ー ス型は "private" ま た は "protected" を 指定で き ま せ ん
1385
イ ン タ フ ェ ー ス型は他の イ ン タ フ ェ ー ス型か ら の み派生で き ま す
1386
<type> は イ ン タ フ ェ ー ス 型で す
1387
イ ン タ フ ェ ー ス型に は typedef メ ン バ を 含め る こ と が で き ま せ ん
1388
イ ン タ フ ェ ー ス型に は ユ ー ザ が宣言 し た コ ン ス ト ラ ク タ や デ ス タ ラ ク タ を 含め る こ と が で き ま せ ん
1389
イ ン タ フ ェ ー ス型に は ユ ー ザ が宣言 し た メ ン バ演算子 を 含め る こ と が で き ま せ ん
1390
イ ン タ フ ェ ー ス型は関数内で は宣言で き ま せ ん
1391
イ ン タ フ ェ ー ス テ ン プ レ ー ト を 宣言で き ま せ ん
1392
イ ン タ フ ェ ー ス型に は デ ー タ メ ン バ を 含め る こ と が で き ま せ ん
1393
イ ン タ フ ェ ー ス型に は friend 宣言 を 含め る こ と が で き ま せ ん
1394
イ ン タ フ ェ ー ス型に は ネ ス ト さ れ た ク ラ ス を 含め る こ と が で き ま せ ん
1395
イ ン タ フ ェ ー ス型 を ネ ス ト さ れ た ク ラ ス型に す る こ と は で き ま せ ん
1396
イ ン タ フ ェ ー ス型に は メ ン バ テ ン プ レ ー ト を 含め る こ と が で き ま せ ん
1397
イ ン タ フ ェ ー ス型に は ス タ テ ィ ッ ク メ ン バ関数 を 含め る こ と が で き ま せ ん
1398
こ の プ ラ グ マ は _pragma 演算子で は使用で き ま せ ん (#pragma デ ィ レ ク テ ィ ブ を 使用す る 必要
が あ り ま す)
1399
修飾子は <type> の ベ ー ス ク ラ ス で な け れ ば な り ま せ ん
1400
宣言は、 指定 さ れ た ベ ー ス ク ラ ス の純仮想 メ ン バ関数に対応 し て い る 必要が あ り ま す
1401
<type> の サ イ ズ ま た は複雑 さ が原因で、 内部演算で整数の オ ー バ ー フ ロ ー が発生 し ま し た
1402
内部演算で整数の オ ー バ ー フ ロ ー が発生 し ま し た
1404
int、 long、 ま た は ポ イ ン タ 型が 64 ビ ッ ト で あ る環境で コ ン パ イ ル し た場合、 潜在的に変換が ナ
ロ ー イ ン グ されます
1405
プ ラ グ マ パ ッ ク の現在値は <entity> で す
1406
プ ラ グ マ パ ッ ク の引数は無視 さ れ ま す
1407
ア ラ イ メ ン ト 指定子の値が無効で す
1408
整数 リ テ ラ ル が期待 さ れ ま す
1409
前の __declspec(align(...)) は無視 さ れ ま す
1410
<entity> 属性パ ラ メ ー タ の引数値が期待 さ れ ま す
1411
<entity> 属性パ ラ メ ー タ の引数値が無効で す
1412
<entity> 属性パ ラ メ ー タ の ブ ー ル値が期待 さ れ ま す
1413
位置引数 を 属性内の名前付 き 引数の後に置 く こ と は で き ま せ ん
1414
属性 <filename> に は、 <filename> と い う パ ラ メ ー タ が あ り ま せ ん
1415
<entity> 属性の引数 リ ス ト が期待 さ れ ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-55
C および C++ コ ンパイ ラのエ ラ ーおよび警告
1416
, ま た は "]" が期待 さ れ ま す
1417
属性引数 <entity> に は既に値が与え ら れ て い ま す
1418
値 を <entity> 属性に割 り 当て る こ と は で き ま せ ん
1419
throw 式 を 不完全型へ の ポ イ ン タ に す る こ と は で き ま せ ん
1420
alignment-of 演算子は不完全型に適用 さ れ ま す
1421
<entity> は ス タ ン ド ア ロ ン 属性 と し て の み使用で き ま す
1422
<entity> 属性は こ こ で は使用で き ま せ ん
1423
認識 さ れ な い属性 <entity>
1424
属性は こ こ で は使用で き ま せ ん
1425
<entity> 属性パ ラ メ ー タ の引数値が無効で す
1426
属性引数が多す ぎ ま す
1427
ア ク セ ス で き な い ベ ー ス ク ラ ス <type> か ら は変換で き ま せ ん
1428
オ プ シ ョ ン "export" で は個別の テ ン プ レ ー ト 署名が必要で す
1429
文字の種類が異な る 文字列 リ テ ラ ル は連結で き ま せ ん
1430
GNU レ イ ア ウ ト バ グ は、 仮想ベ ー ス <entity> を <entity> オ ブ ジ ェ ク ト 境界の外に配置す る
の で、 エ ミ ュ レ ー ト さ れ ま せ ん
1431
仮想ベ ー ス <entity> は、 <entity> オ ブ ジ ェ ク ト 境界の外に配置 さ れ ま す
1432
ネ ー ム ス ペ ー ス メ ン バ宣言に非標準の修飾名が あ り ま す
1433
ア ラ イ メ ン ト の縮小は無視 さ れ ま す
1434
const 修飾子は無視 さ れ ま す
1436
__breakpoint 引数は整数 コ ン パ イ ル時定数で な け れ ば な り ま せ ん
1437
__breakpoint 引数は、 ARM を 対象 と し た コ ン パ イ ル時に は 0 ~ 65535 の範囲内に な け れ ば
な り ません
1438
__breakpoint 引数は、 Thumb を 対象 と し た コ ン パ イ ル時に は 0 ~ 255 の範囲内に な け れ ば
な り ません
1439
BKPT 命令は、 タ ー ゲ ッ ト ア ー キ テ ク チ ャ / プ ロ セ ッ サ で は サ ポ ー ト さ れ て い ま せ ん
1440
オ ー バ ー サ イ ズ の ビ ッ ト フ ィ ー ル ド レ イ ア ウ ト は変更 さ れ ま す -- "<entity>:0;" を 先頭に追
加す る こ と を 検討 し て く だ さ い
1441
左辺値に対す る非標準キ ャ ス ト
C の仕様では、 「An assignment operator shall have a modifiable lvalue as its
left operand」 (代入演算子は左オペ ラ ン ド と し て修正可能な左辺値を持
つべ き であ る お よ び 「a cast does not yield an lvalue」 (キ ャ ス ト は左辺値を
生成 し ない) と 記載 さ れてい ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1442
エ ク ス ポ ー ト さ れ た派生 ク ラ ス で ポ リ モ ー フ ィ ッ ク ベ ー ス ク ラ ス を 使用す る に は、 エ ク ス ポ ー ト す
る必要が あ り ま す
1443
仮想派生 ク ラ ス か ら 継承 さ れ た ポ リ モ ー フ ィ ッ ク ベ ー ス ク ラ ス は エ ク ス ポ ー ト す る 必要が あ り ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-56
C および C++ コ ンパイ ラのエ ラ ーおよび警告
1444
仮想派生 ク ラ ス か ら 継承 さ れ た ポ リ モ ー フ ィ ッ ク ベ ー ス ク ラ ス を 使用す る 場合、 全仮想関数 を エ ク
ス ポ ー ト す る 必要が あ り ま す
1446
非 POD ク ラ ス 型が省略記号で渡 さ れ ま し た
1447
非 POD ク ラ ス 型は、 va_arg に よ っ て フ ェ ッ チ す る こ と は で き ま せ ん
C++ ISO 仕様では、 可変個引数関数の必須でない引数は POD
(plain-old-data) 型でなければな ら ない と 定義 さ れてい ます。 例えば、 構
造体や ク ラ ス では く 、 int や char 型であ る 必要があ り ます。
エ ラ ーや警告が生成 さ れない よ う にす る には、 代わ り に ク ラ スや構造体
のア ド レ ス を指定 し ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1448
固定小数点 リ テ ラ ル で は、 接尾文字 'u' ま た は 'U' の後に 'l' ま た は 'L' を 続け る必要が
あ り ます
1450
整数 オ ペ ラ ン ド を 使用す る と 、 固定小数点の オ ー バ ー フ ロ ー が発生す る可能性が あ り ま す
1451
固定小数点定数が範囲外で す
1452
固定小数点値は正確に表現で き ま せ ん
1453
定数が long long 型に対 し て大 き す ぎ ま す。 符号な し の long long 型が与え ら れ ま し た (非
標準)
1454
レ イ ア ウ ト 修飾子は shared void へ の ポ イ ン タ を 修飾で き ま せ ん
1456
強い using-directive は ネ ー ム ス ペ ー ス ス コ ー プ で の み表示 さ れ ま す
1457
<entity> は非 テ ン プ レ ー ト 関数 を 宣言 し ま す。 テ ン プ レ ー ト イ ン ス タ ン ス を 参照す る に は <>
を 追加 し て く だ さ い
1458
こ の操作 を 実行す る と 、 固定小数点の オ ー バ ー フ ロ ー が発生す る可能性が あ り ま す
1459
式は、 整数型、 列挙型、 ま た は固定小数点型で あ る 必要が あ り ま す
1460
式は、 整数型 ま た は固定小数点型で あ る必要が あ り ま す
1461
noreturn で宣言 さ れ た関数に戻 り 値が あ り ま す
1462
前の宣言 と 競合す る た め、 asm 名が無視 さ れ ま し た
1463
ク ラ ス メ ン バ typedef は、 再宣言 さ れ な い可能性が あ り ま す
1464
テ ン ポ ラ リ の ア ド レ ス を 取得 し て い ま す
1465
定義で な い ク ラ ス 宣言の属性は無視 さ れ ま し た
1466
固定小数点値が暗黙に浮動小数点型に変換 さ れ ま し た
1467
固定小数点型に は分類が あ り ま せ ん
1468
テ ン プ レ ー ト パ ラ メ ー タ を 固定小数点型に す る こ と は で き ま せ ん
1469
16 進数の浮動小数点定数は使用で き ま せ ん
1471
浮動小数点値が必要な固定小数点型に収 ま り ま せ ん
1472
値 を 固定小数点値に正確に変換で き ま せ ん
1473
固定小数点変換の結果、 符号が変更 さ れ ま し た
1474
整数値が必要な固定小数点型に収 ま り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-57
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1475
固定小数点演算の結果が範囲外で す
1481
固定小数点値が必要な浮動小数点型に収 ま り ま せ ん
1482
固定小数点値が必要な整数型に収 ま り ま せ ん
1483
値が必要な固定小数点型に収 ま り ま せ ん
1485
名前付 き レ ジ ス タ の記憶 ク ラ ス は こ こ で使用で き ま せ ん
1486
<entity> が、 互換性の な い名前付 き レ ジ ス タ の記憶 ク ラ ス で再宣言 さ れ ま し た
1487
エ イ リ ア ス の変数に対 し て名前付 き レ ジ ス タ の記憶 ク ラ ス は指定で き ま せ ん
1488
名前付 き レ ジ ス タ の記憶域指定子は既に使用中で す
1492
行 <entity> の定義済み マ ク ロ エ ン ト リ が無効で す : <reason>
1493
マ ク ロ モ ー ド 名 <entity> が無効で す
1494
定義済み マ ク ロ <entity> の再定義に互換性が あ り ま せ ん
1495
<entity> の再定義に、 名前付 き レ ジ ス タ の記憶 ク ラ ス が あ り ま せ ん
1496
名前付 き レ ジ ス タ が変数の型に対 し て小 さ す ぎ ま す
1497
名前付 き レ ジ ス タ の記憶 ク ラ ス で は配列 を 定義で き ま せ ん
1498
列挙型へ の const_cast は標準で は あ り ま せ ん
1500
__svc パ ラ メ ー タ <entity> が、 Thumb SVC 命令の許可 さ れ た範囲 (0 ~ 0xff) 外で す
1501
__svc ま た は __svc_indirect 関数の引数が多す ぎ ま す
1502
__svc ま た は __svc_indirect 関数の引数は整数型で あ る必要が あ り ま す
1503
__svc_indirect 関数に は引数が必要で す
1504
__svc_indirect 関数の第 1 引数は整数型で あ る必要が あ り ま す
1505
__svc ま た は __svc_indirect 関数の結果は整数 レ ジ ス タ で返す必要が あ り ま す
1506
ソ ー ス フ ァ イ ル <entity> の フ ォ ー マ ッ ト が不正で す
1507
<entity> フ ァ イ ル の書 き 込み中に エ ラ ー が発生 し ま し た : <reason>
1508
関数修飾子の み で識別 さ れ る 関数は多重定義で き ま せ ん
1509
関数修飾子 <entity> は仮想 メ ン バ関数に は使用で き ま せ ん
1510
オ ー バ ー ラ イ ド さ れ た仮想関数 <entity> の関数 "__attribute__((__<entity>__))" は、
オ ー バ ー ラ イ ド す る 関数内で も必要で す
1511
関数修飾子 <entity> は、 オ ー バ ー ラ イ ド さ れ た仮想関数 <entity> 内で同一で は あ り ま せ ん
1512
オ ー バ ー ラ イ ド さ れ た仮想関数 <entity> の関数修飾子 <entity> は、 オ ー バ ー ラ イ ド す る 関
数内で も必要で す
1514
境界が指定 さ れ て い な い配列で は、 空の イ ニ シ ャ ラ イ ザ は無効で す
1515
関数は不完全な ク ラ ス 型 <type> を 返 し ま す
1516
<entity> は既に初期化 さ れ て い ま す。 ク ラ ス 外の イ ニ シ ャ ラ イ ザ は無視 さ れ ま す
1517
宣言は <entity> を 非表示に し ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-58
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1519
固定 / 浮動小数点定数の接尾文字が無効で す
1522
<entity> に は対応す る メ ン バ演算子 delete<entity> (割 り 当て ら れ た オ ブ ジ ェ ク ト の初期化
中に例外が ス ロ ー さ れ た場合に呼び出 さ れ ま す) が あ り ま せ
1523
ス レ ッ ド ロ ー カ ル変数の宣言に は "dllimport" ま た は "dllexport" を 使用で き ま せ ん
1525
イ ニ シ ャ ラ イ ザ は、 フ レ キ シ ブ ル配列 メ ン バ の要素が自明で な い デ ス ト ラ ク タ で あ る 場合は指定で
き ません
1526
イ ニ シ ャ ラ イ ザ は、 間接的な フ レ キ シ ブ ル配列 メ ン バ に対 し て指定で き ま せ ん
1528
括弧で囲 ま れ た イ ニ シ ャ ラ イ ザ の後の変数の属性は無視 さ れ ま す
1529
こ の キ ャ ス ト の結果は左辺値 と し て使用で き ま せ ん
1530
符号な し の固定小数点値の否定
1531
こ の演算子 を こ こ で使用す る こ と は で き ま せ ん。 括弧 を 使用 し て く だ さ い
1532
フ レ キ シ ブ ル配列 メ ン バ の イ ニ シ ャ ラ イ ザ は定数で あ る必要が あ り ま す
1533
レ ジ ス タ 名は レ ジ ス タ 変数に対 し て の み使用で き ま す
1534
名前付 き レ ジ ス タ 変数 を void 型に す る こ と は で き ま せ ん
1535
こ の宣言で は __declspec 修飾子は無効で す
1536
パ ラ メ ー タ に リ ン ク ス コ ー プ の指定子は使用で き ま せ ん
1537
複数の リ ン ク ス コ ー プ 指定子
1538
リ ン ク ス コ ー プ 指定子は、 外部 リ ン ケ ー ジ が あ る関数 と 変数で の み表示 さ れ ま す
1539
再宣言に よ っ て リ ン ク ス コ ー プ を 弱め る こ と は で き ま せ ん
1540
リ ン ク ス コ ー プ の指定子は こ の宣言に は使用で き ま せ ん
1541
グ ロ ー バ ル ス コ ー プ 宣言に非標準の修飾名が あ り ま す
1542
64 ビ ッ ト の整数型が、 少な い ビ ッ ト 数の整数型に暗黙に変換 さ れ ま す (移植時に問題が発生す る
可能性が あ り ま す)
1543
64 ビ ッ ト の整数型が、 少な い ビ ッ ト 数の整数型に明示的に変換 さ れ ま す (移植時に問題が発生す
る可能性が あ り ま す)
1544
ポ イ ン タ が同 じ サ イ ズ の整数型に変換 さ れ ま す (移植時に問題が発生す る 可能性が あ り ま す)
1547
ス レ ッ ド ロ ー カ ル ス ト レ ー ジ を 使用で き る の は static ま た は extern 変数だ け で す
1548
複数の ス レ ッ ド ロ ー カ ル ス ト レ ー ジ指定子で す
1549
仮想 <entity> は定義 さ れ ま せ ん で し た (無名の ネ ー ム ス ペ ー ス の メ ン バ で あ る た め、 別の場所
で も 定義で き ま せ ん)
1550
ソ ー ス 行内の文字 / 文字列 リ テ ラ ル や コ メ ン ト の外部に キ ャ リ ッ ジ リ タ ー ン 文字が あ り ま す
1551
式は固定小数点型で あ る必要が あ り ま す
1552
無効な ア ク セ ス指定子は無視 さ れ ま す
1553
ポ イ ン タ が ブ ー ル型に変換 さ れ ま し た
1554
メ ン バ へ の ポ イ ン タ が ブ ー ル型に変換 さ れ ま し た
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-59
C および C++ コ ンパイ ラのエ ラ ーおよび警告
1555
記憶域指定子は無視 さ れ ま す
1556
dllexport と dllimport は、 ク ラ ス テ ン プ レ ー ト で は無視 さ れ ま す
1557
ベ ー ス ク ラ ス の dllexport/dllimport 指定が、 派生 ク ラ ス の dllexport/dllimport 指定
と 異な り ま す
1558
再宣言で は <entity> に dllexport/dllimport を 追加で き ま せ ん
こ の メ ッ セージが抑制 さ れてい る 場合の動作は、 dllexport ま たは
dllimport が省略 さ れた と き と 同様です。 以下に例を示 し ます。
void f(void);
__declspec(dllimport) void f(void) { } /* suppress treats as
void f(void) { } */
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1559
dllexport/dllimport が <entity> と 矛盾 し て い ま す。 dllexport が指定 さ れ て い る と 見
なし ます
1560
dllimport エ ン テ ィ テ ィ を 定義で き ま せ ん
1561
dllexport/dllimport で は外部 リ ン ケ ー ジ が必要で す
1562
dllexport/dllimport で宣言 さ れ て い る ク ラ ス の メ ン バ を 、 こ れ ら の指定子 を 付け て宣言す る
こ と はでき ません
1563
DLL イ ン タ フ ェ ー ス を 持つ ク ラ ス 内で、 DLL イ ン タ フ ェ ー ス を 持た な い ク ラ ス 型の フ ィ ー ル ド が
使用 さ れ て い ま す
1564
括弧囲み の メ ン バ宣言は規格外で す
1565
結合行内の バ ッ ク ス ラ ッ シ ュ と 改行間の ホ ワ イ ト ス ペ ー ス は無視 さ れ ま す
1566
dllexport/dllimport が <entity> と 矛盾 し て い ま す。 dllexport/dllimport を 削除 し
ます
1567
匿名 メ ン バ ク ラ ス の メ ン バ が無効で す -- ク ラ ス <type> に、 許可 さ れ て い な い メ ン バ関数が含
まれています
1568
規格外の reinterpret_cast
1569
位置 を 示す フ ォ ー マ ッ ト 指定子に は、 ゼ ロ を 指定で き ま せ ん
1570
ロ ー カ ル ク ラ ス で は、 関数内部の可変長配列 を 参照す る こ と は で き ま せ ん
1571
メ ン バ <entity> に は、 既に明示的な dllexport/dllimport 指定子が指定 さ れ て い ま す
1572
関数の戻 り 値は、 可変長配列型に は で き ま せ ん
1573
型 <type> の メ ン バ へ の ポ イ ン タ は、 可変長配列型に は で き ま せ ん
1574
ス テ ー ト メ ン ト 式の結果は、 可変長配列 を 含む型に は で き ま せ ん
1575
イ ン ラ イ ン ア セ ン ブ ラ で は、 変換 を 伴 う ロ ー ド / ス ト ア は使用で き ま せ ん。 組み込み ア セ ン ブ ラ ま
た は ア ウ ト オ ブ ラ イ ン ア セ ン ブ ラ を 使用 し て く さ い。
1576
イ ン ラ イ ン ア セ ン ブ ラ で は、 フ ラ グ設定乗算命令は使用で き ま せ ん。 組み込み ア セ ン ブ ラ ま た は ア
ウ ト オ ブ ラ イ ン ア セ ン ブ ラ を 使用 し て く だ さ い。
1577
イ ン ラ イ ン ア セ ン ブ ラ で は、 定数 オ ペ ラ ン ド を 含む フ ラ グ設定 MOV/MVN 命令は使用で き ま せ ん。
組み込み ア セ ン ブ ラ ま た は ア ウ ト オ ブ ラ イ ン ア セ ン ブ ラ を 使用 し て く だ さ い。
1578
asm 名は自動変数で は無視 さ れ ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-60
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1593
最適化で き ま せ ん : 符号な し イ ン デ ッ ク ス が使用 さ れ て い る た め に最適化で き ま せ ん
1594
最適化で き ま せ ん : 完全な最適化 を 行 う た め に は、 ル ー プ の パ ラ メ ー タ を 整数型に す る必要が あ り
ます
1604
最適化で き ま せ ん : こ の関数 を 参照 し て い る た め、 最適化で き ま せ ん
1613
最適化で き ま せ ん : 多重ス ト ア の競合
1617
最適化で き ま せ ん : ル ー プ が複雑す ぎ ま す
1621
最適化 : デ ッ ド コ ー ド を 削除 し ま し た
1624
最適化で き ま せ ん : 重複す る 条件が多す ぎ る た め、 効率的に変換で き ま せ ん
1629
最適化で き ま せ ん : 繰 り 返 し 回数が少な す ぎ て配列 を 最適化で き ま せ ん
1636
最適化で き ま せ ん : 変数の使用方法が複雑す ぎ ま す
1637
不明な プ ラ グ マ - 無視 し ま す
1638
ス カ ラ テ ン ポ ラ リ の最終値 を 判断で き ま せ ん
1639
可能で あ れ ば、 nolstval デ ィ レ ク テ ィ ブ を 使用 し て く だ さ い
1641
最適化で き ま せ ん : デ ー タ の依存関係が多す ぎ ま す
1656
プ ラ グ マ の構文に問題が あ り ま す
1661
最適化で き ま せ ん : 逆方向の転送は最適化で き ま せ ん
1662
最適化で き ま せ ん : 促進す る ス カ ラ の最終値が必要で す
1663
最適化で き ま せ ん : ル ー プ 外へ の分岐が あ る た め、 変換で き ま せ ん
1670
最適化 : if ル ー プ が for ル ー プ に変換 さ れ ま し た
1676
最適化で き ま せ ん : こ の ス テ ー ト メ ン ト が原因で、 ル ー プ を 最適化で き ま せ ん
1679
最適化 : ル ー プ が ベ ク タ 化 さ れ ま し た
1687
最適化で き ま せ ん : 縮小関数が抑制 さ れ ま し た - 結合変換が必要で す
1690
最適化で き ま せ ん : 明示的な ベ ク タ 演算に対す る サ ポ ー ト さ れ な い デ ー タ 型
1691
最適化 : ル ー プ が前の ル ー プ と 結合 さ れ ま し た
1714
最適化で き ま せ ん : 外側の ル ー プ で、 内側の ル ー プ の終了条件 を 指定 し て い ま す
1730
こ の ル ー プ で は イ ン デ ッ ク ス は使用 さ れ て い ま せ ん
1742
最適化で き ま せ ん : 配列要素の フ ィ ー ド バ ッ ク (等価比較 さ れ た配列)
1750
最適化 : ル ー プ が再度 ロ ー ル さ れ ま し た
1759
最適化で き ま せ ん : 非ユ ニ ッ ト ス ト ラ イ ド が原因で、 ベ ク タ 最適化で き ま せ ん
1771
最適化で き ま せ ん : volatile 項目が使用 さ れ て い る た め、 最適化で き ま せ ん
1801
最適化 : 関数が展開 さ れ ま し た
1824
最適化で き ま せ ん : 変換に見合 う だ け の ベ ク タ 演算が あ り ま せ ん
1885
最適化で き ま せ ん : ル ー プ 範囲が配列の次元 を 超え て い ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-61
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
1861
最適化で き ま せ ん : 配列に対 し て こ の格納処理 を 行 っ て い る た め、 外部の ル ー プ を 最適化で き ま せ
ん
1866
最適化で き ま せ ん : 非整数の添字が あ り ま す
1894
最適化 : 依存関係 を な く す た め に、 ル ー プ か ら 繰 り 返 し を 取 り 除 き ま し た
1896
最適化 : 論理節 を 単純化 し ま し た
1947
最適化で き ま せ ん : こ の デ ー タ 型 と 演算の組み合わ せ を 変換で き ま せ ん
1978
最適化で き ま せ ん : ユ ー ザ選択ル ー プ を 最適化で き ま せ ん
1979
最適化で き ま せ ん : こ の演算が原因で、 ル ー プ を 変換で き ま せ ん
1987
最適化 : ル ー プ が切 り 替え ら れ ま し た
1988
最適化 : 代替 コ ー ド が生成 さ れ ま す
1997
最適化 : 定数長の ル ー プ が ア ン ロ ー ル さ れ ま し た
2091
最適化 : ル ー プ が ア ン ロ ー ル さ れ ま し た
2168
最適化 : 外側の ル ー プ を 内側の ル ー プ の中に移動 し ま し た
2170
最適化 : 不変式 を 外側の ル ー プ の外に移動 し ま し た
2189
最適化 : ル ー プ を ア ン ロ ー ル お よ び ロ テ ー ト し ま し た
2190
最適化 : ル ー プ を ア ン ロ ー ル お よ び最適化 し ま し た
2191
最適化 : 負荷の一部 を ル ー プ の先頭に移動 し ま し た
2218
イ デ ィ オ ム が検出 さ れ、 最適化 さ れ ま し た
2300
最適化で き な い可能性 : あ る ル ー プ パ ス か ら 別の ル ー プ パ ス へ の ス カ ラ 値の フ ィ ー ド バ ッ ク 。 行
<entity> で競合。 ル ー プ イ ン デ ク ス は <entity> (<filename>、 <entity>)
2301
最適化で き な い可能性 : あ る ル ー プ パ ス か ら 別の ル ー プ パ ス へ の ス カ ラ 値の フ ィ ー ド バ ッ ク 。 行
<entity> で競合。 ル ー プ イ ン デ ク ス は <entity> (<filename>)
2302
最適化で き な い可能性 : あ る ル ー プ パ ス か ら 別の ル ー プ パ ス へ の ス カ ラ 値の フ ィ ー ド バ ッ ク 。 行
<entity> で競合。 (<entity>、 <filename>)
2303
最適化で き な い可能性 : あ る ル ー プ パ ス か ら 別の ル ー プ パ ス へ の ス カ ラ 値の フ ィ ー ド バ ッ ク 。 行
<entity> で競合。 (<entity>)
2304
最適化で き な い可能性 : ル ー プ の繰 り 返 し 間で多重 ス ト ア の競合の可能性が あ り ま す。 行
<entity> で競合。 ル ー プ イ ン デ ク ス は <entity> (<filename><entity>)
2305
最適化で き な い可能性 : ル ー プ の繰 り 返 し 間で多重 ス ト ア の競合の可能性が あ り ま す。 行
<entity> で競合。 ル ー プ イ ン デ ク ス は <entity> (<filename>
2306
最適化で き な い可能性 : ル ー プ の繰 り 返 し 間で多重 ス ト ア の競合の可能性が あ り ま す。 行
<entity> で競合。 (<entity>、 <filename>)
2307
最適化で き な い可能性 : ル ー プ の繰 り 返 し 間で多重 ス ト ア の競合の可能性が あ り ま す。 行
<entity> で競合。 (<entity>)
2308
最適化で き な い可能性 : ル ー プ の繰 り 返 し 間で フ ィ ー ド バ ッ ク の競合の可能性が あ り ま す。 行
<entity> で競合。 ル ー プ イ ン デ ク ス は <entity> (<filename>、 <entity>)
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-62
C および C++ コ ンパイ ラのエ ラ ーおよび警告
2309
最適化で き な い可能性 : ル ー プ の繰 り 返 し 間で フ ィ ー ド バ ッ ク の競合の可能性が あ り ま す。 行
<entity> で競合。 ル ー プ イ ン デ ク ス は <entity> (<filename>)
2310
最適化で き な い可能性 : ル ー プ の繰 り 返 し 間で フ ィ ー ド バ ッ ク の競合の可能性が あ り ま す。 行
<entity> で競合。 (<entity>、 <filename>)
2311
最適化で き な い可能性 : ル ー プ の繰 り 返 し 間で フ ィ ー ド バ ッ ク の競合の可能性が あ り ま す。 行
<entity> で競合。 (<entity>)
2312
最適化で き ま せ ん: ポ イ ン タ エ イ リ ア ス の可能性 - 可能で あ れ ば制限修飾子 を 使用 し て く だ さ い。
行 <entity> で競合。 ル ー プ イ ン デ ク ス は <entity> (<filename>、 <entity>)
2313
最適化で き ま せ ん: ポ イ ン タ エ イ リ ア ス の可能性 - 可能で あ れ ば制限修飾子 を 使用 し て く だ さ い。
行 <entity> で競合。 ル ー プ イ ン デ ク ス は <entity> (<filename>)
2314
最適化で き ま せ ん: ポ イ ン タ エ イ リ ア ス の可能性 - 可能で あ れ ば制限修飾子 を 使用 し て く だ さ い。
行 <entity> で競合。 (<entity>、 <filename>)
2315
最適化で き ま せ ん: ポ イ ン タ エ イ リ ア ス の可能性 - 可能で あ れ ば制限修飾子 を 使用 し て く だ さ い。
行 <entity> で競合。 (<entity>)
2351
ル ー プ の ネ ス ト が次の ネ ス ト と 結合 さ れ ま し た
2438
イ ン ラ イ ン で き ま せ ん : 式内で void 関数が使用 さ れ て い ま す
2439
イ ン ラ イ ン で き ま せ ん : 識別子の宣言で す
2442
イ ン ラ イ ン で き ま せ ん : 式か ら 関数 を 削除で き ま せ ん
2516
高 レ ベ ル の最適化が停止 し ま し た : ル ー チ ン 内に ア セ ン ブ リ コ ー ド が あ り ま す
2519
こ の ル ー プ の定数の繰 り 返 し 回数 を 特定で き ま せ ん
2524
対応す る #pragma push が な い #pragma pop
2525
対応す る #pragma pop が な い #pragma push
2529
式は、 <entity> ~ <entity> の範囲の整数定数で あ る必要が あ り ま す
2530
構造体 <entity> の末尾に パ デ ィ ン グ が追加 さ れ ま し た
コ ンパ イ ラ は、 struct の末尾ま たは複数の struct の間に追加 さ れたパデ ィ
ン グについて警告を生成す る こ と も で き ます。 こ の警告はデフ ォ ル ト で
オ フ にな っ てい ますが、 --diag_warning 2530 ま たは --remarks を使っ て、
表示 さ れ る よ う にす る こ と がで き ます。
以下に例を示 し ます。
typedef struct{
int x;
char y;
} A;
typedef struct {
int p;
int q;
} B;
次の よ う な メ ッ セージが表示 さ れます。
警告 : #2530-D : 構造体 'anonymous' の末尾に パ デ ィ ン グ が追加 さ れ ま し た
コ ンパ イ ラ は、 struct 内に挿入 さ れたパデ ィ ン グについて警告を生成す
る こ と も で き ます。 1301 を参照 し て下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-63
C および C++ コ ンパイ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
2531
無名の ネ ー ム ス ペ ー ス の メ ン バ に、 dllimport/dllexport が適用 さ れ ま し た
2533
<entity> 属性は、 外部 リ ン ケ ー ジ が あ る関数 と 変数で の み表示 さ れ ま す
2534
strict モ ー ド は、 グ ロ ー バ ル ネ ー ム ス ペ ー ス の エ イ リ ア ス と し て ネ ー ム ス ペ ー ス を 扱 う 方法 と は
互換性が あ り ま せ ん
2535
マ ク ロ 拡張 "<entity>" <entity> で
2537
マ ク ロ "<entity>" <entity><entity> の拡張で
2540
無効な シ ン ボ リ ッ ク オ ペ ラ ン ド 名 <entity>
2541
シ ン ボ リ ッ ク 一致制約は最初の 10 オ ペ ラ ン ド の い ず れ か を 参照す る 必要が あ り ま す
2544
ス レ ッ ド ロ ー カ ル変数は動的に初期化で き ま せ ん
2546
一部の列挙値 を 列挙型の ベ ー ス と な る 整数型で表現で き ま せ ん
2547
デ フ ォ ル ト 引数は friend ク ラ ス の テ ン プ レ ー ト 宣言で は使用で き ま せ ん
2548
複数の文字の文字 リ テ ラ ル (移植時に問題が発生す る 可能性が あ り ま す)
2549
ク ラ ス 、 構造体、 ま た は共用体型が期待 さ れ ま す
2550
offsetof の 2 番目の オ ペ ラ ン ド は フ ィ ー ル ド で な け れ ば な り ま せ ん
2551
offsetof の 2 番目の オ ペ ラ ン ド に ビ ッ ト フ ィ ー ル ド は使用で き ま せ ん
2552
offsetof は仮想ベ ー ス の メ ン バ に適用で き ま せ ん
2553
非 POD 型へ の offsetof の適用は標準で は あ り ま せ ん
2554
メ ン バ関数の friend 宣言で は、 デ フ ォ ル ト 引数は使用で き ま せ ん
2555
定義で は な い friend 宣言で は、 デ フ ォ ル ト 引数は使用で き ま せ ん
2556
デ フ ォ ル ト 引数 を 持つ friend と し て以前に宣言 さ れ て い る <entity> の再宣言は で き ま せ ん
2557
<type> の無効な修飾子 ( こ こ で派生 ク ラ ス は使用で き ま せ ん)
2558
ク ラ ス <type> の定義の無効な修飾子
2560
ワ イ ド 文字列 リ テ ラ ル は使用で き ま せ ん
2565
<entity> の テ ン プ レ ー ト 引数 リ ス ト は パ ラ メ ー タ リ ス ト と 一致 し て い な け れ ば な り ま せ ん
2566
不完全な ク ラ ス型は使用で き ま せ ん
2567
複素整数型は サ ポ ー ト さ れ て い ま せ ん
2570
<entity> が "deprecated (<entity>)" と 宣言 さ れ ま し た
2571
<entity> の無効な再定義
2574
<entity> の明示的な特殊化は、 初め て使用す る前に実行す る必要が あ り ま す (<entity>)
2575
sealed ク ラ ス は ベ ー ス ク ラ ス と し て使用で き ま せ ん
2576
ク ラ ス 修飾子が重複 し て い ま す
2577
メ ン バ関数に "abstract" と "sealed" の両方の修飾子 を 指定す る こ と は で き ま せ ん
2578
sealed メ ン バ は純粋仮想に で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-64
C および C++ コ ンパイ ラのエ ラ ーおよび警告
2579
非仮想関数は、 "abstract" ま た は "sealed" を 指定 し て宣言で き ま せ ん
2580
override 修飾子 を 使用 し て宣言 し た メ ン バ関数は、 ベ ー ス ク ラ ス の メ ン バ を オ ー バ ー ラ イ ド で き
ません
2581
sealed の <entity> を オ ー バ ー ラ イ ド で き ま せ ん
2582
<entity> が ク ラ ス 修飾子 "abstract" を 指定 し て宣言 さ れ ま し た
2662
認識 さ れ な い呼び出 し 規則 <entity>。 次の い ず れ か を 使用す る必要が あ り ま す :
2665
属性 <entity> は パ ラ メ ー タ 宣言で は使用で き ま せ ん
2666
列挙型の ベ ー ス と な る 型は ブ ー ル以外の整数型で あ る 必要が あ り ま す
2667
一部の列挙定数 を <type> で表現で き ま せ ん
2668
<entity> は現在の モ ー ド で は使用で き ま せ ん
2676
#pragma start_map_region は現在有効で す。 プ ラ グ マ は無視 さ れ ま す
2677
<entity> は デ ス ト ラ ク タ の名前に使用で き ま せ ん (型の名前が必要で す)
2678
非標準の空の ワ イ ド 文字 リ テ ラ ル が L'\\0' と し て処理 さ れ ま し た
2679
こ こ に "typename" を 指定す る こ と は で き ま せ ん
2680
non-placement 演算子 delete は、 仮想デ ス ト ラ ク タ を 持つ ク ラ ス で可視で あ る必要が あ り ま
す
2681
名前の リ ン ケ ー ジ が <entity> の前の宣言 と 競合 し て い ま す
2682
エ イ リ ア ス が エ イ リ ア ス エ ン テ ィ テ ィ の サ イ ク ル を 作成 し て い ま す
2683
添字は定数で な け れ ば な り ま せ ん
2684
特定の レ ジ ス タ に割 り 当て ら れ た ス タ テ ィ ッ ク な保存期間 を 持つ変数は、 イ ニ シ ャ ラ イ ザ を 使用 し
て宣言で き ま せ ん
2685
特定の レ ジ ス タ に割 り 当て ら れ る変数は POD 型に で き ま せ ん
2686
<entity> の定義済み の意味は破棄 さ れ ま し た
2687
宣言に よ っ て組み込み の <entity> が隠蔽 さ れ ま す
2688
宣言に よ っ て組み込み の <entity> が再定義 さ れ ま す
2689
こ こ で は ス タ テ ィ ッ ク メ ン バ関数 を 使用で き ま せ ん
2690
<entity> 属性は、 内部 リ ン ケ ー ジ が あ る関数 と 変数で の み表示 さ れ ま す
2813
IF 文の依存 し た文が空で す
こ の注釈は、 if 文に依存す る 文が含ま れず、 else 文が後に続かない こ と
を示 し ます。 例えば、
if (x <= 0); // こ こ で注釈 2813 が生成 さ れ る
{
foo(x);
}
こ の注釈は、 --diag_warning 2813 ま たは --remarks を使用 し て有効にで き
ます。 --remarks オプシ ョ ン を使用す る 場合、 --diag_suppress 2813 を使用
し て こ の注釈を非表示にで き ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-65
C および C++ コ ンパイ ラのエ ラ ーおよび警告
2815
while 文内の依存 し た文が空で す
こ の注釈は、 while 文に依存す る 文が含ま れない こ と を示 し ます。 例え
ば、
while (x != 0);
こ の注釈は、 --diag_warning 2815 ま たは --remarks を使用 し て有効にで き
ます。 --remarks オプシ ョ ン を使用す る 場合、 --diag_suppress 2815 を使用
し て こ の注釈を非表示にで き ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-66
C および C++ コ ンパイ ラのエ ラ ーおよび警告
2.4
古いス タ イルの armcc のエ ラ ーおよび警告 メ ッ セージの リ ス ト
以下の古い ス タ イ ルのエ ラ ーお よ び警告 メ ッ セージ も 、 引 き 続 き 生成 さ れます。
C3000E
SWI 番号 0x<num> が大 き す ぎ ま す
C3002W
不正な非境界整列 ロ ー ド ま た は ス ト ア ア ク セ ス で す - 代わ り に __packed を 使用 し て く だ さ い
C3008W
LDM/STM を 分割 し て も効果は あ り ま せ ん
ス イ ッ チ "--split_ldm" の使用が不適切です。 こ のオプシ ョ ンは、 キ ャ ッ
シ ュ 付 き シ ス テ ムや書 き 込みバ ッ フ ァ 付 き プ ロ セ ッ サには大 き な メ リ ッ
ト はあ り ません。
C3009E
サ ポ ー ト さ れ て い な い CPU <entity>
C3015E
対応が取れ て い な い プ ラ グ マ ポ ッ プ 。 無視 し ま す
#pragma push と #pragma pop は、 現在のプ ラ グマ状態を保存お よ び復元 し
ます。
ポ ッ プはプ ッ シ ュ と ペアにな っ てい る 必要があ り ます。 次の よ う な場合
に、 エ ラ ーが発生 し ます。
#pragma push
:
#pragma pop
:
#pragma pop
C3016W
不明な オ プ シ ョ ン '-<entity><entity>' : 無視 さ れ ま す
C3017W
<entity> は設定前に使用で き ま す
コ ンパ イ ラ のデー タ フ ロ ー分析機能は、 デフ ォ ル ト でオ ンにな っ てい ま
す。
注
デー タ フ ロ ー分析は、 -O0 で常に無効であ る こ と に注意 し て下 さ い。
コ ンパ イ ラ は、 デー タ フ ロ ー解析を最適化処理の一部 と し て実行 し ま
す。 こ の情報は、 例えば設定 さ れ る 前に使用 さ れ る 変数の よ う な、 コ ー
ド 内潜在的な問題を特定す る ために使用で き ます。 ただ し 、 こ れは最適
化の副産物の よ う な も のであ り 、 独立 し た機能ではあ り ません。 設定 さ
れ る 前の使用 を検出す る デー タ フ ロ ー分析は、 ハー ド ウ ェ アの レ ジ ス タ
の使用のみを解析 し ます。 つま り 、 プ ロ セ ッ サ レ ジ ス タ で保持 さ れ る 変
数のみが対象に り ます。 ス タ ッ ク に割 り 当て ら れ る (プ ロ セ ッ サ レ ジ ス
タ ではな く メ モ リ に格納 さ れ る ) 変数ま たは構造体は、 解析 さ れませ
ん。
コ ンパ イ ラ に よ っ て生成 さ れ る コ ー ド (お よ びレ ジ ス タ メ モ リ の使用方
法) は最適化の レベルに よ っ て異な る ので、 ど の レベルで コ ンパ イ ル さ
れ コ ー ド であ る かに応 じ て、 警告が表示 さ れ る 場合 と さ れない場合があ
り ます。 例えば、 -O2 の場合は表示 さ れ、 -O1 の場合は表示 さ れません。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-67
C および C++ コ ンパイ ラのエ ラ ーおよび警告
注
デー タ フ ロ ー分析は、 完全な機能を目的 と し てい る わけではあ り ませ
ん。 CnnnnW と い う 形式で コ ンパ イ ラ に よ っ て生成 さ れ る 警告は、 単な る
ガ イ ド と し て扱い、 問題のあ る コ ー ド を特定す る ための確実な情報 と は
考え ない よ う に し て下 さ い。 Lint な ど の専用ツールほ ど多 く の情報を コ
ンパ イ ラ が提供す る こ と はあ り ません。
C3018W
ゼ ロ に よ る除算 : <entity>
定数伝播に よ っ て、 除算ま たは剰余演算子の第 2 オペ ラ ン ド が 0 であ る
こ と が示 さ れてい ます。 実行が こ の式に到達す る と 、 エ ラ ーにな り ま
す。 コ ンパ イ ラ は、 定数 0 に よ る 除算の結果 と し て 0 を返 し ます。
C3038E
関数が大 き す ぎ る か複雑す ぎ て コ ン パ イ ル で き ま せ ん (0x<num>)
C3041U
'<entity>' 書 き 込み中の I/O エ ラ ー : <entity>
C3047U
エ ラ ー が多す ぎ ま す
C3048U
-g を コ ン パ イ ル中に ス ト ア 不足が発生 し ま し た。 割 り 当て サ イ ズ は <entity> で し た が シ ス テ
ム の サ イ ズ は <entity> で す。
C3049U
ス ト ア 不足で す。 割 り 当て サ イ ズ は <entity> で し た が シ ス テ ム の サ イ ズ は <entity> で す。
コ ンパ イ ラ に よ る ス ト レージ割 り 当て要求が失敗 し ま し た。 -g オプシ ョ
ンに よ っ て要求 さ れ る デバ ッ グ テーブルの コ ンパ イ ルには、 大量の メ モ
リ が必要にな り ます。 -g を指定せずに再 コ ンパ イ ルす る か、 プ ロ グ ラ ム
をい く つかに分割 し て再 コ ンパ イ ルす る と 、 問題を解決で き る 場合があ
り ます。
C3050U
コ ン パ イ ル が ア ボ ー ト さ れ ま し た。
C3051E
フ ァ イ ル '<entity>' に書 き 込め ま せ ん で し た : <entity>
C3052E
フ ァ イ ル '<entity>' を 読み出せ ま せ ん で し た : <entity>
C3055U
inferFileName で の内部 エ ラ ー
C3056E
不正な オ プ シ ョ ン '<s>'
C3057E
不正な オ プ シ ョ ン '<s1> <s2>'
C3064E
長す ぎ る フ ァ イ ル名 : <entity>
C3065E
入力 フ ァ イ ル '<entity>' の タ イ プ が不明で す
C3066E
こ の オ ブ ジ ェ ク ト に必要な コ ー ド ス ペ ー ス は、 こ の バ ー ジ ョ ン の コ ン パ イ ラ に は大 き す ぎ ま す
ソ ース フ ァ イ ルを い く つかに分割 し て下 さ い。
C3075E
出力用の <entity> を 開 く こ と が で き ま せ ん
C3078E
他の フ ァ イ ル と 結合 さ れ た stdin ('-')
C3079E
<entity> コ マ ン ド は機能 し ま せ ん
C3301W
設定 フ ァ イ ル は、 新 し い バ ー ジ ョ ン の コ ン パ イ ラ の フ ァ イ ル で あ る 可能性が あ り ま す
設定フ ァ イ ルが、 コ ンパ イ ラ に --arm_linux_config_file ス イ ッ チを使っ
て渡 さ れた XML フ ァ イ ルの う ちの 1 つです (--arm_linux_paths ま たは
GCC コ マ ン ド ラ イ ン変換を使用 し てい る 場合)。 以下に例を示 し ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-68
C および C++ コ ンパイ ラのエ ラ ーおよび警告
armcc --arm_linux_paths --arm_linux_config_file=arm_linux_config.xml
こ の警告は、 フ ァ イ ルが新 し い コ ンパ イ ラ 用の も のであ り 、 サポー ト さ
れていない機能が含ま れてい る 場合があ る こ と を意味 し てい ます。 非互
換性の問題を回避す る ために、 設定フ ァ イ ルを生成す る ために使っ た新
し いバージ ョ ンの コ ンパ イ ラ を使用す る か、 以前のバージ ョ ン の コ ンパ
イ ラ 使っ て設定フ ァ イ ルを再生成 し て下 さ い。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
C3302E
•
--arm_linux_config_file=path (3-20 ペ ー ジ)
•
--arm_linux_paths (3-24 ページ) .
コ ン フ ィ ギ ュ レ ー シ ョ ン フ ァ イ ル の バ ー ジ ョ ン 文字列が無効で す
こ の メ ッ セ ー ジ は、 ARM Linux 設定 フ ァ イ ル に 対す る 読み出 し ま た は
書 き 込み エ ラ ー を 意味 し て い ま す。
以下の手順 に 従い ま す。
1.
フ ァ イ ル の読み出 し お よ び書 き 込み が可能で あ る こ と と 、 有効な
パ ー ミ ッ シ ョ ン が あ る こ と を 確認 し ま す。
2.
--arm_linux_configure を 使 っ て 設定 フ ァ イ ル を 再生成 し て み ま す。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
C3303E
--arm_linux_configure (3-22 ペ ー ジ) .
コ ン フ ィ ギ ュ レ ー シ ョ ン フ ァ イ ル が指定 さ れ ま せ ん で し た
エ ラ ー C3302E の説明 を 参照 し て 下 さ い。
C3304E
設定 フ ァ イ ル <file> の読み出 し 中に I/O エ ラ ー が発生 し ま し た
エ ラ ー C3302E の説明を参照 し て下 さ い。
C3305E
設定 フ ァ イ ル <file> の書 き 込み中に I/O エ ラ ー が発生 し ま し た
エ ラ ー C3302E の説明を参照 し て下 さ い。
C3306E
設定 フ ァ イ ル <file> を 解析で き ま せ ん で し た
エ ラ ー C3302E の説明を参照 し て下 さ い。
C3307E
設定 フ ァ イ ル を 読み出せ ま せ ん
エ ラ ー C3302E の説明を参照 し て下 さ い。
C3308W
シ ス テ ム イ ン ク ル ー ド デ ィ レ ク ト リ が見つ か り ま せ ん
ARM Linux モー ド 、 --arm_linux、 --arm_linux_paths、 ま たは GCC コ マ ン
ド ラ イ ン変換を使用 し てい る 場合は、 ARMCCnINC 環境変数を
install_directory\include に設定 し ます。 こ れに よ り 、 コ ンパ イ ラ が
arm_linux ヘ ッ ダサブデ ィ レ ク ト リ を見つけ ら れ る よ う に し ます。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--arm_linux (3-18 ペ ー ジ)
•
--arm_linux_paths (3-24 ページ) .
『ARM® コ ンパ イ ラ ツールチ ェーンの概要』 の以下のセ ク シ ョ ン を参照 し
て下 さ い。
•
C3309E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
ツールチ ェーンの環境変数 (2-16 ページ) .
自動 コ ン フ ィ ギ ュ レ ー シ ョ ン に失敗 し ま し た - GCC が見つ か り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-69
C および C++ コ ンパイ ラのエ ラ ーおよび警告
こ のエ ラ ーは、 --arm_linux_configure を使っ て ツールが自動的に設定 さ れ
る よ う に し た も のの、 GCC が見つか ら なか っ た場合に生成 さ れます。
--configure_gcc=path_to_gcc コ マ ン ド ラ イ ン オプシ ョ ン を使っ て、 GCC 実
行可能フ ァ イ ル (arm-none-linux-gnueabi-gcc な ど) へのパ ス を指定 し て
下 さ い。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
C3310W
•
--arm_linux_configure (3-22 ペ ー ジ)
•
--configure_gcc=path (3-49 ページ) .
自動 コ ン フ ィ ギ ュ レ ー シ ョ ン は未完了で す - GCC か ら sysroot パ ス を 特定で き ま せ ん
ARM Linux コ ン フ ィ ギ ュ レ ー シ ョ ン 処理 に 使用 さ れ た GCC が有効な
sysroot パ ス を 提供 し ま せ ん で し た 。 --configure_sysroot=sysroot_path を
使 っ て パ ス を 設定 し て 下 さ い。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
C3311E
--configure_sysroot=path (3-52 ペ ー ジ) .
自動 コ ン フ ィ ギ ュ レ ー シ ョ ン に失敗 し ま し た - GLD が見つ か り ま せ ん
こ の エ ラ ー は、 --arm_linux_configure を 使 っ て ツ ー ル が自動的 に 設定 さ
れ る よ う に し た も の の、 GNU リ ン カ (ld) が見 つ か ら な か っ た 場合 に
生成 さ れ ま す。 --configure_gkd=path_to_gcc コ マ ン ド ラ イ ン オ プ シ ョ ン を
使 っ て 、 GNU ld 実行可能 フ ァ イ ル (arm-none-linux-gnueabi-ld な ど ) へ
の パ ス を 指定 し て 下 さ い。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
C3312E
•
--arm_linux_configure (3-22 ペ ー ジ)
•
--configure_gcc=path (3-49 ペ ー ジ) .
自動 コ ン フ ィ ギ ュ レ ー シ ョ ン に失敗 し ま し た - GCC を 実行で き ま せ ん で し た
こ の エ ラ ー は、 --arm_linux_configure を 使 っ て ARM Linux の自動 コ ン
フ ィ ギ ュ レ ー シ ョ ン を 使用 し た 場合 に 、 各 ツ ー ル (GCC ま た は GNU
ld) が実行で き な か っ た か、 起動 に 失敗 し た こ と を し て い ま す。 各 ツ ー
ル に 実行パ ー ミ ッ シ ョ ン が あ る こ と と 、 GNU ツ ー ル チ ェ ー ン イ ン ス
ト ー ル が正常 に 機能 し て い る こ と を 確認 し て 下 さ い。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
C3313E
--arm_linux_configure (3-22 ペ ー ジ) .
自動 コ ン フ ィ ギ ュ レ ー シ ョ ン に失敗 し ま し た - GLD を 実行で き ま せ ん で し た
エ ラ ー C3312E の説明 を 参照 し て 下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
C3314W
gcc コ マ ン ド ラ イ ン 変換 - 変換 を 伴わ な い オ プ シ ョ ン は無視 さ れ ま す : <option>
C3315W
gcc コ マ ン ド ラ イ ン 変換 - こ の コ マ ン ド の変換は完全に は サ ポ ー ト さ れ て い ま せ ん : <option>
C3316W
arm linux で は オ プ シ ョ ン は サ ポ ー ト さ れ て い ま せ ん : <option>
C3317W
変換 さ れ た cpu ま た は ア ー キ テ ク チ ャ オ プ シ ョ ン <option> が無効で す
C3318W
フ ァ イ ル <file> を 読み出せ ま せ ん
C3319W
フ ァ イ ル <file> の種類 を 認識で き ま せ ん - フ ァ イ ル は無視 さ れ ま す
C3320W
フ ァ イ ル <file> が見つ か り ま せ ん - フ ァ イ ル は無視 さ れ ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-70
C および C++ コ ンパイ ラのエ ラ ーおよび警告
C3321E
自動 コ ン フ ィ ギ ュ レ ー シ ョ ン に失敗 し ま し た - GCC か ら コ ン フ ィ ギ ュ レ ー シ ョ ン を 特定で き ま せ
んでし た
--arm_linux_configure を使っ て ARM Linux を自動的に設定す る 際に、 コ
ンパ イ ラ が コ ン フ ィ ギ ュ レーシ ョ ンの生成に必要な情報を GCC か ら 特
定で き ませんで し た。 --configure_sysroot で sysroot パ ス、
--configure_cpp_headers で GNU C++ ヘ ッ ダ フ ァ イ ルへのパ ス を設定す る
こ と に よ っ て、 手動で設定 し てみて下 さ い。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--arm_linux_configure (3-22 ペ ー ジ)
•
--configure_cpp_headers=path (3-45 ペ ー ジ)
•
--configure_sysroot=path (3-52 ページ) .
C3322W
GCC か ら ラ イ ブ ラ リ コ ン フ ィ ギ ュ レ ー シ ョ ン を 正確に特定で き ま せ ん で し た - コ ン フ ィ ギ ュ レ ー
シ ョ ン が不完全で あ る 可能性が あ り ま す
C3323E
自動 コ ン フ ィ ギ ュ レ ー シ ョ ン に失敗 し ま し た - GCC 内部仕様 コ ン フ ィ ギ ュ レ ー シ ョ ン レ ポ ー ト エ
ラ ー : <text>
C3324W
libstdc++ ヘ ッ ダ フ ァ イ ル の パ ス を 特定で き ま せ ん で し た - C++ コ ー ド が正 し く コ ン パ イ ル さ
れ る よ う に、 パ ス を 手動で指定 し て く だ さ い
libstdc++ ヘ ッ ダ フ ァ イ ル へ の パ ス が GCC か ら 特定で き ま せ ん で し
た 。 こ の パ ス を --configure_cpp_headers=path で指定 し て 下 さ い。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--configure_cpp_headers=path (3-45 ペ ー ジ) .
C3327W
ア プ リ ケ ー シ ョ ン の エ ン ト リ ポ イ ン ト の関数 を 特定で き ま せ ん - デ フ ォ ル ト で <value> を 使用
しています
C3328W
GNU リ ン カ か ら ラ イ ブ ラ リ の パ ス を 特定で き ま せ ん - デ フ ォ ル ト 設定の使用 を 試み て い ま す
C3329W
オ プ シ ョ ン に引数が あ り ま せ ん : <option>
C3330E
GCC の コ ン フ ィ ギ ュ レ ー シ ョ ン が無効で す
C3331W
ス ク リ プ ト フ ァ イ ル <file> は ス キ ャ ッ タ フ ァ イ ル と し て処理 さ れ ま す
C3332E
via フ ァ イ ル <file> の読み出 し 中に I/O エ ラ ー が発生 し ま し た
C3333E
via フ ァ イ ル <file> を 閉 じ る 際に I/O エ ラ ー が発生 し ま し た
C3334W
コ ン フ ィ ギ ュ レ ー シ ョ ン フ ァ イ ル の GCC バ ー ジ ョ ン が無効で す - デ フ ォ ル ト を 使用 し ま す
C3335E
コ ン フ ィ ギ ュ レ ー シ ョ ン フ ァ イ ル に GNU 実行可能 フ ァ イ ル へ の パ ス が記載 さ れ て い な い の で、 再
試行で き ま せ ん
GCC フ ォ ー ル バ ッ ク で指定 さ れ た ARM Linux コ ン フ ィ ギ ュ レ ー シ ョ
ン フ ァ イ ル に gcc へ の適切な パ ス が な い場合 に 表示 さ れ ま す。
『 コ ン パ イ ラ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
アプ リ ケーシ ョ ン を ビル ド する 場合の GCC フ ォールバ ッ ク の使用
(3-24 ペ ー ジ) .
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
C3336W
ARM DUI 0496GJ
ID 0 5 1 6 1 2
-Warmcc,--gcc_fallback (3-232 ペ ー ジ) .
コ ン パ イ ル に失敗 し ま し た - GNU ツ ー ル で再試行 し ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-71
C および C++ コ ンパイ ラのエ ラ ーおよび警告
armcc の コ ン パ イ ル に 失敗 し 、 GCC フ ォ ー ル バ ッ ク が指定 さ れ た 場合 に
表示 さ れ ま す。 そ の場合、 armcc は、 gcc を 実行 し て コ ン パ イ ル を 完了 し
ま す。
『 コ ン パ イ ラ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
アプ リ ケーシ ョ ン を ビル ド する 場合の GCC フ ォールバ ッ ク の使用
(3-24 ペ ー ジ) .
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
C3337E
-Warmcc,--gcc_fallback (3-232 ペ ー ジ) .
GNU ツ ー ル で の コ ン パ イ ル に も 失敗 し ま し た
gcc が GCC フ ォ ー ル バ ッ ク 中 に 失敗 し た 場合 に 表示 さ れ ま す。
『 コ ン パ イ ラ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
アプ リ ケーシ ョ ン を ビル ド する 場合の GCC フ ォールバ ッ ク の使用
(3-24 ペ ー ジ) .
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
C3338W
-Warmcc,--gcc_fallback (3-232 ペ ー ジ) .
GNU ツ ー ル で の コ ン パ イ ル に成功 し ま し た
GCC フ ォ ー ル バ ッ ク に 成功 し た と き に 表示 さ れ ま す。
『 コ ン パ イ ラ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
アプ リ ケーシ ョ ン を ビル ド する 場合の GCC フ ォールバ ッ ク の使用
(3-24 ペ ー ジ) .
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
C3339W
-Warmcc,--gcc_fallback (3-232 ペ ー ジ) .
あ い ま い な変換 モ ー ド オ プ シ ョ ン が指定 さ れ ま し た - <option> を 使用 し ま す
複数の変換モー ド オプシ ョ ン、 --translate_gcc、 --translate_g++、 お よ び
--translate_gld が指定 さ れ ま し た。 特定の変換モー ド を選択す る ために、
こ れ ら のオプシ ョ ン の う ちの 1 つだけ を指定す る 必要があ り ます。
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
C3340W
•
--translate_g++ (3-208 ペ ー ジ)
•
--translate_gcc (3-210 ペ ー ジ)
•
--translate_gld (3-212 ページ) .
ベ ク ト ル化 (-O3 で示唆) の ラ イ セ ン ス を 取得で き ま せ ん で し た - デ フ ォ ル ト で
-fno-tree-vectorize に な り ま す
GCC コ マ ン ド ラ イ ン 変換で は、 -O3 を 使用す る と ベ ク ト ル化 を 指定 し た
こ と に な り ま す。 た だ し 、 そ れ に は コ ン パ イ ラ の NEON ベ ク ト ル化機
能 を 使用す る ラ イ セ ン ス が必要 に な り ま す。 NEON ベ ク ト ル化 ラ イ セ ン
ス が利用で き な い場合、 コ ン パ イ ラ は警告 C3340W を 生成 し 、 ベ ク ト ル
化 を 無効 に し ま す。
『ARM コ ン パ イ ラ ツ ー ル チ ェ ー ン の概要』 の以下の セ ク シ ョ ン を 参照 し
て 下 さ い。
ツールチ ェーンの ラ イ セ ン ス さ れた機能 (2-12 ペ ー ジ) .
•
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
C3403E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
-Onum (3-165 ペ ー ジ) .
__alloca_state は定義 さ れ て い ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-72
C および C++ コ ンパイ ラのエ ラ ーおよび警告
C3419W
ダ イ ナ ミ ッ ク な ス タ ッ ク ア ラ イ メ ン ト の ベ ニ ア が <entity> に挿入 さ れ ま し た
こ の警告は、 __irq 関数を --cpu=Cortex-M3-rev0 で コ ンパ イ ル し て、 割 り
込みの開始時に ス タ ッ ク を 8 バ イ ト 境界で整列 さ せた場合に生成 さ れま
す。
C3421W
文字列 リ テ ラ ル へ の書 き 込み
リ テ ラ ル文字列を指す よ う に割 り 当て ら れたポ イ ン タ に よ る 書 き 込みが
あ り ます。 ANSI 標準では、 こ の動作は定義 さ れてい ません。 書 き 込まれ
た場所か ら のその後の読み出 し には、 書 き 込みが反映 さ れていない可能
性があ り ます。
C3435E
<entity> へ の参照は許可 さ れ て い ま せ ん
C3447E
オ プ シ ョ ン '-E' と 入力 フ ァ イ ル '<filename>' の タ イ プ が矛盾 し て い ま す
C3484E
最上位 レ ベ ル の配列引数の最小値は 1、 2、 4、 ま た は 8 に す る必要が あ り ま す
C3486W
オ プ シ ョ ン '-<optionchar>' を 指定す る と 、 入力 フ ァ イ ル '<filename>' は無視 さ れ ま す
C3487E
変数 '<var>' か ら の読み出 し で、 オ フ セ ッ ト が範囲外で す
以下に例を示 し ます。
void foo(void) {
unsigned int pntr;
pntr = (unsigned int)&pntr;
pntr -= 4;
pntr = *(unsigned int*)pntr;
}
C3488E
変数 '<var>' へ の書 き 込み で、 オ フ セ ッ ト が範囲外で す
C3489E
__vfp_status() 組み込み関数は、 VFP を 備え て い な い タ ー ゲ ッ ト で は使用で き ま せ ん
C3490W
フ ァ イ ル拡張子に よ り 命令セ ッ ト を 切 り 替え る機能は、 今後使用で き な く な り ま す
C3493E
関数の ア ラ イ メ ン ト は、 1 よ り 大 き く 、 2 の累乗で あ る 必要が あ り ま す
C3494E
無効な グ ロ ー バ ル レ ジ ス タ 番号 <num> で す。 使用で き る の は 1 ~ <num> で す
C3497E
保持制約の構文が無効で す : <text>
C3498E
オ プ シ ョ ン が arm linux の タ ー ゲ ッ ト 設定 オ プ シ ョ ン と 競合 し て い ま す : <option>
ARM Linux を タ ーゲ ッ ト に し てい る 場合は、 い く つかのオプシ ョ ン を使
用す る 必要があ り ます (例えば、 正 し い ABI バ リ ア ン ト オプシ ョ ン の選
択な ど。 こ の メ ッ セージは、 互換性のないオプシ ョ ンが指定 さ れた こ と
を示すために生成 さ れます。
『 コ ンパ イ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
--arm_linux (3-18 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
2-73
第3章
アセ ン ブ ラのエ ラ ーおよび警告
以下の ト ピ ッ ク には、 アセ ン ブ ラ (armasm) のエ ラ ーお よ び警告 メ ッ セージの リ ス ト が
あ り ます。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
armasm のエ ラ ーお よ び警告 メ ッ セージの リ ス ト (3-2 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-1
アセ ン ブ ラのエ ラ ーおよび警告
3.1
armasm のエ ラ ーおよび警告 メ ッ セージの リ ス ト
armasm のエ ラ ーお よ び警告 メ ッ セージは、 次の と お り です。
A1017E
:INDEX: PC 相対式で は使用で き ま せ ん
:INDEX: 式演算子が、 PC 相対式 (通常はプ ロ グ ラ ム ラ ベル) に適用 さ れ
ま し た。 :INDEX: は、 レ ジ ス タ 相対式での、 ベース レ ジ ス タ か ら のオ フ
セ ッ ト を返 し ます。
<areaname> と い う エ リ ア内の <label> と い う ラ ベルのオ フ セ ッ ト を取得す
る 場合は、 <label> - <areaname> と い う 形式で指定 し ます。
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
A1020E
単項演算子 (8-21 ページ) .
不正な事前定義 : <directive>
--predefine (-pd) コ マ ン ド ラ イ ン オプシ ョ ンのオペ ラ ン ド が認識 さ れま
せんで し た。 デ ィ レ ク テ ィ ブは、 スペース を含んでい る 場合は引用符で
囲む必要があ り ます。 例えば、 Windows では次の よ う に し ます。
--predefine "versionnum SETA 5"
SETS デ ィ レ ク テ ィ ブ を使用す る 場合は、 デ ィ レ ク テ ィ ブの引数 も 引用
符で囲む必要があ り ます。 引用符は、 オペレーテ ィ ン グ シ ス テ ムお よ び
シ ェ に応 じ てエ ス ケープ し なければな り ません。 以下に例を示 し ます。
--predefine "versionstr SETS \"5A\""
A1021U
入力 フ ァ イ ル が あ り ま せ ん
コ マ ン ド ラ イ ン で、 入力フ ァ イ ルが指定 さ れませんで し た。 原因 と し て
は、 引数を囲む引用符の う ち、 終了側の引用符がなか っ た こ と が考え ら
れます。
A1023E
フ ァ イ ル "<filename>" を 開け ま せ ん で し た : <reason>
A1024E
フ ァ イ ル "<filename>" を ロ ー ド で き ま せ ん で し た : <reason>
A1042E
認識 さ れ な い APCS 修飾子 '<qualifier>'
--apcs コ マ ン ド ラ イ ン オプシ ョ ンに指定 さ れた引数にエ ラ ーがあ り ま
す。 <qualifier> の スペルを確認 し て下 さ い。
A1051E
--depend フ ァ イ ル '<filename>' を 開け ま せ ん : <reason>
A1055E
--errors フ ァ イ ル '<filename>' を 開け ま せ ん : <reason>
A1056E
タ ー ゲ ッ ト の cpu '<cpu>' が認識 さ れ ま せ ん
--cpu コ マ ン ド ラ イ ン オプシ ョ ン で指定 さ れた名前が、 認識 さ れてい る
プ ロ セ ッ サ名ではあ り ません。 引数の スペルを確認 し て下 さ い。
サポー ト さ れてい る プ ロ セ ッ サお よ びアーキ テ ク チ ャ の リ ス ト を表示す
る には、 --cpu=list を使用 し ます。
A1067E
出力 フ ァ イ ル が '<filename1>' と し て指定 さ れ ま し た が、 既に '<filename2>' と し て指定
されています
コ マ ン ド ラ イ ン で、 複数の出力フ ァ イ ル (-o filename) が指定 さ れま し
た。 コ マ ン ド ラ イ ン オプシ ョ ンの スペルの間違いが原因であ る 可能性が
あ り ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-2
アセ ン ブ ラのエ ラ ーおよび警告
A1071E
リ ス ト フ ァ イ ル '<filename>' を 開け ま せ ん : <reason>
--list <filename> コ マ ン ド ラ イ ン オプシ ョ ン で指定 さ れた フ ァ イ ルが開
け ませんで し た。 原因 と し ては、 指定 さ れた名前が無効であ る こ と 、 領
域が不足 し てい る と 、 同名の読み取 り 専用フ ァ イ ルが既に存在 し てい る
こ と 、 フ ァ イ ルが他のプ ロ セ ス で使用 さ れてい る こ と な ど が考え ら れま
す。 フ ァ イ ルのパが正 し く 指定 さ れてい る こ と を確認 し て下 さ い。
A1072E
リ ス ト フ ァ イ ル '<filename>' と し て .s フ ァ イ ル ま た は .o フ ァ イ ル を 指定す る こ と は で き
ません
--list コ マ ン ド ラ イ ン オプシ ョ ンの filename 引数が、 ソ ース フ ァ イ ル ま
たはオブジ ェ ク ト フ ァ イ ルであ る こ と を示す拡張子を持っ てい ます。 原
因 と し て、 コ マ ン ド ラ イ ン で filename 引数を指定 し 忘れた こ と が考え ら
れます。 --list コ マ ン ド ラ イ ン オプシ ョ ンに正 し い引数が指定 さ れてい
る こ と を確認 し て下 さ い。
A1073E
出力 フ ァ イ ル '<filename>' と し て ソ ー ス フ ァ イ ル を 指定す る こ と は で き ま せ ん
コ マ ン ド ラ イ ン で指定 さ れたオブジ ェ ク ト フ ァ イ ルが、 ソ ース フ ァ イ ル
であ る こ と を示すフ ァ イ ル名拡張子を持っ てい ます。 原因 と し ては、 コ
マ ン ド ラ イ ン でオブジ ェ ク ト フ ァ イ ル名を指定 し 忘れた こ と が考え ら れ
ます。
A1074E
依存 フ ァ イ ル '<filename>' と し て ソ ー ス フ ァ イ ル を 指定す る こ と は で き ま せ ん
--depend コ マ ン ド ラ イ ン オプシ ョ ンの filename 引数が、 ソ ース フ ァ イ ル
であ る こ と を示す拡張子 (.s) を持っ てい ます。 原因 と し ては、 コ マ ン
ド ラ イ ン で filename 引数を指定 し 忘れた こ と が考え ら れ ます。 正 し い引
数が指定 さ れてい る こ と を確認て下 さ い。
A1075E
エ ラ ー フ ァ イ ル '<filename>' と し て ソ ー ス フ ァ イ ル を 指定す る こ と は で き ま せ ん
--errors コ マ ン ド ラ イ ン オプシ ョ ンの filename 引数が、 ソ ース フ ァ イ ル
であ る こ と を示す拡張子 (.s) を持っ てい ます。 原因 と し ては、 コ マ ン
ド ラ イ ン で filename 引数を指定 し 忘れた こ と が考え ら れ ます。 正 し い引
数が指定 さ れてい る こ と を確認て下 さ い。
A1085W
強制ユ ー ザ モ ー ド LDM/STM の後に バ ン ク 付 き の R8-R14 を 使用す る こ と は で き ま せ ん
ARM アーキ テ ク チ ャ では、 USER レ ジ ス タ LDM ま たは STM に続 く 命
令でバン ク レ ジ ス タ にア ク セ スす る こ と はで き ません。 『ARM アーキ テ
ク チ ャ リ フ ァ ン ス マニ ュ アル』 には、 こ の形式の LDM の後に、 バン ク
レ ジ ス タ にア ク セ スす る 命令を指定す る こ と はで き ない と 記載 さ れてい
ます。 後に NOP を定す る と 、 こ の問題に確実に対処で き ます。
例:
stmib sp, {r0-r14}^ ; a1 の フ レ ー ム へ の ポ イ ン タ を 返 し ま す。
mov r0, sp
変更後 :
stmib sp, {r0-r14}^ ; a1 の フ レ ー ム へ の ポ イ ン タ を 返 し ま す。
nop
mov r0, sp
A1088W
エ リ ア AREA の宣言が正 し く あ り ま せ ん |$$$$$$$|
こ の問題は、 AREA が指定 さ れていない場合に発生 し ます (A1105E 参
照)。
A1099E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
構造体 ス タ ッ ク が最大 ス タ ッ ク サ イ ズ <max> を オ ー バ ー フ ロ ー し て い ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-3
アセ ン ブ ラのエ ラ ーおよび警告
A1100E
構造体 ス タ ッ ク が ア ン ダ ー フ ロ ー し て い ま す
A1105E
Area デ ィ レ ク テ ィ ブ が あ り ま せ ん
こ の問題は、 AREA が指定 さ れていない場合に発生 し ます (A1088W も 参
照)。
A1106E
コ ン マがあ り ません
A1107E
不正な シ ン ボ ル型。 ラ ベ ル が期待 さ れ ま す。
A1108E
シ ン ボ ル '<name>' が複数回定義 さ れ て い ま す
A1109E
不正な式の型
A1110E
定数式が期待 さ れ ま す
例えば SETA の後には、 定数式を指定す る 必要があ り ます。
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
数値式 (8-16 ページ) .
A1111E
定数式 ま た は ア ド レ ス 式が期待 さ れ ま す
A1112E
ア ド レ ス式が期待 さ れ ま す
A1113E
ス ト リ ン グ式が期待 さ れ ま す
例えば SETS の後には、 ス ト リ ン グ式を指定す る 必要があ り ます。
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
文字列式 (8-14 ページ) .
A1114E
レ ジ ス タ 相対式が期待 さ れ ま す
A1116E
ス ト リ ン グ の オ ペ ラ ン ド は DCB に対 し て の み指定で き ま す
A1117E
レ ジ ス タ シ ン ボ ル '<name>' は既に定義 さ れ て い ま す
A1118E
現在の マ ク ロ 拡張が あ り ま せ ん
A1119E
条件内で は MEND を 使用で き ま せ ん
MEND は "END of Macro" の意味であ り 、 英語の単語 "mend" ではあ り ませ
ん。
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
マ ク ロ の使用 (5-34 ページ) .
A1120E
不正な グ ロ ー バ ル名
A1121E
グ ロ ー バ ル名 '<name>' は既に存在 し て い ま す
A1122E
ロ ー カ ル変数は、 マ ク ロ 外で は使用で き ま せ ん
A1123E
不正な ロ ー カ ル名
A1125E
グ ロ ー バ ル / ロ ー カ ル シ ン ボ ル '<name>' の型が不明 ま た は間違 っ て い ま す
A1126E
不正な ア ラ イ メ ン ト 境界で す。 2 の倍数に す る 必要が あ り ま す
A1127E
不正な IMPORT/EXTERN 名
A1128E
共通名 '<sym>' は既に存在 し て い ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-4
アセ ン ブ ラのエ ラ ーおよび警告
A1129E
イ ン ポ ー ト さ れ た名前 '<sym>' は既に存在 し て い ま す
A1130E
エ ク ス ポ ー ト さ れ た名前が不正で す
A1131E
エ ク ス ポ ー ト さ れ た シ ン ボ ル '<sym>' の シ ン ボ ル型が不正で す
A1132E
REQUIRE デ ィ レ ク テ ィ ブ は <entity> 形式の出力で は サ ポ ー ト さ れ て い ま せ ん
A1133E
必須の シ ン ボ ル名が不正で す
A1134E
必須の シ ン ボ ル型が不正で す。 シ ン ボ ル が外部 ま た は ラ ベ ル で、 か つ シ ン ボ ル が再配置可能お よ び
絶対で あ る こ と が期待 さ れ ま す。
A1135E
エ リ ア 名が あ り ま せ ん
アルフ ァ ベ ッ ト 以外の文字で始ま る AREA 名は縦棒で囲む必要があ り ま
す。 例えば、 次の よ う な名前の場合、
AREA 1_DataArea, CODE, READONLY
次の よ う に変更 し ます。
AREA |1_DataArea|, CODE, READONLY
A1136E
エ ン ト リ ア ド レ ス は既に設定 さ れ て い ま す
A1137E
行の終わ り に予期 し な い文字が あ り ま す
こ の問題は、 命令の行に、 命令の一部ではない余分な文字が発見 さ れた
場合に発生 し ます。
以下に例を示 し ます。
ADD r0, r0, r1 comment
こ れを次の よ う に変更 し ます。
ADD r0, r0, r1 ; comment
A1138E
ス ト リ ン グ "<string>" は操作に対 し て短す ぎ ま す。 長 さ は <oplength> よ り 大 き く す る必要
が あ り ま す。
A1139E
ス ト リ ン グ が オ ー バ ー フ ロ ー し て い ま す。 ス ト リ ン グ が <max> 文字 を 超え て い ま す。
A1140E
不正な オ ペ ラ ン ド 型
A1141E
再配置 さ れ た式の み を 加算 ま た は減算で き ま す
A1142E
減算に よ る再配置は <entity> 形式の出力で は サ ポ ー ト さ れ て い ま せ ん
こ の問題は、 次の よ う に、 減算シ ン ボルが別のエ リ アにあ る 場合に発生
し ます。
IMPORT sym1
IMPORT sym2
DCD (sym2 - sym1)
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1143E
COMMON デ ィ レ ク テ ィ ブ は %s 形式の出力で は サ ポ ー ト さ れ て い ま せ ん
A1144E
DCDO デ ィ レ ク テ ィ ブ は %s 形式の出力で は サ ポ ー ト さ れ て い ま せ ん
A1145E
エ ク ス ポ ー ト さ れ た シ ン ボ ル '<sym>' は定義 さ れ て い ま せ ん
A1146E
出力 フ ァ イ ル <codeFileName> を 開け ま せ ん : <reason>
A1147E
不正な シ フ ト 名
A1148E
不明な シ フ ト 名 <name>。 LSL、 LSR、 ASR、 ROR、 RRX の い ず れ か が期待 さ れ ま す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-5
アセ ン ブ ラのエ ラ ーおよび警告
A1150E
不正な シ ン ボ ル。 定義 さ れ て い な い か、 外部で す。
こ の問題は、 通常、 以下の場合に発生 し ます。
•
現在の フ ァ イ ルが、 い く つかのシ ン ボルを定義す る ために、 他の
フ ァ イ ルの INCLUDE を必要 と す る 場合。 以下に例を示 し ます。
"init.s", line 2 : エ ラ ー : A1150E : 不正な シ ン ボ ル
2 00000000 DCD EBI_CSR_0
通常は、 以下の よ う に、 定義フ ァ イ ルを イ ン ク ルー ド す る 必要が
あ り ます。
INCLUDE targets/eb40.inc
•
現在の フ ァ イ ルが、 い く つかのシ ン ボルのために、 IMPORT を必要 と
す る 場合。 以下に例を示 し ます。
"init.s", line 4 : エ ラ ー : A1150E : 不正な シ ン ボ ル
4 00000000 LDR r0, =||Image$$RAM$$ZI$$Limit||
通常は、 以下の よ う に、 シ ン ボルを イ ン ポー ト す る 必要があ り ま
す。
IMPORT ||Image$$RAM$$ZI$$Limit||
A1151E
不正な レ ジ ス タ 名シ ン ボ ル
例:
MCR p14, 3, R0, Cr1, Cr2
コ プ ロ セ ッ サ レ ジ ス タ CR は、 ビル ド の コ ー ド では小文字 (c) で ラ ベル
付けす る 必要があ り ます。 ARM レ ジ ス タ は、 以下の よ う に、 r で も R で
も か ま い ません。
MCR p14, 3, r0, c1, c2
ま たは
MCR p14, 3, R0, c1, c2
A1152E
予期 し な い演算子
A1153E
未定義の シ ン ボ ル
A1154E
予期 し な い オ ペ ラ ン ド 。 演算子が期待 さ れ ま す。
A1155E
<operator> と 等 し い予期 し な い単項演算子
A1156E
開 き 括弧が あ り ま せ ん
A1157E
デ ィ レ ク テ ィ ブ の後に構文 エ ラ ー が あ り ま す
A1158E
行の先頭が不正で す。 先頭は空白に す る必要が あ り ま す。
一部のデ ィ レ ク テ ィ ブ (ENTRY、 IMPORT、 EXPORT、 GET な ど) は、 行の先頭
に ラ ベルがない行で し か使え ません。 ラ ベルが存在す る 場合は、 こ のエ
ラ ーが発生 し ます。
A1159E
行の先頭に ラ ベ ル が あ り ま せ ん
一部のデ ィ レ ク テ ィ ブ (FUNCTION、 SETS な ど) は、 行の先頭に ラ ベルが
必要です。 以下に例を示 し ます。
my_func FUNCTION
ま たは
label SETS
ラ ベルが存在 し ない場合は、 こ のエ ラ ーが発生 し ます。
A1160E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
不正な ロ ー カ ル ラ ベ ル番号
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-6
アセ ン ブ ラのエ ラ ーおよび警告
ロ ーカル ラ ベルは範囲 0 ~ 99 の数値で、 その後に名前を付け る こ と も
で き ます。
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ロ ーカル ラ ベル (8-12 ページ) .
A1161E
ロ ー カ ル ラ ベ ル定義の後に構文 エ ラ ー が あ り ま す
A1162E
不正な ル ー チ ン 名 '<name>'
A1163E
不明な オ ペ コ ー ド <name> で す。 オ ペ コ ー ド ま た は マ ク ロ が期待 さ れ ま す。
こ の最 も 一般的な原因は、 以下の と お り です。
•
命令の前の左余白にい く つかのホ ワ イ ト スペース を入れ る の を忘
れてい る 。 例えば、 次の命令は、
MOV PC,LR
次の よ う に変更 し ます。
MOV PC,LR
•
--fpu ス イ ッ チ を使わずに、 ハー ド ウ ェ ア浮動小数点命令を使用 し て
い る 。 例えば、
FMXR FPEXC, r1 ;
は、 armasm --fpu vfp でアセ ンブルす る 必要があ り ます。
•
オペ コ ー ド の入力を間違え た。 例えば、
ADDD
は、 次の よ う に修正 し ます。
ADD
A1164E
オ ペ コ ー ド は選択 さ れ た プ ロ セ ッ サ で は サ ポ ー ト さ れ て い ま せ ん
armasm コ マ ン ド ラ イ ン で選択 さ れたプ ロ セ ッ サでは、 こ の命令はサポー
ト さ れてい ません。 『ARM アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 ,
http://infocenter.arm.com/help/topic/com.arm.doc.subset.architecture.refer
ence/index.html#reference を参照 し て下 さ い。
A1165E
実際の パ ラ メ ー タ が多す ぎ ま す。 <actual> パ ラ メ ー タ が期待 さ れ ま す。
A1166E
ラ ベ ル の後に構文 エ ラ ー が あ り ま す
A1167E
行の先頭が無効で す
A1168E
プ レ イ ン デ ク ス形式で は変換で き ま せ ん
A1169E
閉 じ 角括弧が あ り ま せ ん
A1170E
イ ミ デ ィ エ ー ト 0x<adr> が こ の操作の範囲外で す。 (0x<adr>) 未満で あ る必要が あ り ま す。
こ のエ ラ ーは、 DCB、 DCW、 ま たは DCWU デ ィ レ ク テ ィ ブ を大 き すぎ る イ ミ
デ ィ エー ト と 共に使用 し た場合に発生 し ます。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
•
DCB (6-25 ページ)
•
DCW、 DCWU (6-33 ページ) .
A1171E
閉 じ 括弧が あ り ま せ ん
A1172E
不正な ロ ー テ ー タ <rotator> で す。 ロ ー テ ー タ は偶数か つ 0 以上 30 以下で あ る 必要が あ り
ま す。
A1173E
ADR/L は外部シ ン ボ ル で は使用で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-7
アセ ン ブ ラのエ ラ ーおよび警告
ADR お よ び ADRL 疑似命令は、 同 じ コ ー ド エ リ ア内の ラ ベル と 共に使
う 場合のみ使用で き ます。 レ ジ ス タ にエ リ ア外のア ド レ ス を ロ ー ド す る
には、 わ り に LDR を使用 し て下 さ い。
A1174E
デ ー タ 転送 オ フ セ ッ ト 0x<val> が範囲外で す。 許可 さ れ て い る値は 0x<mini> ~ 0x<maxi>
で す。
A1175E
不正な レ ジ ス タ 範囲
A1176E
分岐の オ フ セ ッ ト 0x<val> が範囲外で す。 許可 さ れ て い る 値は 0x<mini> ~ 0x<maxi> で
す。
分岐は PC 相対で、 範囲の制限があ り ます。 " ロ ーカル ラ ベル " を使用 し
てい る 場合は、 ROUT デ ィ レ ク テ ィ ブ を使っ て ロ ーカル ラ ベルの有効範
囲を制限 し 、 誤っ て違 う ラ ベルが参照 さ れない よ う にす る こ と がで き ま
す。
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ロ ーカル ラ ベル (8-12 ページ) .
A1179E
不正な 16 進数
A1180E
閉 じ 引用符が あ り ま せ ん
A1181E
不正な演算子
A1182E
ベ ー ス と な る <base> 数が不正で す
A1183E
数値 オ ー バ ー フ ロ ー
A1184E
外部シ ン ボ ル は式内で は有効で は あ り ま せ ん
A1185E
シンボルがあ り ません
A1186E
デ ー タ エ リ ア 内で生成 さ れ た コ ー ド
命令がデー タ エ リ ア内にアセ ンブル さ れ ま し た。 こ の問題は、 AREA デ ィ
レ ク テ ィ ブで CODE 属性を省略 し た場合に発生す る こ と があ り ます。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
AREA (6-73 ページ) .
A1187E
マ ク ロ のパ ラ メ ー タ に エ ラ ーがあ り ます
A1188E
レ ジ ス タ 値 <val> は範囲外で す。 許可 さ れ て い る 値は <mini> ~ <maxi> で す。
A1189E
'#' が あ り ま せ ん
A1190E
予期 し な い '<entity>'
A1191E
浮動小数点 レ ジ ス タ 番号が範囲 (0 ~ <maxi>) を 超え て い ま す
A1192E
コ プ ロ セ ッ サ レ ジ ス タ 番号が範囲 (0 ~ 15) を 超え て い ま す
A1193E
コ プ ロ セ ッ サ番号が範囲 (0 ~ 15) を 超え て い ま す
A1194E
不正な浮動小数点数
A1195W
小 さ な浮動小数点値は 0.0 に変換 さ れ ま す
A1196E
浮動小数点数 を 禁止す る に は遅す ぎ ま す
A1198E
不明な オ ペ ラ ン ド
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-8
アセ ン ブ ラのエ ラ ーおよび警告
こ の問題は、 オペ ラ ン ド が誤っ て入力 さ れた場合に発生 し ます。
以下に例を示 し ます。
armasm init.s -g -PD "ROM_RAM_REMAP SETL {FALS}"
こ れは、 以下の よ う にす る 必要があ り ます。
armasm init.s -g -PD "ROM_RAM_REMAP SETL {FALSE}"
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
アセ ンブ リ 時の変数代入 (8-6 ページ) .
A1199E
コ プ ロ セ ッ サ命令が範囲 (0 ~ <maxi>) を 超え て い ま す
A1200E
構造体が一致 し ま せ ん。 While/Wend が期待 さ れ ま す。
A1201E
代入 さ れ た行が長す ぎ ま す。 最大長は <max> で す。
A1202E
代入 さ れ た シ ン ボ ル '<name>' の宣言が あ り ま せ ん
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
アセ ンブ リ 時の変数代入 (8-6 ページ) .
A1203E
マ ク ロ プ ロ ト タ イ プ の ラ ベ ル パ ラ メ ー タ の先頭が不正で す
A1204E
不正な マ ク ロ パ ラ メ ー タ の デ フ ォ ル ト 値
A1205E
レ ジ ス タ <reg> が リ ス ト 内に複数あ り ま す
A1206E
レ ジ ス タ は、 レ ジ ス タ 番号の昇順で表示 さ れ て い る 必要が あ り ま す
こ の警告は、 例えば LDM や STM 命令で、 レ ジ ス タ が昇順で指定 さ れてお
ら ず、 --checkreglist オプシ ョ ン が使用 さ れてい る 場合に発生 し ます。
A1207E
不正 ま た は不明な属性
こ のエ ラ ーは、 AREA デ ィ レ ク テ ィ ブで無効な属性が指定 さ れた場合に発
生 し ます。 以下に例を示 し ます。
AREA test,CODE,READONLY,HALFWORD
HALFWORD は無効なので、 削除 し ます。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
AREA (6-73 ページ) .
A1209E
ADRL は PC と 共に デ ス テ ィ ネ ー シ ョ ン と し て使用す る こ と は で き ま せ ん
A1210E
初期化 さ れ て い な い エ リ ア '<name>' に ゼ ロ 以外の デ ー タ が あ り ま す
A1211E
開 き 角括弧が あ り ま せ ん
A1212E
ゼ ロ に よ る除算
A1213E
属性 <entity> を 属性 <entity> と 共に使用す る こ と は で き ま せ ん
A1214E
シ ン ボ ル '<sym>' を レ ジ ス タ リ ス ト と し て定義す る に は遅す ぎ ま す
A1215E
不正な レ ジ ス タ リ ス ト シ ン ボ ル
A1216E
不正な ス ト リ ン グ エ ス ケ ー プ シ ー ケ ン ス
A1217E
コ ー ド フ ァ イ ル <codeFileName> へ の書 き 込み中に エ ラ ー が発生 し ま し た : <reason>
A1219E
APSR 指定子、 CPSR 指定子、 ま た は SPSR 指定子が不正で す
以下に例を示 し ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-9
アセ ン ブ ラのエ ラ ーおよび警告
MRS r0, PSR
こ の場合、 以下の よ う に、 ど の ス テー タ ス レ ジ ス タ (CPSR ま たは
SPSR) を使用す る か を指定す る 必要があ り ます。
MRS r0, CPSR
A1220E
BLX <address> は無条件に す る 必要が あ り ま す
A1221E
エ リ ア の属性 '<entity>' は <entity> オ ブ ジ ェ ク ト の フ ァ イ ル形式で は サ ポ ー ト さ れ て い ま
せん
A1223E
Comdat シ ン ボ ル '<name>' は定義 さ れ て い ま せ ん
A1224E
<entity> 形式で は、 エ リ ア 間の PC 相対デ ー タ 転送は実行で き ま せ ん
A1225E
ASSOC 属性は非 comdat エ リ ア で は使用で き ま せ ん
A1226E
SELECTION 属性は非 comdat エ リ ア で は使用で き ま せ ん
A1227E
Comdat 関連 エ リ ア '<name>' は こ の時点で フ ァ イ ル内に定義 さ れ て い ま せ ん
A1228E
Comdat 関連 エ リ ア '<name>' は エ リ ア 名で は あ り ま せ ん
A1229E
COMDAT シ ン ボ ル が あ り ま せ ん
A1230E
COMDAT シ ン ボ ル の後に '}' が あ り ま せ ん
A1234E
シ ン ボ ル '<sym>' の未定義 ま た は未 エ ク ス ポ ー ト の Weak エ イ リ ア ス
A1237E
レ ジ ス タ ま た は レ ジ ス タ の組み合わ せ が こ の操作に対 し て無効で す
A1238E
こ の操作で使用す る 場合、 イ ミ デ ィ エ ー ト 値は ワ ー ド 境界で整列 し て い る 必要が あ り ま す
A1240E
イ ミ デ ィ エ ー ト 値は こ の操作で は使用で き ま せ ん
A1241E
こ の操作で は イ ミ デ ィ エ ー ト 値 を 使用す る必要が あ り ま す
A1242E
こ の操作で使用す る 場合、 オ フ セ ッ ト は ワ ー ド 境界で整列 し て い る 必要が あ り ま す
A1243E
こ の操作で は、 オ フ セ ッ ト は ハ ー フ ワ ー ド 境界で整列 し て い る必要が あ り ま す
A1244E
'!' が あ り ま せ ん
A1245E
Thumb コ ー ド か ら ARM コ ー ド へ の B ま た は BL で す
A1247E
ARM コ ー ド か ら ARM コ ー ド へ の BLX で す。 BL を 使用 し て く だ さ い。
こ の問題は、 こ のアセ ンブ ラ フ ァ イ ル内に ARM コ ー ド か ら ARM コ ー
ド への BLX <label> 分岐があ る 場合に発生 し ます。 こ れが許可 さ れないの
は、 BLX <label> では常に状態変更が起 き る ためです。 通常は、 代わ り に
BL を使用す る こ と で解決で き ます。
A1248E
Thumb コ ー ド か ら Thumb コ ー ド へ の BLX で す。 BL を 使用 し て く だ さ い。
こ の問題は、 こ のアセ ンブ ラ フ ァ イ ル内に Thumb コ ー ド か ら Thumb
コ ー ド への BLX <label> 分岐があ る 場合に発生 し ます。 こ れが許可 さ れな
いのは、 BLX <label> では常に状態変更が起 き る ためです。 通常は、 代わ
り に BL を使用す る こ と で解決で き ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1249E
ポ ス ト イ ン デ ク ス ア ド レ ッ シ ン グ モ ー ド は使用で き ま せ ん
A1250E
プ レ イ ン デ ク ス ア ド レ ッ シ ン グ モ ー ド は こ の命令で は使用で き ま せ ん。 [Rn, Rm] を 使用 し て く だ
さ い。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-10
アセ ン ブ ラのエ ラ ーおよび警告
A1253E
外部シ ン ボ ル へ の Thumb 分岐は再配置で き ま せ ん : <fmt> で は表現で き ま せ ん
A1254E
ハ ー フ ワ ー ド リ テ ラ ル値は サ ポ ー ト さ れ て い ま せ ん
例:
LDRH R3, =constant
LDRH を LDR に変更 し て下 さ い。 LDR は、 レ ジ ス タ に定数を ロ ー ド す
る 標準的な方法です。
A1256E
DATA デ ィ レ ク テ ィ ブ は CODE エ リ ア で の み使用で き ま す
A1259E
無効な PSR フ ィ ー ル ド 指定子で す。 構文は <PSR>_ で、 <PSR> に は CPSR ま た は SPSR が入
り ま す。
A1260E
PSR フ ィ ー ル ド '<entity>' が複数回指定 さ れ て い ま す
A1261E
MRS で は フ ィ ー ル ド を 選択で き ま せ ん。 直接 APSR、 CPSR、 ま た は SPSR を 使用 し て く だ さ い
こ の問題は、 次の よ う に、 MRS 命令 と 共に CPSR ま たは SPSR の フ ィ ー
ル ド を使お う と し た場合に発生 し ます。
MRS r0, CPSR_c
A1262U
式記憶 エ リ ア ア ロ ケ ー タ が エ ラ ー に な り ま し た
A1265U
構造体が一致 し ま せ ん : INCLUDE フ ァ イ ル の最後で IF ま た は WHILE が一致 し ま せ ん
A1267E
フ ァ イ ル <filename> に対 し て不正な GET ま た は INCLUDE で す
A1268E
条件 ま た は マ ク ロ が一致 し ま せ ん
A1269U
構造体 ス タ ッ ク 上に予期 し な い GET が あ り ま す
A1270E
フ ァ イ ル "<entity>" が あ り ま せ ん
A1271E
行が長す ぎ ま す。 最大行長は <MaxLineLength> で す。
A1272E
入力 フ ァ イ ル の終わ り
A1273E
'\\' は ス ト リ ン グ の分割に は使用で き ま せ ん
A1274W
コ メ ン ト の最後に '\\' が あ り ま す
A1283E
リ テ ラ ル プ ー ル が離れ す ぎ て い ま す。 LTORG を 使用 し て 1KB 以内に な る よ う に ア セ ン ブ ル し て く
だ さ い。
Thumb コ ー ド では、 ア ク セ ス を可能にす る ために、 リ テ ラ ルプールを
LDR 命令の 1KB 以内に し なければな り ません。 A1284E お よ び A1471W
を参照 し て下い。
A1284E
リ テ ラ ル プ ー ル が離れ す ぎ て い ま す。 LTORG を 使用 し て 4KB 以内に な る よ う に ア セ ン ブ ル し て く
だ さ い。
ARM コ ー ド では、 ア ク セ ス を可能にす る ために、 リ テ ラ ルプールを
LDR 命令の 4KB 以内に し なければな り ません。 こ の問題を解決す る に
は、 LTORG デ ィ レ ク テ ィ ブ を アセ ン ブ ラ ソ ース フ ァ イ ル内の適当な場所
に追加 し ます。
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
LDR Rd, =label を使用 し た レ ジ ス タ へのア ド レ ス の ロ ー ド
(5-19 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-11
アセ ン ブ ラのエ ラ ーおよび警告
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
LTORG (6-19 ページ) .
A1285E
不正な マ ク ロ 名
A1286E
マ ク ロ は既に存在 し て い ま す
A1287E
マ ク ロ プ ロ ト タ イ プ の パ ラ メ ー タ の先頭が不正で す
A1288E
マ ク ロ プ ロ ト タ イ プ の パ ラ メ ー タ が不正で す
A1289E
マ ク ロ プ ロ ト タ イ プ の パ ラ メ ー タ の区切 り 文字が無効で す
A1290E
マ ク ロ 定義が大 き す ぎ ま す。 最大長は <max> で す。
A1291E
マ ク ロ 定義 を 入れ子に す る こ と は で き ま せ ん
A1310W
シ ン ボ ル属性が認識 さ れ ま せ ん
A1311U
拡張内で マ ク ロ 定義が試行 さ れ ま し た
A1312E
アサートがエ ラ ーにな り ま し た
A1313W
フ ァ イ ル の終わ り に END デ ィ レ ク テ ィ ブ が あ り ま せ ん
アセ ン ブ ラ は、 フ ァ イ ル内の コ ー ド が ど こ で終了す る か を知 る ために、
END デ ィ レ ク テ ィ ブ を必要 と し ます。 こ のデ ィ レ ク テ ィ ブの後には、 自由
な形式で コ メ ン ト な ど の情報を追加で き ます。
A1314W
予約 さ れ て い る命令 (NV 条件 を 使用)
A1315E
NV 条件は タ ー ゲ ッ ト の CPU で は サ ポ ー ト さ れ て い ま せ ん
A1316E
MSR に対す る シ フ ト さ れ た レ ジ ス タ オ ペ ラ ン ド の効果が定義 さ れ て い ま せ ん
A1319E
影響が定義 さ れ て い ま せ ん (PC を Rs と し て使用)
A1320E
影響が定義 さ れ て い ま せ ん ( レ ジ ス タ 指定シ フ ト で PC を Rn ま た は Rm と し て使用)
A1321E
影響が定義 さ れ て い ま せ ん (PC を オ フ セ ッ ト レ ジ ス タ と し て使用)
A1322E
PC の非境界整列転送で す。 転送先 ア ド レ ス は 4 バ イ ト 境界で整列 さ れ て い る必要が あ り ま す。 そ
れ以外の場合、 予測不能な結果に な り ま す
こ のエ ラ ーは、 LDR 命令を使用 し て ワ ー ド 境界で整列 さ れていないア ド
レ ス か ら PC を ロ ー ド し よ う と す る と 報告 さ れます。 『ARM アーキ テ ク
チ ャ リ フ ァ レ ン ス マニ ュ アル』 には、 こ の操作を行 う と 予測不能な 結果
にな る と 記載 さ れてい ます。 以下に例を示 し ます。
AREA Example, CODE
LDR pc, [pc, #6] ; Error – オ フ セ ッ ト は 4 の倍数で あ る 必要が あ り ま す
END
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1323E
予約済み の命令 (Rm = Rn と ポ ス ト イ ン デ ク ス の併用)
A1324E
影響が定義 さ れ て い ま せ ん (PC + ラ イ ト バ ッ ク )
A1327E
移植不可能命令 ( ラ イ ト バ ッ ク と ベ ー ス を 使用す る LDM が レ ジ ス タ リ ス ト で指定 さ れ て い る場合、
ベ ー ス の最終的な値は予期で き ま せ ん)
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-12
アセ ン ブ ラのエ ラ ーおよび警告
LDM オペ ラ ン ド の制限 :
•
A1328E
ベース レ ジ ス タ <Rn> が <registers> で指定 さ れていて、 ベース レ ジ
ス タ の ラ イ ト バ ッ ク が指定 さ れてい る 場合、 <Rn> の最終的な値は
不明です。
移植不可能命令 ( ラ イ ト バ ッ ク と ベ ー ス を 使用す る STM が レ ジ ス タ リ ス ト の最初に な い場合、
ベ ー ス の格納値は予期で き ま せ ん)
STM オペ ラ ン ド の制限 : <Rn> が <registers> と し て指定 さ れていて、
ベース レ ジ ス タ の ラ イ ト バ ッ ク が指定 さ れてい る 場合、
•
<Rn> が <register_list> で指定 さ れてい る 最 も 小 さ な番号の レ ジ ス タ
であ る な ら ば、 <Rn> の元の値が格納 さ れ ます。
そ う でないな ら ば、 <Rn> の格納値は 不明 です。
•
A1329E
予測不能な命令 (ベ ー ス へ の ラ イ ト バ ッ ク を 使用 し た強制ユ ー ザ モ ー ド 転送)
こ の問題は、 PUSH {r0}^ の よ う な命令に よ っ て発生 し ます (^ は、 ユーザ
レ ジ ス タ へのア ク セ ス を示 し ます)。 『ARM アーキ テ ク チ ャ リ フ ァ レ ン
ス マニ ュ アル』 では、 こ の命令でベース レ ジ ス タ への ラ イ ト バ ッ ク は使
用で き ない と 記載 さ れてい ます。
ベース レ ジ ス タ は、 別途更新す る 必要があ り ます。 以下に例を示 し ま
す。
SUB sp, sp,#4
STMID sp, {r0}^
ま た、 STMFD R0!, {r13, r14}^ を次の よ う に置 き 換え る 方法 も あ り ます。
SUB r0, r0,#8
STM r0, {r13, r14}^
A1085W も 参照 し て下 さ い。
A1331E
予測不能な命令 ( ソ ー ス ま た は デ ス テ ィ ネ ー シ ョ ン と し て の PC)
A1332E
影響が予測不能で す (PC 相対 SWP)
A1334E
影響が定義 さ れ て い ま せ ん (PC/PSR の使用)
A1335E
意味の な い命令 (PC に ラ イ ト バ ッ ク す る こ と は で き ま せ ん)
A1337E
意味の な い命令 (PC は デ ス テ ィ ネ ー シ ョ ン で す)
A1338E
疑わ し い命令 (PC が オ ペ ラ ン ド と し て使用 さ れ て い ま す)
A1339E
RdLo と RdHi が同 じ レ ジ ス タ の場合予測で き ま せ ん
A1341E
境界整列 さ れ て い な い デ ス テ ィ ネ ー シ ョ ン へ の分岐で す。 <max> バ イ ト 境界で整列 さ れ て い る デ ス
テ ィ ネ ー シ ョ ン が期待 さ れ ま す。
A1342W
シ ン ボ ル が こ の命令 と 離れ す ぎ て い る 場合、 別の AREA 内の シ ン ボ ル の <name> は リ ン ク 時の エ
ラ ー の原因に な り ま す
A1344I
ホ ス ト エ ラ ー : メ モ リ が不足 し て い ま す
A1355U
AREA 内に な い ラ ベ ル が見つ か り ま し た
例:
こ の問題は、 アセ ン ブ ラ デ ィ レ ク テ ィ ブの前にホ ワ イ ト スペース がない
場合に発生 し ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-13
アセ ン ブ ラのエ ラ ーおよび警告
アセ ン ブ ラ デ ィ レ ク テ ィ ブは、 次の よ う に、 ホ ワ イ ト スペース で イ ンデ
ン ト さ れてい る 必要があ り ます。
IF :DEF: FOO
; code
ENDIF
以下は、 正 し く ない例です。
IF :DEF: FOO
; code
ENDIF
左端列にあ る シ ン ボルは、 ラ ベルであ る と 見な さ れ ます。
A1356E
命令が タ ー ゲ ッ ト の CPU で サ ポ ー ト さ れ て い ま せ ん
こ の問題は、 armasm の既定のアーキ テ ク チ ャ ま たはプ ロ セ ッ サでサポー
ト さ れていない命令を使お う と し た場合に発生 し ます。
以下に例を示 し ます。
SMULBB r0,r0,r1 ;
は、 次の よ う にアセ ン ブルで き ます。
armasm --cpu 5TE
armasm コ マ ン ド ラ イ ン で選択 さ れたプ ロ セ ッ サでは、 こ の命令はサ
ポー ト さ れてい ません。 『ARM アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ ア
ル』 ,
http://infocenter.arm.com/help/topic/com.arm.doc.subset.architecture.refer
ence/index.html#reference を参照 し て下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1406E
不正な 10 進数
A1407E
大 き す ぎ る浮動小数点値
A1408E
大 き す ぎ る (単精度) 浮動小数点値
A1409W
小 さ な (単精度) 浮動小数点値は 0.0 に変換 さ れ ま す
A1411E
ベ ク タ 指定子に閉 じ の '>' が あ り ま せ ん
A1412E
ベ ク タ 長が不正で す。 <min> と <max> の間に す る必要が あ り ま す。
A1413E
ベ ク タ の ス ト ラ イ ド が不正で す。 <min> と <max> の間に す る 必要が あ り ま す。
A1414E
ベ ク タ は そ れ自身 を 循環 し て上書 き さ れ ま す。 長 さ * ス ト ラ イ ド が <max> 以下で あ る必要が あ
り ま す。
A1415E
VFPASSERT の後に 'VECTOR' ま た は 'SCALAR' を 指定す る必要が あ り ま す
A1416E
ベ ク タ 長が現在の ベ ク タ 長 <len> と 一致 し ま せ ん
A1417E
ベ ク タ の ス ト ラ イ ド が現在の ベ ク タ の ス ト ラ イ ド と 一致 し ま せ ん
A1418E
レ ジ ス タ の型 '<type>' が命令に対 し て不正で す。 浮動小数点 / 倍精度型の レ ジ ス タ が期待 さ れ
ま す。
A1419E
ス カ ラ オ ペ ラ ン ド が ス カ ラ バ ン ク 内に あ り ま せ ん
A1420E
ベ ク タ オ ペ ラ ン ド の長 さ が異な っ て い ま す
A1421E
ベ ク タ オ ペ ラ ン ド の ス ト ラ イ ド が異な っ て い ま す
A1422E
こ の ベ ク タ オ ペ ラ ン ド と ス カ ラ オ ペ ラ ン ド の組み合わ せ は使用で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-14
アセ ン ブ ラのエ ラ ーおよび警告
A1423E
こ の操作は ベ ク タ 化で き ま せ ん
A1424E
こ の命令に対す る オ ペ ラ ン ド で は ベ ク タ 指定子は使用で き ま せ ん
A1425E
デ ス テ ィ ネ ー シ ョ ン の ベ ク タ を ス カ ラ バ ン ク 内に置 く こ と は で き ま せ ん
A1426E
ソ ー ス の ベ ク タ を ス カ ラ バ ン ク 内に置 く こ と は で き ま せ ん
A1427E
オ ペ ラ ン ド が部分的に オ ー バ ラ ッ プ し て い ま す
A1428E
レ ジ ス タ リ ス ト に型の異な る レ ジ ス タ が含 ま れ て い ま す
A1429E
期待 さ れ る レ ジ ス タ リ ス ト
こ の問題は、FRAME SAVE お よ び FRAME RESTORE デ ィ レ ク テ ィ ブに レ ジ ス タ リ
ス ト が指定 さ れていない場合に、 アセ ン ブ ラ に よ っ て通知 さ れます。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
FRAME RESTORE (6-51 ページ)
•
FRAME SAVE (6-53 ページ) .
A1430E
不明な frame デ ィ レ ク テ ィ ブ
A1431E
frame デ ィ レ ク テ ィ ブ は PROC/FUNCTION の外部で は使用で き ま せ ん
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
Frame デ ィ レ ク テ ィ ブ (5-41 ページ) .
•
A1432E
浮動小数点 レ ジ ス タ 型は、 選択 し た浮動小数点 ア ー キ テ ク チ ャ と 互換性が あ り ま せ ん
A1433E
こ の命令の ラ イ ト バ ッ ク 形式の み が存在 し ま す
命令で指定 さ れた ア ド レ ッ シ ン グモー ド は、 ラ イ ト バ ッ ク 指定子 (つま
り 、 ベース レ ジ ス タ の後の '!') を含んでい ませんで し たが、 命令セ ッ
ト は命令の ラ イ ト バ ッ ク 形式だけ をサポー ト し てい ます。 ラ イ ト バ ッ ク
形式を使用す る か、 要求 さ れた動作をす る 命令に置 き 換え て下 さ い。
A1435E
ア ー キ テ ク チ ャ 用に ア セ ン ブ ル す る 場合、 {PCSTOREOFFSET} は定義 さ れ て い ま せ ん
{PCSTOREOFFSET} は、 プ ロ セ ッ サ用にアセ ンブルす る 場合にだけ定義 さ れ、
アーキ テ ク チ ャ 用の場合は定義 さ れ ません。
A1437E
{ARCHITECTURE} が定義 さ れ て い ま せ ん
{ARCHITECTURE} は、 アーキ テ ク チ ャ 用にアセ ン ブルす る 場合にだけ定義
さ れ、 プ ロ セ ッ サ用の場合は定義 さ れません。
A1446E
不正 ま た は不明な属性 '<attr>' で す。 代わ り に --apcs /interwork を 使用 し て く だ さ い
例:
AREA test1, CODE, READONLY
AREA test, CODE, READONLY, INTERWORK
こ の コ ー ド は、 元は SDT と 共に動作す る こ と が想定 さ れていた と 考え
ら れます。 INTERWORK エ リ ア属性は、 現在では廃止 さ れてい ます。 警告が
表示 さ れない よ う にす る には、 次の よ う に し ます。
A1447W
•
AREA の行か ら ", INTERWORK" を削除 し ます。
•
代わ り に、 'armasm --apcs /interwork foo.s' でアセ ン ブル し ます。
フ ァ イ ル の終わ り に END デ ィ レ ク テ ィ ブ が あ り ま せ ん が、 END と い う ラ ベ ル が見つ か り ま し た
こ の問題は、 イ ンデン ト さ れていない END デ ィ レ ク テ ィ ブに よ っ て発生
し ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-15
アセ ン ブ ラのエ ラ ーおよび警告
A1448E
廃止予定の形式の PSR フ ィ ー ル ド 指定子が使用 さ れ て い ま す (_f を 使用 し て く だ さ い)
A1449E
廃止予定の形式の PSR フ ィ ー ル ド 指定子が使用 さ れ て い ま す (_c を 使用 し て く だ さ い)
A1450E
廃止予定の形式の PSR フ ィ ー ル ド 指定子が使用 さ れ て い ま す (将来の互換性の た め に _cxsf を
使用 し て く だ さ い)
アセ ン ブ ラ (armasm) では、 以下の形式で、 MRS お よ び MSR 命令のす
べてがサポー ト さ れてい ます。
MRS(cond)
MRS(cond)
MSR(cond)
MSR(cond)
MSR(cond)
MSR(cond)
Rd, CPSR
Rd, SPSR
CPSR_fields,
SPSR_fields,
CPSR_fields,
SPSR_fields,
Rm
Rm
#immediate
#immediate
こ こ で、 fields は、 cxsf の任意の組み合わせです。
アセ ン ブ ラ の以前の リ リ ース では、 制御フ ィ ール ド と フ ラ グ フ ィ ール ド
を変更す る ために、 MSR 命令で次の よ う な他の形式 も 使用で き ま し た。
•
cpsr ま たは cpsr_all、 制御お よ びフ ラ グ フ ィ ール ド
•
cpsr_flg、 フ ラ グ フ ィ ール ド のみ
•
cpsr_ctl、 制御フ ィ ール ド のみ
同様の制御お よ びフ ラ グ設定が、 SPSR に も 適用 さ れます。
こ れ ら の形式は、 現在では廃止予定にな っ てい る ため、 使用 し ないで下
さ い。 こ れ ら の形式が従来の コ ー ド に含まれてい る 場合、 アセ ン ブ ラ に
よ っ て以下の メ ッ セージが通知 さ れます。
廃止予定の形式の PSR フ ィ ー ル ド 指定子が使用 さ れ て い ま す (_cxsf を 使用 し て く だ さ い)
警告が表示 さ れない よ う にす る には、 多 く の場合、 代わ り に _c、 _f、
_cf、 ま たは _cxsf を使 う よ う に コ ー ド を変更す る だけで済みます。
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
ARM 状態での条件付 き 実行 (6-3 ページ)
•
Thumb 状態での条件付 き実行 (6-4 ページ)
•
汎用レ ジ ス タ (3-13 ページ)
イ ン ラ イ ンバレルシ フ タ へのア ク セ ス (3-28 ページ) .
•
•
FAQ の armasm: use of MRS and MSR instructions ('Deprecated form of PSR
field specifier'),
http://infocenter.arm.com/help/topic/com.arm.doc.faqs
/ka3724.html も 参照 し て下 さ い。
A1454E
FRAME STATE RESTORE デ ィ レ ク テ ィ ブ に対応す る FRAME STATE REMEMBER が あ り ま せ ん
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
Frame デ ィ レ ク テ ィ ブ (5-41 ページ) .
•
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
A1456W
•
FRAME STATE REMEMBER (6-54 ページ)
•
FRAME STATE RESTORE (6-55 ページ) .
INTERWORK エ リ ア デ ィ レ ク テ ィ ブ は現在サ ポ ー ト さ れ て い ま せ ん。 --apcs /inter が選択 さ れ
た場合 と 同様に続行 さ れ ま す。
例:
AREA test, CODE, READONLY, INTERWORK
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-16
アセ ン ブ ラのエ ラ ーおよび警告
こ の コ ー ド は、 元は SDT と 共に動作す る こ と が想定 さ れていた と 考え
ら れます。 INTERWORK エ リ ア属性は、 現在では廃止 さ れてい ます。 警告が
表示 さ れない よ う にす る には、 次の よ う に し ます。
A1457E
1.
AREA の行か ら ", INTERWORK" を削除 し ます。
2.
代わ り に、 armasm --apcs /interwork foo.s でアセ ン ブル し ます。
INTERWORK と NOINTERWORK コ ー ド エ リ ア を 同 じ フ ァ イ ル内に混在 さ せ る こ と は で き ま せ ん。
INTERWORK と (既定の) NOINTERWORK コ ー ド エ リ アは、 同 じ フ ァ イ ル内に混
在 さ せ る こ と がで き ません。 こ の コ ー ド は、 元は SDT と 共に動作す る こ
と が想定 さ れていた と 考え ら れます。 INTERWORK エ リ ア属性は、 ARM コ
ンパ イ ラ ツールチ ェ ーン では廃止 さ れてい ます。
例:
AREA test1, CODE, READONLY
…
AREA test2, CODE, READONLY, INTERWORK
エ ラ ーが発生 し ない よ う にす る には、 次の よ う に し ます。
1.
2 つの AREA を、 例えば test1.s と test2.s の よ う な個別のアセ ン ブ
ラ フ ァ イ ルに移動 し ます。
2.
test2.s の AREA の行か ら ", INTERWORK" を削除 し ます。
3.
test1.s を armasm --apcs /nointerwork でアセ ン ブル し ます。
4.
test2.s を armasm --apcs /interwork でアセ ン ブル し ます。
5.
リ ン ク 時に、 リ ン カに よ っ て必要な イ ン タ ー ワ ー ク ベニ アが追加
さ れ ます。
A1458E
fpu が None の場合、 DCFD ま た は DCFDU は使用で き ま せ ん。
A1459E
レ ジ ス タ に対す る B ま た は BL は実行で き ま せ ん。
命令の こ の形式は使用で き ません。 使用で き る 形式については、 『ARM
アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
A1461E
指定 さ れ た プ ロ セ ッ サ ま た は ア ー キ テ ク チ ャ は Thumb 命令 を サ ポ ー ト し て い ま せ ん
--cpu オプシ ョ ン を使用 し て特定のアーキ テ ク チ ャ ま たは CPU を指定 し
た後で、 こ のエ ラ ーを生成 し た AREA 内に Thumb コ ー ド を組み込んだ
と 考え ら れます。
以下に例を示 し ます。
armasm --cpu 4 code.s
StrongARM はアーキ テ ク チ ャ 4 (4T ではな く ) のプ ロ セ ッ サであ り 、
Thumb コ ー ド を サポー ト し てい ません。
A1462E
指定 さ れ た メ モ リ 属性は こ の命令 を サ ポ ー ト し て い ま せ ん
A1463E
SPACE デ ィ レ ク テ ィ ブ は大 き す ぎ る た め こ の エ リ ア に収 ま り ま せ ん。 エ リ ア の サ イ ズ の制限は
2^32 で す。
A1464W
ENDP/ENDFUNC に対応す る PROC/FUNC が あ り ま せ ん
A1466W
演算子の優先順位 と は、 C で は式が異な る方法で評価 さ れ る こ と を 意味 し ま す
armasm は常に、 特定の式を C と は異な る 順序で評価 し て き ま し た。 こ の
警告は、 C プ ロ グ ラ マがアセ ン ブ ラ で記述す る 際の手助けにな り ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-17
アセ ン ブ ラのエ ラ ーおよび警告
警告が表示 さ れない よ う にす る には、 次のいずれかの対処を行い ます。
•
評価の順序が明示的にな る よ う に コ ー ド を変更 し ます。 つま り 、
括弧を追加 し ます。
•
--unsafe ス イ ッ チで、 警告を非表示に し ます。
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
演算子の優先順位 (8-30 ページ) .
A1467W
負の オ フ セ ッ ト <offset> を 使用 し た FRAME ADDRESS は推奨 さ れ ま せ ん
A1468W
標準構造 フ レ ー ム ア ド レ ス よ り 上に レ ジ ス タ を 保存す る FRAME SAVE は推奨 さ れ ま せ ん
A1469E
FRAME STATE REMEMBER デ ィ レ ク テ ィ ブ に対応す る FRAME STATE RESTORE が あ り ま せ ん
『アセ ンブ ラ の使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
Frame デ ィ レ ク テ ィ ブ (5-41 ページ) .
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
A1471W
•
FRAME STATE REMEMBER (6-54 ページ)
•
FRAME STATE RESTORE (6-55 ページ) .
デ ィ レ ク テ ィ ブ <directive> は実行可能な位置に あ る 可能性が あ り ま す
こ の問題は、 例えば LTORG デ ィ レ ク テ ィ ブで発生す る 場合があ り ます
(A1283E お よ び A1284E を参照)。 LTORG は、 こ の位置での リ テ ラ ル
プール DCD デー タ を ダ ン プす る よ う にアセ ン ブ ラ に指示 し ます。
こ の警告が発生 し ない よ う にす る には、 デー タ を プ ロ セ ッ サが命令 と し
て実行で き ない場所に配置す る 必要があ り ます。 LTORG の位置 と し て適
切なのは、 無条件分岐の直後、 ま たはサブルーチンの最後にあ る 復帰命
令の後です。
最後の手段 と し て、 デー タ が実行 さ れ る のを防 ぐ ために、 次の よ う に
LTORG の部分に分岐を追加す る こ と も で き ます。
B unique_label
LTORG
unique_label
A1475E
少な く と も 1 つ の レ ジ ス タ を 転送す る 必要が あ り ま す。 転送 し な い と 結果 を 予測で き ま せ ん。
A1476E
ワ ー ド 境界で整列 さ れ て い な い ア ド レ ス で の BX r15 は予測で き ま せ ん
A1477E
こ の レ ジ ス タ の組み合わ せ は予測不能な動作に な り ま す
こ のエ ラ ーは、 実行時に 予測不可能な 結果が生 じ る 命令を アセ ン ブ リ し
てい る 場合に生成 さ れます。 こ の 予想不可能な 結果を回避す る には、
コ ー ド を記述 し 直す必要があ り ます。 例えば、 次の命令は Thumb 命令の
アセ ン ブル時に こ のエ ラ ーを必ず発生 し 、 タ ーゲ ッ アーキ テ ク チ ャ は
ARMv6T2 以降です。
ADD sp, r0, #100 ; error - 予測不要な SP の使用
CMP pc, #1 ; error - 予測不要な PC の使用
PUSH
{r0, pc} ; error - 予測不要な レ ジ ス タ の組み合わ せ の使用
A1479W
ARM DUI 0496GJ
ID 0 5 1 6 1 2
要求 さ れ た ア ラ イ メ ン ト <alignreq> が エ リ ア ア ラ イ メ ン ト <align> よ り 大 き い た め、 エ リ ア
ア ラ イ メ ン ト を大き く し ま し た
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-18
アセ ン ブ ラのエ ラ ーおよび警告
こ れは、 ALIGN デ ィ レ ク テ ィ ブの整列境界が、 それを含む AREA よ り も 粗
い場合の警告です。 こ れは使用で き ません。 こ の問題を解消す る ために、
AREA の側のア ラ イ メ ン ト がアセ ン ブ ラ に よ っ て自動的に増や さ れます。
こ の警告を発生 さ せ る 単純な例は、 次の よ う な も のです。
AREA test, CODE, ALIGN=3
ALIGN 16
mov pc, lr
END
こ の例では、 AREA (ALIGN=3) のア ラ イ メ ン ト が 2^3=8 バ イ ト 境界ですが、
mov pc,lr 命令は 16 バ イ ト 境界にな っ てい る ため、 エ ラ ーにな り ます。
注
2 つのア ラ イ メ ン ト の種類が、 異な る 方法で指定 さ れてい ます。
こ の警告は、AREA ... ALIGN=0 を使っ て コ ー ド セ ク シ ョ ン をバ イ ト 境界に
整列 さ せ る と き に も 発生 し ます。 その よ う な設定はで き ません。 コ ー ド
セ ク シ ョ ンは、 次の よ う にだ整列で き ます。
•
ARM コ ー ド では、 4 バ イ ト 境界。 つま り 、 "ALIGN=2" を使用 し ます。
•
Thumb コ ー ド では、 2 バ イ ト 境界。 つま り 、 "ALIGN=1" を使用 し ま
す。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ALIGN (6-70 ページ)
•
AREA (6-73 ページ) .
A1480W
デ ィ レ ク テ ィ ブ ま た は命令 と 同 じ 名前 を マ ク ロ に付け る こ と は で き ま せ ん
A1482E
シ フ ト オ プ シ ョ ン が範囲外で す。 使用可能な値は <min> ~ <max> で す。
A1484W
現在サ ポ ー ト さ れ て い な い シ フ ト 名 'ASL' で す。 代わ り に LSL を 使用 し て く だ さ い。
ARM アーキ テ ク チ ャ には、 ASL シ フ ト 演算があ り ません。 ARM バ レル
シ フ タ には、 以下のシ フ ト の種類だけがあ り ます。 ROR、 ASR、 LSR、
お よ び LSL。
算術 (符号付 き ) 左シ フ ト は、 論理左シ フ ト と 同 じ です。 符号ビ ッ ト
は、 常にシ フ ト ア ウ ト さ れ る ためです。
以前のバージ ョ ンのアセ ン ブ ラ は、 自動的に ASL を LSL に変換 し てい
ま し た。 --unsafe ス イ ッ チを使用す る と 、 こ のエ ラ ーを警告にダ ウ ン グ
レー ド で き ます。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
--unsafe (2-27 ページ)
•
ASR、 LSL、 LSR、 ROR、 RRX (3-78 ページ) .
A1485E
LDM/STM 命令が --split_ldm で許可 さ れ て い る最大 レ ジ ス タ 数 <max> を 超え て い ま す
A1486E
別の AREA の シ ン ボ ル の ADR/ADRL は ELF で は サ ポ ー ト さ れ て い ま せ ん。
ADR お よ び ADRL 疑似命令は、 同 じ コ ー ド セ ク シ ョ ン内の ラ ベル と 共
に使 う 場合のみ使用で き ます。 レ ジ ス タ にエ リ ア外のア ド レ ス を ロ ー ド
す る に、 代わ り に LDR を使用 し て下 さ い。
A1487W
現在サ ポ ー ト さ れ て い な い命令名 'ASL' で す。 代わ り に LSL を 使用 し て く だ さ い。
Thumb 命令 ASL は、 現在ではエ ラ ーにな り ます。 対応す る ARM ASL
メ ッ セージ A1484W. を参照 し て下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-19
アセ ン ブ ラのエ ラ ーおよび警告
A1488W
行 <lineno> の PROC/FUNC に対応す る ENDP/ENDFUNC が あ り ま せ ん ( フ ァ イ ル
'<filename>')
A1489E
<FPU> が定義 さ れ て い ま せ ん
A1490E
<CPU> が定義 さ れ て い ま せ ん
{CPU} は、 プ ロ セ ッ サ用にアセ ン ブルす る 場合にだけ定義 さ れ、 アーキ
テ ク チ ャ 用の場合は定義 さ れません。
A1491W
内部 エ ラ ー : 不正な ア ラ イ メ ン ト を 使用 し た再配置が オ フ セ ッ ト <offset> で見つ か り ま し た
こ の問題は、 アセ ン ブ ラ のエ ラ ーを示 し てい る 場合があ り ます。 購入元
にお問い合わせ下 さ い。
A1492E
イ ミ デ ィ エ ー ト 0x<val> が こ の操作の範囲外で す。 許可 さ れ て い る 値は 0x<mini> ~
0x<maxi> で す。
A1493E
REQUIRE は AREA 内に あ る必要が あ り ま す
A1495W
分岐の タ ー ゲ ッ ト が デ ー タ ア ド レ ス で す
armasm はシ ン ボルの種類を判断 し 、 デー タ への分岐を検出 し ます。 こ の
警告が表示 さ れない よ う にす る には、 --diag-suppress 1495 を指定 し ま
す。
A1496W
シ ン ボ ル '<symbol>' ( オ フ セ ッ ト <offset>) に関す る ROPI ア ド レ ス の絶対再配置 を 実行す
る と 、 リ ン ク エ ラ ー が発生す る場合が あ り ま す
例えば、 --apcs /ropi で次の コ ー ド を アセ ン ブル し た場合、
AREA code, CODE
codeaddr DCD codeaddr
END
PI コ ー ド シ ン ボルへの絶対再配置 (R_ARM_ABS32) が生成 さ れ る ため、 エ
ラ ーにな り ます。
A1497W
シ ン ボ ル '<symbol>' ( オ フ セ ッ ト <offset>) に関す る RWPI ア ド レ ス の絶対再配置 を 実行す
る と 、 リ ン ク エ ラ ー が発生す る場合が あ り ま す
例えば、 --apcs /rwpi で次の コ ー ド を アセ ン ブル し た場合、
AREA data, DATA
dataaddr DCD dataaddr
END
PI デー タ シ ン ボルへの絶対再配置 (R_ARM_ABS32) が生成 さ れ る ため、 エ
ラ ーにな り ます。
A1498E
Thumb 命令の後に予期 し な い文字が あ り ま す
以下に例を示 し ます。
ADD r0, r0, r1
は、 ARM で も Thumb で も 、 有効な命令 と し て受け入れ ら れます。 し か
し、
ADD r0, r0, r1, ASR #1
は ARM では有効な命令ですが、 Thumb では無効なので、 予期 し ない文
字は ", ASR #1" です。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1499E
レ ジ ス タ の組み合わ せ は有効な連続ペ ア で は あ り ま せ ん
A1500E
'<eword>' が期待す る 場所に他の文字が指定 さ れ て い ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-20
アセ ン ブ ラのエ ラ ーおよび警告
A1501E
シ フ ト オ プ シ ョ ン が範囲外で す。 使用可能な値は 0、 8、 16、 ま た は 24 で す。
A1502W
レ ジ ス タ <reg> は caller-save レ ジ ス タ で あ り 、 こ の操作で は有効で は あ り ま せ ん
A1505E
不正な式の型。 論理式が期待 さ れ ま す。
A1506E
累算器は accx の形式で あ る必要が あ り ま す。 x の範囲は 0 ~ <max> で す。
A1507E
レ ジ ス タ リ ス ト の 2 番目の パ ラ メ ー タ は最初の パ ラ メ ー タ 以上で あ る 必要が あ り ま す。
A1508E
構造体が一致 し ま せ ん。 条件が期待 さ れ ま す。
A1509E
不正な シ ン ボ ル型で す。 ラ ベ ル ま た は weak 外部シ ン ボ ル が期待 さ れ ま す。
A1510E
イ ミ デ ィ エ ー ト 0x<imm> は、 0 ~ 255 お よ び ロ ー テ ー シ ョ ン で表す こ と は で き ま せ ん
A1511E
イ ミ デ ィ エ ー ト は 2 つ の デ ー タ 処理命令の組み合わ せ で表す こ と は で き ま せ ん
A1512E
イ ミ デ ィ エ ー ト 0x<val> が こ の操作の範囲外で す。 許可 さ れ て い る 値は <mini> ~ <maxi>
で す。
A1513E
シ ン ボ ル が見つ か ら な い か、 シ ン ボ ル型が '<name>' に対 し て互換性が あ り ま せ ん
A1514E
不正な グ ロ ー バ ル名 '<name>'
A1515E
不正な ロ ー カ ル名 '<name>'
A1516E
不正な シ ン ボ ル '<name>'。 定義 さ れ て い な い か、 外部で す。
A1517E
<operator> と 等 し い予期 し な い演算子
A1539E
リ ン ク 順序の依存関係 '<name>' が エ リ ア で は あ り ま せ ん
A1540E
self に リ ン ク 順序の依存関係 を 指定す る こ と は で き ま せ ん
A1541E
<code> は有効な条件 コ ー ド で は あ り ま せ ん
A1542E
マ ク ロ 名 <name1> お よ び <name2>[ パ ラ メ ー タ ] が矛盾 し て い ま す
A1543W
マ ク ロ パ ラ メ ー タ の デ フ ォ ル ト 値が空で す
A1544E
空の PSR フ ィ ー ル ド 指定子は無効で す。 フ ィ ー ル ド に は c、 x、 s、 f の い ず れ か 1 つ を 指定す
る必要が あ り ま す。
A1545U
1 つ の <objfmt> フ ァ イ ル に セ ク シ ョ ン が多す ぎ ま す
A1546W
ス タ ッ ク ポ イ ン タ の更新に よ っ て、 8 バ イ ト の ス タ ッ ク の ア ラ イ メ ン ト が分断 さ れ る 可能性が あ り
ます
例:
PUSH {r0}
ス タ ッ ク は外部境界上の 8 バ イ ト 境界で整列 さ れていなければな ら ない
ので、 奇数の レ ジ ス タ を プ ッ シ ュ す る と 、 こ の警告が発生 し ます。 こ の
警告はデフ ォ ル ト では非表示にな っ てい ます。 こ の警告が表示 さ れ る よ
う にす る には、 --diag_warning 1546 を使用 し ます。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
A1547W
--diag_warning=tag{, tag} (2-13 ページ) .
PRESERVE8 デ ィ レ ク テ ィ ブ が自動的に設定 さ れ ま し た
例:
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-21
アセ ン ブ ラのエ ラ ーおよび警告
PUSH {r0,r1}
こ の警告は、 PRESERVE8 デ ィ レ ク テ ィ ブがユーザに よ っ て明示的に設
定 さ れず、 アセ ンブ ラ に よ っ て自動的に設定 さ れたために発生 し ます。
こ の警はデフ ォ ル ト では非表示にな っ てい ます。 こ の警告が表示 さ れ る
よ う にす る には、 --diag_warning 1547 を使用 し ます。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
A1548W
•
--diag_warning=tag{, tag} (2-13 ページ)
•
REQUIRE8、 PRESERVE8 (6-90 ページ) .
コ ー ド に SP の イ ン デ ク ス / オ フ セ ッ ト さ れ た LDRD/STRD が含 ま れ て い ま す が、 REQUIRE8 が
設定 さ れ て い ま せ ん
例:
PRESERVE8
STRD r0,[sp,#8]
こ の警告は、 REQUIRE8 デ ィ レ ク テ ィ ブが必要であ る のに設定 さ れなか っ
た場合に発生 し ます。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
A1549W
REQUIRE8、 PRESERVE8 (6-90 ページ) .
PRESERVE8 を 設定せ ず に REQUIRE8 を 設定す る の は異常で す。
例:
PRESERVE8 {FALSE}
REQUIRE8
STRD r0,[sp,#8]
A1550U
入力 と 出力の フ ァ イ ル名が同 じ で す。
A1551E
Comdef エ リ ア <name> を 非 comdat グ ル ー プ に追加す る こ と は で き ま せ ん
A1560E
定数以外の バ イ ト リ テ ラ ル値は サ ポ ー ト さ れ て い ま せ ん
A1561E
MERGE セ ク シ ョ ン と STRING セ ク シ ョ ン は デ ー タ セ ク シ ョ ン で あ る必要が あ り ま す
A1562E
Merge セ ク シ ョ ン の エ ン ト リ サ イ ズ は 0 よ り 大 き く す る必要が あ り ま す
A1563W
命令に よ っ て CPU が <stalls> サ イ ク ル の間 ス ト ー ル し ま す
--cpu オプシ ョ ン に よ っ て選択 さ れたプ ロ セ ッ サのパ イ プ ラ イ ン が原因
で、 コ ー ド 内で発生す る 可能性があ る イ ン タ ー ロ ッ ク に関す る 情報を、
アセ ン ブ ラ か ら 取得で き ます。 そのためには、 armasm --diag_warning 1563
を使用 し て アセ ンブル し ます。
注
--cpu オプシ ョ ン で Cortex-A8 な ど のマルチ イ ッ シ ュ ープ ロ セ ッ サが指定
さ れてい る 場合、 イ ン タ ー ロ ッ ク 警告は正 し く ない こ と があ り ます。
警告 A1746W も 参照 し て下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1572E
演算子 SB_OFFSET_11_0 は、 LDR/STR 命令で の み使用で き ま す
A1573E
演算子 SB_OFFSET_19_12 は、 デ ー タ 処理命令で の み使用で き ま す
A1574E
"<str>" の 1 つ以上の フ ラ グ文字が期待 さ れ ま す
A1575E
bit[0] が 1 に等 し い BLX は ア ー キ テ ク チ ャ 上定義 さ れ て い ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-22
アセ ン ブ ラのエ ラ ーおよび警告
A1576E
不正な コ プ ロ セ ッ サ レ ジ ス タ 名シ ン ボ ル
A1577E
不正な コ プ ロ セ ッ サ名シ ン ボ ル
A1578E
不正な浮動小数点 レ ジ ス タ 名シ ン ボ ル '<sym>'
A1581W
<no_padbytes> バ イ ト の パ デ ィ ン グ が ア ド レ ス <address> で追加 さ れ ま し た
生成 さ れ る コ ー ド にパデ ィ ン グバ イ ト が追加 さ れ る 場合、 デフ ォ ル ト で
はアセ ン ブ ラ に よ る 警告が生成 さ れます。 こ の問題は、 よ り 大 き な境界
が必要な ア ド レ ス で命令 / デ ィ レ ク テ ィ ブが使用 さ れ る と 、 常に発生 し
ます。 例えば、 い く つかの Thumb 命令の後で確実に ARM 命令が 4 バ イ
ト 境界で開始 さ れ る 必要があ る 場合や、 DCB の後に DCD が続 く 場合です。
以下に例を示 し ます。
AREA Test, CODE, READONLY
THUMB
ThumbCode
MOVS r0, #1
ADR r1, ARMProg
BX r1
; ALIGN ; <<< 最初の警告 を 回避す る た め に追加
ARM
ARMProg
ADD r0,r0,#1
BX LR
DCB 0xFF
DCD 0x1234
END
生成 さ れ る 警告は、 次の と お り です。
A1581W : 2 バ イ ト の パ デ ィ ン グ が ア ド レ ス 0x6 で追加 さ れ ま し た
8 00000008 ARM
A1581W : 3 バ イ ト の パ デ ィ ン グ が ア ド レ ス 0x11 で追加 さ れ ま し た
13 00000014 DCD 0x1234
こ の警告は、 Thumb 専用 コ ー ド で ADR を使用 し た場合に も 発生 し ます。
ADR Thumb 疑似命令は、 ワ ー ド 境界で整列 さ れた ア ド レ ス し か ロ ー ド で
き ませんが、 Thumb コ ー ド 内の ラ ベルは ワー ド 境界で整列 さ れていない
場合があ り ます。 ALIGN を使用 し て、 Thumb コ ー ド 内のア ド レ ス を 4 バ イ
ト 境界調整で整列 さ せ る こ と がで き ます。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ADR (PC 相対) (3-28 ページ)
•
ADR (レ ジ ス タ 相対) (3-30 ページ)
ARM DUI 0496GJ
ID 0 5 1 6 1 2
•
DCB (6-25 ページ)
•
DCD、 DCDU (6-26 ページ)
•
ALIGN (6-70 ページ) .
A1582E
リ ン ク 順序 エ リ ア '<name>' が定義 さ れ て い ま せ ん
A1583E
グ ル ー プ シ ン ボ ル '<name>' が定義 さ れ て い ま せ ん
A1584W
モ ー ド <mode> は こ の命令で は使用で き ま せ ん
A1585E
オ ペ ラ ン ド 型 (<typ1>) は演算子 <op> に対 し て不正で す
A1586E
オ ペ ラ ン ド 型 (<typ1>, <typ2>) は演算子 <op> に対 し て不正で す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-23
アセ ン ブ ラのエ ラ ーおよび警告
A1587E
レ ジ ス タ リ ス ト 内の レ ジ ス タ 数 <count> が多す ぎ ま す。 最大数は <max> で す。
A1593E
不正な ア ラ イ メ ン ト 。 転送サ イ ズ UIMM * <dt> と 一致 し て い る 必要が あ り ま す。
A1595E
不正な ア ラ イ メ ン ト 。 <st> * <dt> と 一致 し て い る か、 <st> が 4 の場合、 64 で あ る 必要が
あ り ます
A1596E
dt st の組み合わ せ に対 し て ア ラ イ メ ン ト <align> が不正で す
A1598E
不正な レ ジ ス タ リ ス ト の長 さ
A1599E
サ ブ ス ク リ プ ト が範囲外で す。 0 と <max_index> の間に あ る必要が あ り ま す。
A1600E
セ ク シ ョ ン 型は、 SHT_LOOS と SHT_HIUSER の範囲内に あ る必要が あ り ま す。
A1601E
イ ミ デ ィ エ ー ト を 表現で き ま せ ん
A1603E
IT ブ ロ ッ ク 内の こ の命令は、 予測不能な結果に な り ま す
A1604W
デ ス テ ィ ネ ー シ ョ ン へ の Thumb 分岐で、 <max> バ イ ト に整列 さ れ て い ま せ ん
A1606E
シ ン ボ ル属性 <attr1> は、 属性 <attr2> と と も に使用で き ま せ ん
A1607E
Thumb-2 ワ イ ド 分岐命令が使用 さ れ ま し た が、 Thumb-1 ナ ロ ー分岐命令に フ ィ ッ ト す る オ フ セ ッ
ト です
A1608W
MOV pc,<rn> 命令が使用 さ れ ま し た が、 BX <rn> の方が適 し て い ま す
A1609W
MOV <rd>,pc 命令で は ビ ッ ト 0 に設定 さ れ な い た め、 戻 り 値の ア ド レ ス は作成 さ れ ま せ ん
こ の警告は、 Thumb 状態での実行中に PC の現在値が レ ジ ス タ に コ ピー
さ れ る 場合に発生 し ます。 こ の方法で復帰ア ド レ ス を作成 し よ う と す る
と 、 ッ ト 0 が設定 さ れないため、 失敗 し ます。 こ の命令に BX し よ う と
す る と 、 状態が ARM に切 り 替え ら れます。
復帰ア ド レ ス を作成す る には、 以下の コ ー ド を使用 し ます。
MOV r0, pc
ADDS r0, #1
その後は、 以下の よ う に し て こ の警告を非表示に し て も 安全です。
--diag-suppress 1609
A1611E
こ の命令で は、 レ ジ ス タ リ ス ト を 2 ず つ イ ン ク リ メ ン ト す る こ と は で き ま せ ん
A1612E
<type> ア ド レ シ ン グ は <instr> で は使用で き ま せ ん
A1615E
全 レ ー ン へ の単一の要素 ま た は構造体の ス ト ア が定義 さ れ て い ま せ ん
A1616E
命令、 オ フ セ ッ ト 、 イ ミ デ ィ エ ー ト 、 ま た は レ ジ ス タ の組み合わ せ が、 現在の命令セ ッ ト で サ ポ ー
ト さ れてい ません
こ の問題は、 オペ ラ ン ド の無効な組み合わせを使お う と し た場合に発生
す る こ と があ り ます。 例えば、 Thumb での次の よ う な コ ー ド です。
MOV r0, #1 ; /* 不可 */
MOVS r0, #1 ; /* OK */
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
第 3 章 ARM 命令 と Thumb 命令 .
A1617E
指定 し た幅は、 現在の命令セ ッ ト で サ ポ ー ト さ れ て い ま せ ん
A1618E
指定 し た命令は、 現在の命令セ ッ ト で サ ポ ー ト さ れ て い ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-24
アセ ン ブ ラのエ ラ ーおよび警告
A1619E
指定 し た条件が、 前の IT と 整合性が あ り ま せ ん
A1620E
フ ァ イ ル '<filename>' へ の書 き 込み中に エ ラ ー が発生 し ま し た : <reason>
A1621E
Thumb コ ー ド か ら ARM コ ー ド へ の CBZ ま た は CBNZ で す
A1622E
負の レ ジ ス タ オ フ セ ッ ト は、 現在の命令セ ッ ト で サ ポ ー ト さ れ て い ま せ ん
A1623E
オ フ セ ッ ト は、 現在の命令セ ッ ト で サ ポ ー ト さ れ て い ま せ ん
A1624W
Thumb コ ー ド か ら ARM コ ー ド へ の分岐で す
A1625W
ARM コ ー ド か ら Thumb コ ー ド へ の分岐で す
A1626W
Thumb コ ー ド か ら ARM コ ー ド へ の BL で す
A1627W
ARM コ ー ド か ら Thumb コ ー ド へ の BL で す
こ の問題は、 こ の フ ァ イ ル内に ARM コ ー ド か ら Thumb コ ー ド への (ま
たはその逆への) 分岐があ る 場合に発生 し ます。 通常は、 Thumb コ ー ド
を別のアセ ン ブ ラ フ ァ イ ルに移動す る こ と で解決で き ます。 その後、 リ
ン ク 時に、 リ ン カに よ っ て必要な イ ン タ ーワ ー ク ベニ アが追加 さ れま
す。
A1630E
指定 さ れ た プ ロ セ ッ サ ま た は ア ー キ テ ク チ ャ は ARM 命令 を サ ポ ー ト し て い ま せ ん
Cortex-M3 お よ び Cortex-M1 な ど の ARM M プ ロ フ ァ イ ルプ ロ セ ッ サで
は、 Thumb 命令セ ッ ト だけが実装 さ れてお り 、 ARM 命令セ ッ ト は実装
さ れてい ません。 セ ン ブ リ フ ァ イ ルにい く つかの ARM 固有の命令が含
まれてお り 、 こ れ ら のいずれかのプ ロ セ ッ サ用に ビル ド さ れてい る と 考
え ら れ ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1631E
ロ ー ド / ス ト ア で は、 左へ 1、 2、 ま た は 3 し か シ フ ト で き ま せ ん
A1632E
IT AL ブ ロ ッ ク で は、 ELSE を 使用で き ま せ ん
A1633E
LDR rx,=
A1634E
Thumb の LDRD/STRD で は、 レ ジ ス タ オ フ セ ッ ト ア ド レ シ ン グ モ ー ド は あ り ま せ ん
A1635E
CBZ/CBNZ は、 条件付 き に す る こ と は で き ま せ ん
A1636E
Thumb で は、 フ ラ グ設定 MLA は サ ポ ー ト さ れ て い ま せ ん
A1637E
行の読み出 し で エ ラ ー が発生 し ま し た : <reason>
A1638E
Thumb 内の レ ジ ス タ オ フ セ ッ ト の ロ ー ド / ス ト ア で は、 ラ イ ト バ ッ ク は使用で き ま せ ん
A1639E
条件付 き の DCI は Thumb モ ー ド で の み使用で き ま す
A1640E
オ フ セ ッ ト は 4 の倍数で あ る 必要が あ り ま す
A1641E
Thumb で は、 強制ユ ー ザ モ ー ド LDM/STM は使用で き ま せ ん
A1642W
再配置 さ れ た ナ ロ ー分岐は推奨 さ れ ま せ ん
A1643E
単精度 / 倍精度値に対 し て命令 を 使用で き る か ど う か判断で き ま せ ん
A1644E
単精度 レ ジ ス タ を FLDMX/LSTMX と と も に使用す る こ と は で き ま せ ん
A1645W
<old> に <new> を 代入 し ま し た
pseudo 命令は、 ロ ー ド ワ ー ド 形式で し か使用で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-25
アセ ン ブ ラのエ ラ ーおよび警告
armasm は、 アセ ン ブル中に命令を置換 し た場合に警告を生成す る こ と が
あ り ます。
以下に例を示 し ます。
•
ADD negative_number は SUB positive_number と 同 じ です。
•
MOV negative_number は MVN positive_number と 同 じ です。
•
CMP negative_number は CMN positive_number と 同 じ です。
Thumb 命令セ ッ ト では、 予測不能な 単一レ ジ ス タ LDM が LDR に変換 さ
れます。
こ の警告はデフ ォ ル ト では非表示にな っ てい ますが、 --diag_warning 1645
を使っ て、 表示 さ れ る よ う にす る こ と がで き ます。
以下に例を示 し ます。
AREA foo, CODE
ADD r0, #-1
MOV r0, #-1
CMP r0, #-1
次の よ う にアセ ンブルす る と 、
armasm --diag_warning 1645
アセ ン ブ ラ に よ っ て次の よ う に通知 さ れます。
警告 : A1645W : ADD に SUB を 代入 し ま し た
3 00000000 ADD r0, #-1
警告 : A1645W : MOV に MVN を 代入 し ま し た
4 00000004 MOV r0, #-1
警告 : A1645W : CMP に CMN を 代入 し ま し た
5 00000008 CMP r0, #-1
生成 さ れた コ ー ド は、 次の よ う にな り ます。
foo
0x00000000: e2400001 ..@. SUB r0,r0,#1
0x00000004: e3e00000 .... MVN r0,#0
0x00000008: e3700001 ..p. CMN r0,#1
A1647E
不正な レ ジ ス タ 名シ ン ボ ル で す。 整数 レ ジ ス タ が必要で す
構文の こ の位置には、 整数 ( コ ア) レ ジ ス タ を指定す る 必要があ り ま
す。
A1648E
不正な レ ジ ス タ 名シ ン ボ ル で す。 ワ イ ヤ レ ス MMX SIMD レ ジ ス タ が必要で す
こ の メ ッ セージは ワ イ ヤ レ ス MMX に関連 し てい ます。
A1649E
不正な レ ジ ス タ 名シ ン ボ ル で す。 ワ イ ヤ レ ス MMX ス テ ー タ ス / 制御 ま た は汎用 レ ジ ス タ が必要で
す
こ の メ ッ セージは ワ イ ヤ レ ス MMX に関連 し てい ます。
A1650E
不正な レ ジ ス タ 名シ ン ボ ル で す。 任意の ワ イ ヤ レ ス MMX レ ジ ス タ が必要で す
こ の メ ッ セージは ワ イ ヤ レ ス MMX に関連 し てい ます。
A1651E
デ ス テ ィ ネ ー シ ョ ン レ ジ ス タ が R15 で な い場合の TANDC、 TEXTRC、 TORC 命令が定義 さ れ て い
ません
こ の メ ッ セージは ワ イ ヤ レ ス MMX に関連 し てい ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1652W
FLDMX/FSTMX 命令は ARMv6 で廃止 さ れ る予定で す。 精度が不明な値 を 保存お よ び復元す る に
は、 FLDMD/FSTMD 命令 を 使用 し て下 さ い。
A1653E
ス テ ー タ ス / 制御 レ ジ ス タ を 使 っ た シ フ ト 命令が定義 さ れ て い ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-26
アセ ン ブ ラのエ ラ ーおよび警告
A1654E
バ イ ト ま た は ハ ー フ ワ ー ド の ロ ー ド / ス ト ア 時に は、 外部シ ン ボ ル に ア ク セ ス で き ま せ ん
A1655E
ハ ー フ ワ ー ド / ワ ー ド / ダ ブ ル ワ ー ド が整列 さ れ て い な い場合、 命令は予測不能で す
A1656E
こ の命令 を 使用す る 場合、 タ ー ゲ ッ ト は少な く と も ワ ー ド 境界で整列 し て い る必要が あ り ま す
A1657E
WLDRB/WLDRH = 定数 を 使用 し て、 バ イ ト / ハ ー フ ワ ー ド リ テ ラ ル を ロ ー ド で き ま せ ん
A1658W
<opt> の サ ポ ー ト は廃止 さ れ る予定で す
armasm に渡 さ れたオプシ ョ ンは、 現在では廃止 さ れ る 予定にな っ てい ま
す。 現在利用可能なオプシ ョ ン を確認す る には、 armasm --help を使用 し
て下 さ い。
『アセ ンブ ラ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
第 3 章 ARM 命令 と Thumb 命令 .
A1659E
ARM/Thumb と Thumb-2EE 間で、 B/BL/BLX を 実行で き ま せ ん
A1660E
こ の レ ジ ス タ タ イ プ で は ス カ ラ イ ン デ ク ス を 指定で き ま せ ん
A1661E
こ の レ ジ ス タ で は ア ラ イ メ ン ト を 指定で き ま せ ん
A1662E
こ の レ ジ ス タ タ イ プ で は デ ー タ 型 を 指定で き ま せ ん
A1663E
こ の レ ジ ス タ で は既に デ ー タ 型が指定 さ れ て い ま す
A1664E
デ ー タ 型指定子 を 認識で き ま せ ん
A1665E
デ ー タ 型の サ イ ズ は、 8、 16、 32、 64 の い ず れ か で あ る必要が あ り ま す
A1666E
浮動小数点型の サ イ ズ は、 32 ま た は 64 で あ る必要が あ り ま す
A1667E
多項式型の サ イ ズ は、 8 ま た は 16 で あ る 必要が あ り ま す
A1668E
命令に指定 さ れ て い る デ ー タ 型の数が多す ぎ ま す
A1669E
こ の命令で は デ ー タ 型指定子 を 使用で き ま せ ん
A1670E
64 ビ ッ ト ダ ブ ル ワ ー ド 型の レ ジ ス タ 式が必要で す
A1671E
128 ビ ッ ト ク ワ ッ ド ワ ー ド 型の レ ジ ス タ 式が必要で す
A1672E
64 ビ ッ ト ま た は 128 ビ ッ ト の レ ジ ス タ 式が必要で す
A1673E
ソ ー ス の 2 つ の デ ー タ 型は、 型 と サ イ ズ が同 じ で あ る 必要が あ り ま す
A1674E
ソ ー ス の第 1 オ ペ ラ ン ド は、 第 2 オ ペ ラ ン ド の 2 倍の サ イ ズ の整数型で あ る必要が あ り ま す
A1675E
デ ス テ ィ ネ ー シ ョ ン の デ ー タ 型 と サ イ ズ は、 ソ ー ス と 同 じ で あ る必要が あ り ま す
A1676E
デ ス テ ィ ネ ー シ ョ ン は、 ソ ー ス の 2 倍の サ イ ズ の整数型で あ る 必要が あ り ま す
A1677E
デ ス テ ィ ネ ー シ ョ ン は、 ソ ー ス と 同 じ 型で、 サ イ ズ は 1/2 に す る必要が あ り ま す
A1678E
デ ス テ ィ ネ ー シ ョ ン は、 ソ ー ス と 同 じ サ イ ズ の型な し で あ る 必要が あ り ま す
A1679E
デ ス テ ィ ネ ー シ ョ ン は、 ソ ー ス と 同 じ 型で、 サ イ ズ は 2 倍に す る必要が あ り ま す
A1680E
デ ス テ ィ ネ ー シ ョ ン は、 符号な し 型で、 サ イ ズ は ソ ー ス の符号付 き 型の 1/2 で あ る必要が あ り ま
す
A1681E
デ ス テ ィ ネ ー シ ョ ン は、 符号な し 型で、 サ イ ズ は ソ ー ス の符号付 き 型 と 同 じ で あ る 必要が あ り ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-27
アセ ン ブ ラのエ ラ ーおよび警告
A1682E
デ ス テ ィ ネ ー シ ョ ン が符号な し / 符号付 き 型で ソ ー ス が浮動小数点型で あ る か、 デ ィ ス テ ィ ネ ー
シ ョ ン が浮動小数点型で ソ ー ス が符号な し / 符号付型で あ る 必要が あ り ま す。 サ イ ズ は両方 と も
32 ビ ッ ト に し て く だ さ い
A1683E
デ ー タ 型指定子が、 こ の命令の有効な エ ン コ ー デ ィ ン グ と 一致 し て い ま せ ん
A1684E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の、 符号付 き 型 ま た は符号な し 型で あ る必要が
あ り ます
A1685E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の、 符号付 き 型、 符号な し 型、 ま た は浮動小数
点型で あ る必要が あ り ま す
A1686E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の、 符号付 き 型 ま た は浮動小数点型で あ る必要
があ り ます
A1687E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の、 整数型 ま た は浮動小数点型で あ る 必要が あ
り ます
A1688E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の型な し で あ る 必要が あ り ま す
A1689E
ソ ー ス オ ペ ラ ン ド は、 <n> ビ ッ ト の浮動小数点型で あ る 必要が あ り ま す
A1690E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の符号付 き 型で あ る 必要が あ り ま す
A1691E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の、 整数型、 浮動小数点型、 ま た は多項式型で
あ る 必要が あ り ま す
A1692E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の、 符号付 き 型、 符号な し 型、 ま た は多項式型
で あ る 必要が あ り ま す
A1693E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の、 符号な し 型 ま た は浮動小数点型で あ る必要
があ り ます
A1694E
現在の命令セ ッ ト で は、 命令 を 条件付 き に す る こ と は で き ま せ ん
条件付 き 命令は、 指定 さ れた命令セ ッ ト では使用で き ません。 例えば、
命令 MOVEQ は、 ARM お よ び 32 ビ ッ ト Thumb コ ー ド で使用で き 、 16 ビ ッ
ト Thumb コ ー ド では使用で き ません。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1695E
こ の命令で は ス カ ラ イ ン デ ク ス を 使用で き ま せ ん
A1696E
32、 64、 ま た は 128 ビ ッ ト の レ ジ ス タ 式が必要で す
A1697E
32 ま た は 64 ビ ッ ト の VFP レ ジ ス タ 式が必要で す
A1698E
32 ビ ッ ト の VFP レ ジ ス タ 式が必要で す
A1699E
こ れ ら の レ ジ ス タ で は、 64 ビ ッ ト の デ ー タ 型は使用で き ま せ ん
A1700E
ソ ー ス オ ペ ラ ン ド は、 サ イ ズ が <min> ~ <max> の整数型で あ る 必要が あ り ま す
A1701E
ソ ー ス オ ペ ラ ン ド で は、 16 ビ ッ ト の多項式型は使用で き ま せ ん
A1702E
こ の命令で は、 レ ジ ス タ Dm は ス カ ラ に で き ま せ ん
A1704E
こ の デ ー タ 型で は、 レ ジ ス タ Dm は D0 ~ D<upper> の範囲内で あ る必要が あ り ま す
A1705W
ア セ ン ブ ラ が Qm レ ジ ス タ を D<rnum>[<idx>] に変換 し ま し た
A1706E
レ ジ ス タ Dm は ス カ ラ で あ る必要が あ り ま す
A1708E
こ の命令の第 3 オ ペ ラ ン ド は、 定数式で あ る 必要が あ り ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-28
アセ ン ブ ラのエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1709E
ARM ま た は ス カ ラ レ ジ ス タ 式が必要で す
A1710E
現在の レ ジ ス タ と 以前の レ ジ ス タ の差は <diff> で あ る必要が あ り ま す
A1711E
こ の命令で は、 レ ジ ス タ リ ス ト 内に ス カ ラ レ ジ ス タ を 含め る こ と は で き ま せ ん
A1712E
LSB と WIDTH を 組み合わ せ て使用す る と 、 動作が不安定に な り ま す
A1713E
APSR の フ ィ ー ル ド 指定子が無効で す。 APSR_ の後に n、 z、 c、 v、 q、 g の い ず れ か を 指定 し て
く ださい
A1714E
APSR の フ ィ ー ル ド 指定子の組み合わ せ が無効で す
A1715E
PSR が タ ー ゲ ッ ト ア ー キ テ ク チ ャ で定義 さ れ て い ま せ ん
A1716E
VMOV 命令の デ ス テ ィ ネ ー シ ョ ン は、 ARM 整数 レ ジ ス タ 、 32 ビ ッ ト 単精度 レ ジ ス タ 、 64 ビ ッ ト
ダ ブ ル ワ ー ド レ ジ ス タ 、 ま た は 64 ビ ッ ト ダ ブ ル ワ ー ド ス カ ラ レ ジ ス タ で あ る 必要が あ り ま す
A1717E
ソ ー ス レ ジ ス タ は、 ARM 整数 レ ジ ス タ 、 32 ビ ッ ト 単精度 レ ジ ス タ 、 ま た は 64 ビ ッ ト ダ ブ ル ワ ー
ド ス カ ラ レ ジ ス タ で あ る必要が あ り ま す
A1718E
ソ ー ス レ ジ ス タ は、 ARM 整数 レ ジ ス タ ま た は デ ス テ ィ ネ ー シ ョ ン と 同 じ レ ジ ス タ で あ る 必要が あ り
ます
A1719W
こ の PSR 名は今後の リ リ ー ス で廃止 さ れ る予定で す
A1720E
ソ ー ス レ ジ ス タ は、 64 ビ ッ ト ダ ブ ル ワ ー ド ス カ ラ レ ジ ス タ で あ る必要が あ り ま す
A1721E
デ ス テ ィ ネ ー シ ョ ン レ ジ ス タ に は、 all-lanes 指定子 を 使用で き ま せ ん
A1722E
IT ブ ロ ッ ク 内で は ラ ベ ル は使用で き ま せ ん
A1723W
__RELOC は廃止 さ れ る予定で す。 新 し い RELOC デ ィ レ ク テ ィ ブ を 使用 し て く だ さ い
A1724E
RELOC は、 命令や デ ー タ 生成デ ィ レ ク テ ィ ブ の直後に の み使用で き ま す
A1725W
コ マ ン ド ラ イ ン で の 'armasm inputfile outputfile' と い う 形式の使用は、 今後サ ポ ー ト さ
れ な く な る予定で す
A1726W
--max_cache を 8MB 未満に す る こ と は、 推奨 さ れ ま せ ん
A1727W
16 ビ ッ ト の Thumb MOVS 命令の使用に よ り イ ミ デ ィ エ ー ト が生成 さ れ た可能性が あ り ま す
A1728E
ソ ー ス レ ジ ス タ は、 デ ス テ ィ ネ ー シ ョ ン レ ジ ス タ と 同 じ 型で あ る必要が あ り ま す
A1729E
レ ジ ス タ リ ス ト に は、 32 ビ ッ ト 単精度 レ ジ ス タ ま た は 64 ビ ッ ト ダ ブ ル ワ ー ド レ ジ ス タ の み を 含
める こ と ができ ます
A1730E
こ れ ら の命令で は、 IA ま た は DB ア ド レ シ ン グ モ ー ド の み を 使用で き ま す
A1731E
ク ワ ッ ド ワ ー ド レ ジ ス タ で は、 レ ジ ス タ リ ス ト の イ ン ク リ メ ン ト を 2 以上に す る こ と は で き ま せ
ん
A1732E
レ ジ ス タ リ ス ト に は、 1 ~ 4 個の連続す る ダ ブ ル ワ ー ド レ ジ ス タ を 含め る必要が あ り ま す
A1733E
レ ジ ス タ リ ス ト に は 2 個 ま た は 4 個の ダ ブ ル ワ ー ド レ ジ ス タ を 含め る 必要が あ り ま す。 4 個含
め る 場合は、 イ ン ク リ メ ン ト を 2 に す る こ と は で き せ ん
A1734E
レ ジ ス タ リ ス ト に は、 イ ン ク リ メ ン ト 1 ま た は 2 の <n> 個の ダ ブ ル ワ ー ド レ ジ ス タ を 含め る必
要が あ り ま す
A1735E
ポ ス ト イ ン デ ク ス オ フ セ ッ ト は、 ロ ー ド / ス ト ア さ れ た バ イ ト 数 (<n>) と 同 じ に し て く だ さ い
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-29
アセ ン ブ ラのエ ラ ーおよび警告
A1736E
リ ス ト 内の レ ジ ス タ 数 と 要素数 を 同 じ に し て く だ さ い
A1737E
PC や SP は オ フ セ ッ ト レ ジ ス タ と し て使用で き ま せ ん
A1738E
イ ミ デ ィ エ ー ト 値の大 き さ が、 こ の操作で対応 し て い る範囲 を 超え ま し た
A1739W
単一の VMOV 命令に よ り 定数が生成 さ れ ま し た。 2 番目の命令は NOP で す
A1740E
FRAME PUSH デ ィ レ ク テ ィ ブ や FRAME POP デ ィ レ ク テ ィ ブ で は、 0 未満の バ イ ト 数 を 指定で き
ません
A1741E
命令 を 条件付 き に す る こ と は で き ま せ ん
A1742E
LSL #Imm が必要で す
A1744E
レ ジ ス タ の ア ラ イ メ ン ト は、 16 ~ 256 の範囲内の 2 の累乗に す る 必要が あ り ま す
A1745W
こ の レ ジ ス タ の組み合わ せ は廃止 さ れ る予定な の で、 ア ー ク テ ク チ ャ の今後の リ ビ ジ ョ ン で は機能
し な い可能性が あ り ま す
こ の警告は、 以下の条件がすべて満た さ れた場合に生成 さ れます。
•
廃止予定の レ ジ ス タ の組み合わせを使用 し てい る 場合。 以下に例
を示 し ます。
PUSH
{r0, pc}
•
32 ビ ッ ト Thumb 命令をサポー ト す る タ ーゲ ッ ト アーキ テ ク チ ャ 、
つま り ARMv6T2 以降の タ ーゲ ッ ト アーキ テ ク チ ャ に対 し て アセ ン
ブル し てい る 場合。
•
ARM コ ー ド にアセ ン ブル し てい る 場合。
注
A1746W
•
ARM コ ー ド ではな く Thumb を アセ ン ブル し ていて、 タ ーゲ ッ ト
アーキ テ ク チ ャ が ARMv6T2 以降の と き には、 代わ り にエ ラ ー
A1477E が生成 さ れ ます。
•
32 ビ ッ ト Thumb 命令をサポー ト し ていないアーキ テ ク チ ャ ま たは
プ ロ セ ッ サに対 し て、 つま り 、 ARMv6T2 以前のすべての ARM
アーキ テ ク チ ャ に対 し てセ ン ブルを行 う と き には、 デフ ォ ル ト で、
診断は表示 さ れ ません。
こ の CPU で は、 命令ス ト ー ル が正 し く 診断 さ れ な い可能性が あ り ま す
例えば次の よ う に指定 し て ビル ド す る と 、 コ ー ド の最適化に役立つ メ ッ
セージがアセ ン ブ ラ に よ っ て生成 さ れ ます。
--diag_warning 1563 --cpu=Cortex-A8
ただ し 、 こ れ ら の メ ッ セージは信頼性が高 く あ り ません。 アセ ン ブ ラ
は、 Cortex-A8 や Cortex-A9 な ど の最新のプ ロ セ ッ サに対応す る 推奨 メ ッ
セージ を成す る ためです。
警告 A1563W も 参照 し て下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1753E
メ モ リ バ リ ア の オ プ シ ョ ン を 認識で き ま せ ん
A1754E
ス カ ラ レ ジ ス タ の型 を 変更で き ま せ ん
A1755E
こ の レ ジ ス タ に は、 既に ス カ ラ イ ン デ ク ス が指定 さ れ て い ま す
A1756E
す べ て の レ ジ ス タ の デ ー タ 型 を 指定す る必要が あ り ま す
A1757W
シ ン ボ ル属性は角括弧内に な け れ ば な り ま せ ん。 そ の他の構文は廃止 さ れ ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-30
アセ ン ブ ラのエ ラ ーおよび警告
A1758W
こ の デ ィ レ ク テ ィ ブ を 使用 し た複数の シ ン ボ ル の エ ク ス ポ ー ト は廃止 さ れ ま す
A1759E
指定 さ れ た プ ロ セ ッ サ ま た は ア ー キ テ ク チ ャ は Thumb-2EE 命令 を サ ポ ー ト し て い ま せ ん
A1760W
ビ ル ド 属性 <from> は '<attr>' で す
A1761W
<from> の '<diff>' と の ビ ル ド 属性の差
A1762E
分岐の オ フ セ ッ ト 0x<val> が、 16 ビ ッ ト の Thumb 分岐の範囲外で す。 32 ビ ッ ト の Thumb
分岐で エ ン コ ー ド で き ま す。
こ の問題は、 分岐命令へのオ フ セ ッ ト が 16 ビ ッ ト の分岐に収ま ら ない
大 き さ であ る 場合に、 Thumb 用にアセ ン ブルす る と 発生 し ます。 アセ ン
ブ ラ 32 ビ ッ ト 分岐を生成す る よ う に指示す る ために、 命令に .W 接尾文
字を追加す る こ と がで き ます。
A1763W
こ の命令に IT ブ ロ ッ ク が挿入 さ れ ま し た
こ の こ と は、 32 ビ ッ ト Thumb の多 く の条件付 き 命令を使用で き る よ う
に、 アセ ン ブ ラ に よ っ て IT ブ ロ ッ ク が挿入 さ れた こ と を示 し てい ます。
例えば、
MOVEQ r0,r1
こ の警告はデフ ォ ル ト ではオ フ にな っ てい ます。 有効にす る には、
--diag_warning A1763 を使用 し ます。
A1764W
<name> 命令は ア ー キ テ ク チ ャ <arch> 以上で は廃止 さ れ ま す
A1765E
ALIGN の パ デ ィ ン グ値の サ イ ズ は 1、 2、 ま た は 4 バ イ ト で あ る必要が あ り ま す
こ の問題は、 ALIGN デ ィ レ ク テ ィ ブで任意に指定で き る padsize 属性が使
用 さ れ、 そのサ イ ズが不適切であ っ た場合に発生 し ます。 整列先のパ ラ
メ ー タ は参照 さ れ ません。 パ ラ メ ー タ には、 2^0 か ら 2^31 の範囲で、 2
の累乗値を指定で き ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1766W
コ ー ド の パ デ ィ ン グ値の サ イ ズ は最低で も <size> バ イ ト 必要で す。 デ ー タ と し て処理 し ま す
A1767E
属性の後に予期 し な い文字が あ り ま す
A1768E
'=' が あ り ま せ ん
A1769E
不正な NEON ま た は VFP シ ス テ ム レ ジ ス タ 名シ ン ボ ル
A1771E
<exp> ビ ッ ト の ビ ッ ト パ タ ー ン が期待 さ れ る場所の不正な浮動小数点 ビ ッ ト パ タ ー ン
A1772E
デ ス テ ィ ネ ー シ ョ ン は符号付 き ま た は符号な し の整数型、 ソ ー ス は 32 ビ ッ ト ま た は 64 ビ ッ ト
の浮動小数点型で あ る 必要が あ り ま す
A1773E
浮動小数点変換は 32 ビ ッ ト 単精度型 と 64 ビ ッ ト 倍精度型の間で の み可能で す
A1774E
固定小数点変換は 16 ビ ッ ト ま た は 32 ビ ッ ト の符号付 き 型 ま た は符号な し 型で の み可能で す
A1775E
こ れ ら の型の間で変換す る こ と は で き ま せ ん
A1776E
こ の演算は 32 ビ ッ ト 単精度浮動小数点型で は使用で き ま せ ん
A1777E
<n> が シ ン ボ ル型の範囲外で す。 値は <min> と <max> の間に あ る 必要が あ り ま す
A1778E
<n> が シ ン ボ ル の バ イ ン デ ィ ン グ の範囲外で す。 値は <min> と <max> の間に あ る 必要が あ り
ます
A1779E
DCDO は READONLY シ ン ボ ル '<key>' に は使用で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-31
アセ ン ブ ラのエ ラ ーおよび警告
A1780E
不明な ATTR デ ィ レ ク テ ィ ブ
A1781E
タ グ #<id> は ATTR を 使用 し て設定す る こ と は で き ま せ ん
A1782E
タ グ #<id> は ATTR <cmd> を 使用 し て設定す る必要が あ り ま す
A1783E
属性 ス コ ー プ は ラ ベ ル か セ ク シ ョ ン の名前で あ る必要が あ り ま す
A1784W
weak の定義 '<sym>' は再配置 さ れ ま せ ん
A1785E
マ ク ロ '<macuse>' が見つ か り ま せ ん が、 '<macdef>' は存在 し て い ま す
A1786W
SP を 使用す る こ の命令は廃止 さ れ る予定な の で、 ア ー ク テ ク チ ャ の今後の リ ビ ジ ョ ン で は機能 し
な い可能性が あ り ま す
こ の警告は、 以下の条件がすべて満た さ れた場合に生成 さ れます。
•
廃止予定の方法で SP を明示的に使用 し てい る 場合。 以下に例を示
し ます。
ADD sp, r0, #100
•
32 ビ ッ ト Thumb 命令をサポー ト す る タ ーゲ ッ ト アーキ テ ク チ ャ 、
つま り ARMv6T2 以降の タ ーゲ ッ ト アーキ テ ク チ ャ に対 し て アセ ン
ブル し てい る 場合。
•
ARM コ ー ド にアセ ン ブル し てい る 場合。
ARM では、 対応す る Thumb 命令で使用で き ない ARM 命令での SP の明
示的な使用を廃止す る 予定です。 下位互換性のために こ の よ う な廃止予
定の レ ジ ス タ を ARM 命令で ま だ使用で き ます。 ま た、 アセ ン ブ ラ の コ
マ ン ド ラ イ ン オプシ ョ ン --diag_suppress=1786 を使用 し て こ の警告を非表
示にで き ます。 ただ し 、 アーキ テ ク チ ャ の今後の リ ビ ジ ョ ン では機能 し
ない可能性があ る ので、 コ ー ド を変更す る こ をお勧め し ます。
例えば、 上記の よ う な廃止予定の SP の使用を以下の よ う な シーケ ン ス
に置 き 換え ら れ ます。
ADD r1, r0, #100
MOV sp, r1
注
•
ARM コ ー ド ではな く Thumb を アセ ン ブル し ていて、 タ ーゲ ッ ト
アーキ テ ク チ ャ が ARMv6T2 以降の と き には、 代わ り にエ ラ ー
A1477E が生成 さ れ ます。
•
32 ビ ッ ト Thumb 命令をサポー ト し ていないアーキ テ ク チ ャ ま たは
プ ロ セ ッ サに対 し て、 つま り 、 ARMv6T2 以前のすべての ARM
アーキ テ ク チ ャ に対 し てセ ン ブルを行 う と き には、 デフ ォ ル ト で、
診断は表示 さ れ ません。
A1787W
VFP ベ ク タ モ ー ド の使用は ARMv7 で廃止 さ れ る予定で す
A1788W
こ の命令で の PC の明示的使用は廃止 さ れ る予定な の で、 ア ー ク テ ク チ ャ の今後の リ ビ ジ ョ ン で は
機能 し な い可能性が あ り ま す
こ の警告は、 以下の条件がすべて満た さ れた場合に生成 さ れます。
•
PC を廃止予定の方法で、 例えば以下の よ う に明示的に使用 し た場
合。
CMP pc, #1
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-32
アセ ン ブ ラのエ ラ ーおよび警告
•
32 ビ ッ ト Thumb 命令をサポー ト す る タ ーゲ ッ ト アーキ テ ク チ ャ 、
つま り ARMv6T2 以降の タ ーゲ ッ ト アーキ テ ク チ ャ に対 し て アセ ン
ブル し てい る 場合。
•
ARM コ ー ド にアセ ン ブル し てい る 場合。
ARM 命令での PC の明示的な使用は、 下位互換性のために現在で も 使用
で き ますが、 そのほ と ん ど の廃止が予定 さ れてい ます。 こ の メ ッ セージ
は、 セ ン ブ ラ の コ マ ン ド ラ イ ン オプシ ョ ン --diag_suppress=1788 を使用す
る と 非表示にで き ます。 ただ し 、 アーキ テ ク チ ャ の今後の リ ビ ジ ョ ン で
は機能 し ない可能性があ る ので、 コ ー ド を変更す る こ と をお勧 し ます。
注
•
ARM コ ー ド ではな く Thumb を アセ ン ブル し ていて、 タ ーゲ ッ ト
アーキ テ ク チ ャ が ARMv6T2 以降の と き には、 代わ り にエ ラ ー
A1477E が生成 さ れ ます。
•
32 ビ ッ ト Thumb 命令をサポー ト し ていないアーキ テ ク チ ャ ま たは
プ ロ セ ッ サに対 し て、 つま り 、 ARMv6T2 以前のすべての ARM
アーキ テ ク チ ャ に対 し てセ ン ブルを行 う と き には、 デフ ォ ル ト で、
診断は表示 さ れ ません。
A1789W
こ の命令で の PC の明示的使用は廃止 さ れ る予定な の で、 ア ー ク テ ク チ ャ の今後の リ ビ ジ ョ ン で は
機能 し な い可能性が あ り ま す。 た だ し 、 デ ス テ ィ ネ ー シ ョ ン レ ジ ス タ で は例外で す。
A1790W
ベ ー ス レ ジ ス タ を ロ ー ド す る Thumb LDM で ラ イ ト バ ッ ク は無視 さ れ ま す
こ の問題は、 ベース レ ジ ス タ の ラ イ ト バ ッ ク を示す感嘆符を誤っ て追加
し た こ と に よ っ て発生 し ます。
以下に例を示 し ます。
LDM r0!, {r0-r4}
こ れは、 r0 がベース レ ジ ス タ であ り 、 デス テ ィ ネーシ ョ ン レ ジ ス タ リ ス
ト に も 含まれてい る ため、 正 し い命令ではあ り ません。 こ の場合、 アセ
ン ブ ラ は ラ イ ト バ ッ ク を無視 し て、 次の コ ー ド を生成 し ます。
LDM r0, {r0-r4}
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1791W
タ グ #<id> の以前の値は オ ー バ ー ラ イ ド さ れ ま す
A1792E
未定義の ビ ル ド 属性の タ グ
A1793E
変換は 16 ビ ッ ト 浮動小数点 と 32 ビ ッ ト 浮動小数点の間で の み可能で す
A1794E
変換演算に は 2 つ の デ ー タ 型が必要で す
A1795E
ソ ー ス お よ び デ ス テ ィ ネ ー シ ョ ン の ベ ク タ に は <n> 個の要素 を 含め る 必要が あ り ま す
A1796E
レ ジ ス タ 型は デ ー タ 型 と 互換性が あ り ま せ ん
A1797E
指定 さ れ た FPU は CPU ア ー キ テ ク チ ャ と 互換性が あ り ま せ ん
A1798W
出力は WYSIWYG (<output>) で は あ り ま せ ん
A1799W
出力の WYSIWYG プ ロ パ テ ィ は チ ェ ッ ク さ れ て い ま せ ん
A1800W
行に対す る出力は あ り ま せ ん
A1801E
命令は現在の命令セ ッ ト で は予測不能で す
A1803E
不正な シ ス テ ム命令名
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-33
アセ ン ブ ラのエ ラ ーおよび警告
A1804E
命令に対す る 不正な CP14 ま た は CP15 レ ジ ス タ 名
A1805W
レ ジ ス タ は読み出 し 専用で す
A1806W
レ ジ ス タ は書 き 込み専用で す
A1807W
命令は タ ー ゲ ッ ト の CPU で NOP と し て実行 さ れ ま す
A1808E
生成 さ れ た オ ブ ジ ェ ク ト フ ァ イ ル は破損 し て い る可能性が あ り ま す (<reason>)
A1809W
命令に よ っ て PC は使用前に整列 さ れ ま す。 セ ク シ ョ ン は少な く と も 4 バ イ ト 境界で整列 さ れ て
い る 必要が あ り ま す
こ の警告は、 以下のすべての条件が満た さ れた場合に適用 さ れます。
•
PC 相対オ フ セ ッ ト を ワ ー ド 境界で整列 さ れた PC を必要 と す る
Thumb 命令で使用 し てい る
•
こ の命令を含んでい る コ ー ド セ ク シ ョ ン に 4 バ イ ト 以下の境界整
列が使用 さ れてい る
•
命令が リ ン ク 時に再配置 さ れなか っ た (アセ ン ブ ラ が生成す る 再
配置が原因)
こ れ ら の条件がすべて満た さ れた場合、 かつ、 こ の命令が リ ン ク 時に 4
バ イ ト 整列のア ド レ ス に配置 さ れなか っ た場合、 命令は実行時に誤っ た
ア レ ス で演算 さ れ る 可能性があ り ます。 こ れは、 命令に よ っ て PC が使
用前に 4 バ イ ト 整列 し た ア ド レ ス に整列 さ れ る こ と が原因です。
以下の例では、 セ ク シ ョ ン内の整列が 2 バ イ ト で行われてい る ため こ の
警告に よ っ て診断 さ れた Thumb 内の LDR 命令を示 し ます。
AREA ||.text||, CODE, READONLY, ALIGN=1
THUMB
LDR r0, [pc, #8] ; 警告 A1809W を 生成
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1810E
ベ ー ス レ ジ ス タ の ラ イ ト バ ッ ク 値が不明確で す。 '[rn,#n]!' ま た は '[rn],#n' 構文 を 使用 し
て く ださい
A1811E
フ ィ ル値の サ イ ズ は 1、 2、 ま た は 4 バ イ ト で あ る と 同時に、 フ ィ ル サ イ ズ の因数で あ る 必要が あ
り ま す。
A1812W
ARM 命令 と Thumb 命令の そ れ ぞ れ逆の命令セ ッ ト で は命令 を ア セ ン ブ ル で き ま せ ん
A1813W
16 ビ ッ ト の命令が使用 さ れ た可能性の あ る箇所で 32 ビ ッ ト の命令が使用 さ れ ま し た
A1814E
出力 フ ァ イ ル が あ り ま せ ん
A1815E
SHT_ARM_EXIDX セ ク シ ョ ン に は、 リ ン ク 順序の依存関係が設定 さ れ て い る必要が あ り ま す
A1816E
CODE16 で は不明な オ ペ コ ー ド '<name>' で す が、 THUMB に は存在 し ま す。
A1817W
<scope> で は ATTR タ グ #<id> の設定が無視 さ れ ま す
A1818W
<scope> で は ATTR COMPAT フ ラ グ <flag> お よ び ベ ン ダ '<vendor>' の設定が無視 さ れ ま
す
A1819W
<scope> で は タ グ #<id> の設定 と 互換性の あ る ATTR が無視 さ れ ま す
A1820E
レ ジ ス タ と プ ロ セ ッ サ モ ー ド が命令に対 し て有効で は あ り ま せ ん
A1846E
CPSR ま た は SPSR に無効な フ ィ ー ル ド が指定 さ れ ま し た :
の う ち い ず れ か が直後に続 く 必要が あ り ま す
A1847E
再配置 を 2 つ以上必要 と す る 式は使用で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
少な く と も c、 x、 s、 ま た は f
3-34
アセ ン ブ ラのエ ラ ーおよび警告
こ の問題は、 ARM 命令のアセ ン ブ リ 時に、 他の領域のデー タ にア ク セ
ス し よ う と す る と 、 発生す る こ と があ り ます。 例えば、
LDR r0, [pc, #label - . - 8]
ま たは こ れ と 同等の
LDR r0, [pc, #label-{PC}-8]
で、 label が別の AREA で定義 さ れてい る 場合です。
コ ー ド を、 次の よ う に、 よ り 単純で同等の構文を使 う よ う に変更 し て下
さ い。
LDR r0, label
こ の よ う にすれば、 label が同 じ 領域にあ っ て も 、 別の領域にあ っ て も 、
正 し く 動作 し ます。
A1848W
IT ブ ロ ッ ク の状態の変化
A1875E
レ ジ ス タ Rn は こ の命令の R0 ~ R7 で あ る 必要が あ り ま す
指定 さ れた レ ジ ス タ が R0 ~ R7 の範囲内にな る よ う に変更 し ます。
A1903E
最初の パ ス に行が あ り ま せ ん。 ア セ ン ブ ル で き ま せ ん
命令や指令が、 アセ ン ブ ラ のパ ス 2 に表示 さ れてパ ス 1 では表示 さ れな
い場合に発生 し ます。
以下の例は、 行がパ ス 1 に表示 さ れない場合を示 し てい ます。
AREA x,CODE
[ :DEF: foo
num EQU 42 ; こ の時点で foo を パ ス 1 で定義 し て い な い た め、
; パ ス 1 で は ア セ ン ブ ラ に こ の行は表示 さ れ な い
]
foo DCD num
END
A1907W
こ の シ ン ボ ル の テ ス ト は確認済み で す。 こ れ は、 第 2 パ ス の エ ラ ー の原因 と な る可能性が あ り ま
す。
こ の診断はデフ ォ ル ト では非表示にな っ てい ます。 A1903E、 A1909E、
ま たは A1908E エ ラ ーが発生す る 可能性があ る 状況を特定す る には、 こ
れを有効にて下 さ い。
A1908E
ラ ベ ル '<name>' の値が一致 し て い ま せ ん : パ ス 1 で は <val1>、 パ ス 2 で は <val2> で
した
以下の例では、 パ ス 1 では x の値が 0x0004+r9、 パ ス 2 では x の値が
0x0000+r0 であ る ため、 こ のエ ラ ーが生成 さ れます。
map 0, r0
if :lnot: :def: sym
map 0, r9
field 4
endif
x
field 4
sym LDR r0, x
A1909E
第 2 パ ス に行が あ り ま せ ん。 ア セ ン ブ ル で き ま せ ん
命令や指令が、 アセ ン ブ ラ のパ ス 1 に表示 さ れてパ ス 2 では表示 さ れな
い場合に発生 し ます。
以下の例は、 行がパ ス 2 に表示 さ れない場合を示 し てい ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-35
アセ ン ブ ラのエ ラ ーおよび警告
AREA x,CODE
[ :LNOT: :DEF: foo
MOV r1, r2 ; foo が既に定義 さ れ て い る た め、
; パ ス 2 で は ア セ ン ブ ラ に こ の行は表示 さ れ な い
]
foo MOV r3, r4
END
ARM DUI 0496GJ
ID 0 5 1 6 1 2
A1916E
不明な組み込み変数 '<name>'
A1993E
こ の演算子で は <objfmt> で サ ポ ー ト さ れ な い再配置が必要で す
A1994E
こ の デ ィ レ ク テ ィ ブ は、 <objfmt> で は サ ポ ー ト さ れ て い ま せ ん
A1995E
weak の定義は、 <objfmt> で は サ ポ ー ト さ れ て い ま せ ん
A1996E
TYPE は、 IMPORT の WEAK の後以外で は使用で き ま せ ん
A1997E
weak 外部シ ン ボ ル の予想 さ れ る エ イ リ ア ス
A1998E
Comdat 関連 エ リ ア に は Comdat 関連セ レ ク シ ョ ン 型が必要で す
A1999E
Comdat 関連 エ リ ア を 別の Comdat 関連 エ リ ア に す る こ と は で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
3-36
第4章
リ ン カのエ ラ ーおよび警告
以下の ト ピ ッ ク では、 リ ン カ (armlink) のエ ラ ーお よ び警告 メ ッ セージについて説明 し
てい ます。
•
armlink のエ ラ ーお よ び警告 メ ッ セージの非表示 (4-2 ページ)
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
armlink のエ ラ ーお よ び警告 メ ッ セージの リ ス ト (4-3 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-1
リ ン カのエ ラ ーおよび警告
4.1
armlink のエ ラ ーおよび警告 メ ッ セージの非表示
リ ン カのすべての警告は、 コ ンパ イ ラ の警告の場合 と 同様に、 --diag_suppress を使っ
て非表示にす る こ と がで き ます。 以下に例を示 し ます。
--diag_suppress 6306
一部のエ ラ ー (L6220E、 L6238E、 L6784E な ど) は、 次の よ う に し て警告に降格で
き ます。
--diag_warning
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-2
リ ン カのエ ラ ーおよび警告
4.2
armlink のエ ラ ーおよび警告 メ ッ セージの リ ス ト
armlink のエ ラ ーお よ び警告 メ ッ セージは、 次の と お り です。
L6000U
メ モ リ が不足 し て い ま す。
こ の エ ラ ー は、 RVCT v4.0 以前 に よ っ て 報告 さ れ ま す。 こ の エ ラ ー と
対処方法 を 表示す る 理由の詳細 に つ い て は、 エ ラ ー L6815U の説明 を 参
照 し て 下 さ い。
L6001U
フ ァ イ ル <filename> か ら 読み出す こ と が で き ま せ ん で し た。
L6002U
フ ァ イ ル <filename> を 開け ま せ ん で し た : <reason>
こ の メ ッ セ ー ジ は、 リ ン カ の コ マ ン ド ラ イ ン で指定 さ れ た フ ァ イ ル を リ
ン カ が開け な か っ た こ と を 示 し て い ま す。 フ ァ イ ル へ の ア ク セ ス に 問題
が あ る か、 コ マ ン ド ラ イ ン の指定 に 誤 り が あ る こ と を 示 し て い る 場合 も
あ り ま す。 こ の メ ッ セ ー ジ は、 一般的 に は次の よ う な場合 に 表示 さ れ ま
す。
•
L6002U : フ ァ イ ル /armlib/{libname} を 開け ま せ ん で し た : そ の よ う な フ ァ イ ル ま
たはデ ィ レ ク ト リ はあ り ません
ラ イ ブ ラ リ の パ ス を --libpath で指定す る か、 ARMCCnLIB 環境変数
を install_directory\lib に 設定 し て 下 さ い。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
—
--libpath=pathlist (2-97 ペ ー ジ) .
『ARM コ ン パ イ ラ ツ ー ル チ ェ ー ン の概要』 の以下の セ ク シ ョ ン を 参
照 し て 下 さ い。
—
ツールチ ェーンの環境変数 (2-16 ペ ー ジ) .
注
ARM コ ン パ イ ラ ツ ー ル チ ェ ー ン v5.0 以降で は、 armlink は
ARMCCnLIB 環境変数 を 設定す る 必要は あ り ま せ ん。
•
エ ラ ー : armlink : L6002 : フ ァ イ ル errors=ver.txt を 開け ま せ ん で し た
errors=ver.txt の前 に 二重 ダ ッ シ ュ (--) が な い こ と が原因で す。
オ プ シ ョ ン に 接頭文字 -- ま た は - を 付け な い と 、 リ ン カ は オ プ
シ ョ ン を 入力 フ ァ イ ル と し て 扱い、 指定 さ れ た す べ て の フ ァ イ ル
を ロ ー ド す る こ と が で き な く な る の で、 リ ン ク 手順が失敗 し ま す。
正 し い ス イ ッ チ は、 --errors=ver.txt で す。
L6003U
フ ァ イ ル <filename> に書 き 込む こ と が で き ま せ ん で し た。
指定 さ れ た フ ァ イ ル を 読み出す と き 、 開 く と き 、 ま た は そ の フ ァ イ ル に
書 き 込む と き に 、 フ ァ イ ル I/O エ ラ ー が発生 し ま し た 。
L6004U
<library> の ラ イ ブ ラ リ メ ン バ リ ス ト <list> が不完全で す。
こ の問題は、 ラ イ ブ ラ リ オ ブ ジ ェ ク ト の リ ス ト 内 に ホ ワ イ ト ス ペ ー ス が
あ る 場合 に 発生す る こ と が あ り ま す。
以下の例は失敗 し ま す。
armlink x.lib(foo.o, bar.o)
致命的な エ ラ ー : L6004U : x.lib の メ ン バ リ ス ト の ラ イ ブ ラ リ メ ン バ が足 り ま せ ん。
以下の例は成功 し ま す。
armlink x.lib(foo.o,bar.o)
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-3
リ ン カのエ ラ ーおよび警告
他の一般的な原因 と し て 、 ラ イ ブ ラ リ が破損 し て い る こ と 、 ラ イ ブ ラ リ
の形式が サ ポ ー ト さ れ て い な い も の で あ る こ と な ど も 考 え ら れ ま す。
L6005U
<library> の メ ン バ リ ス ト の最後に余分な文字が あ り ま す。
L6006U
実行領域 <regionname> の オ ー バ ー ア ラ イ メ ン ト 値は OVERALIGN 属性 を 使用 し て指定 さ れ て
い ま せ ん。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
入力セ ク シ ョ ン記述の構文 (4-24 ペ ー ジ)
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
実行領域 と 入力セ ク シ ョ ンのオーバーア ラ イ メ ン ト (8-61 ペ ー
ジ) .
L6007U
フ ァ イ ル <filename> の形式 を 認識で き ま せ ん。
リ ン カ が認識で き る 形式は、 オ ブ ジ ェ ク ト フ ァ イ ル で は ELF、 ラ イ ブ
ラ リ フ ァ イ ル で は AR で す。 指定 さ れ た フ ァ イ ル は、 破損 し て い る か、
リ ン カ 認識で き な い形式の フ ァ イ ル で す。
L6008U
メ ン バ <mem> (<lib>) の形式 を 認識で き ま せ ん。
リ ン カ が認識で き る ラ イ ブ ラ リ メ ン バ オ ブ ジ ェ ク ト の フ ァ イ ル形式は、
ELF で す。 指定 さ れ た ラ イ ブ ラ リ メ ン バ は、 破損 し て い る か、 リ ン カ
が認で き な い形式の フ ァ イ ル で す。
L6009U
フ ァ イ ル <filename> : エ ン デ ィ ア ン が一致 し ま せ ん。
指定 さ れ た フ ァ イ ル ま た は オ ブ ジ ェ ク ト の エ ン デ ィ ア ン が他の入力 フ ァ
イ ル の エ ン デ ィ ア ン と 一致 し ま せ ん で し た 。 リ ン カ は 1 つ の リ ン ク 手
順内で ビ ッ グ エ ン デ ィ ア ン と リ ト ル エ ン デ ィ ア ン の い ず れ の オ ブ ジ ェ ク
ト の入力 も 処理で き ま す が、 両方が混在す る 入力は処理で き ま せ ん。
L6010U
フ ァ イ ル <filename> に対 し て stderr を 再 オ ー プ ン で き ま せ ん で し た : <reason>
指定 さ れ た フ ァ イ ル を 読み出す と き 、 開 く と き 、 ま た は そ の フ ァ イ ル に
書 き 込む と き に 、 フ ァ イ ル I/O エ ラ ー が発生 し ま し た 。
L6011U
無効な整数定数 : <number>
こ の問題は、 不正な整数定数 を 指定す る と 発生 し ま す。 整数は、 接頭文
字 &、 0x、 ま た は 0X を 付け て 、 16 進形式で入力で き ま す。 接尾文字
k ま た は m を 使 う と 、 1024 ま た は 1024*1024 の倍数 を 指定で き ま
す。
L6015U
リ ン ク す る入力 フ ァ イ ル が見つ か り ま せ ん で し た。
リ ン カ に は、 リ ン ク す る オ ブ ジ ェ ク ト フ ァ イ ル を 少な く と も 1 つ は指
定 し な け れ ば な り ま せ ん。
例 え ば、 次の リ ン ク を 実行 し よ う す る と 、
armlink lib.a -o foo.axf
上記の エ ラ ー が発生 し ま す。
代わ り に 、 次の よ う に す る 必要が あ り ま す。
armlink foo_1.o foo_2.o lib.a -o foo.axf
L6016U
ARM DUI 0496GJ
ID 0 5 1 6 1 2
オ ブ ジ ェ ク ト / ラ イ ブ ラ リ <object> で シ ン ボ ル テ ー ブ ル が見つ か ら な い か破損 し て い ま す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-4
リ ン カのエ ラ ーおよび警告
こ の問題は、 GNU ツ ー ル で ビ ル ド し た ラ イ ブ ラ リ と リ ン ク す る 場合 に
発生 し ま す。 GNU ar は、 互換性の な い情報 を 生成す る 場合が あ る た め
で す。
こ の問題 を 解決す る に は、 ar を armar に 置 き 換 え て 、 同 じ コ マ ン ド ラ
イ ン 引数 を 使用 し ま す。 ま た 、 エ ラ ー か ら 回復す る た め に 、 armar -s を
使用 し て シ ン ボ ル テ ー ブ ル を 再 ビ ル ド す る こ と も で き ま す。
L6017U
ラ イ ブ ラ リ <library> の シ ン ボ ル テ ー ブ ル に無効な エ ン ト リ が含 ま れ て い ま す。 オ フ セ ッ ト
0x<offset> に メ ン バ が あ り ま せ ん。
ラ イ ブ ラ リ が破損 し て い る 可能性が あ り ま す。 再 ビ ル ド し て み て 下 さ
い。
L6018U
<filename> は有効な ELF フ ァ イ ル で は あ り ま せ ん。
L6019U
<filename> は有効な 64 ビ ッ ト ELF フ ァ イ ル で は あ り ま せ ん。
L6020U
<filename> は有効な 32 ビ ッ ト ELF フ ァ イ ル で は あ り ま せ ん。
L6022U
オ ブ ジ ェ ク ト <objname> に複数の <table> が含 ま れ て い ま す。
オ ブ ジ ェ ク ト フ ァ イ ル に エ ラ ー が あ る か、 破損 し て い ま す。 こ の問題
は、 コ ン パ イ ラ の エ ラ ー を 示 し て い る 場合が あ り ま す。 購入元 に お問い
合せ下 さ い。
L6024U
ラ イ ブ ラ リ <library> に無効な メ ン バ名が含 ま れ て い ま す。
指定 さ れ た フ ァ イ ル が有効な ラ イ ブ ラ リ フ ァ イ ル で は あ り ま せ ん。 エ
ラ ー が含 ま れ て い る か、 破損 し て い ま す。 再 ビ ル ド し て み て 下 さ い。
L6025U
非 ラ イ ブ ラ リ フ ァ イ ル <library> か ら メ ン バ を 抽出す る こ と が で き ま せ ん。
指定 さ れ た フ ァ イ ル が有効な ラ イ ブ ラ リ フ ァ イ ル で は あ り ま せ ん。 エ
ラ ー が含 ま れ て い る か、 破損 し て い ま す。 再 ビ ル ド し て み て 下 さ い。
L6026U
ELF フ ァ イ ル <filename> に は リ ト ル エ ン デ ィ ア ン ま た は ビ ッ グ エ ン デ ィ ア ン の エ ン コ ー デ ィ ン
グ が含 ま れ て い ま せ ん
ELF フ ァ イ ル が無効で す。 再 ビ ル ド し て み て 下 さ い。
L6027U
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) は無効 ま た は不明な
型で す。
こ の問題は、 コ ン パ イ ラ の エ ラ ー を 示 し て い る 場合が あ り ま す。 購入元
に お問い合わ せ下 さ い。
L6028U
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) に無効な オ フ セ ッ ト
が含 ま れ て い ま す。
こ の問題は、 コ ン パ イ ラ の エ ラ ー を 示 し て い る 場合が あ り ま す。 購入元
に お問い合わ せ下 さ い。
L6029U
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) に無効 ま た は不明な
シ ン ボ ル が関係 し て い ま す。
再配置が以下の い ず れ か の シ ン ボ ル に 関係 し て い ま す。
•
無効か、 オ ブ ジ ェ ク ト シ ン ボ ル テ ー ブ ル に 存在 し な い
•
再配置で使用す る の に 適 し て い な い
こ の問題は、 コ ン パ イ ラ の エ ラ ー を 示 し て い る 場合が あ り ま す。 購入元
に お問い合わ せ下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-5
リ ン カのエ ラ ーおよび警告
L6030U
領域 <regname> の オ ー バ ー ア ラ イ メ ン ト <overalignment> は、 4 以上で、 2 の累乗で な け
れ ば な り ま せ ん。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
実行領域の属性 (4-13 ペ ー ジ)
入力セ ク シ ョ ン記述の構文 (4-24 ペ ー ジ)
•
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
実行領域 と 入力セ ク シ ョ ンのオーバーア ラ イ メ ン ト (8-61 ペ ー
ジ) .
L6031U
ス キ ャ ッ タ 記述 フ ァ イ ル <filename> を オ ー プ ン で き ま せ ん で し た : <reason>
指定 さ れ た フ ァ イ ル を 開 こ う と し た と き に 、 I/O エ ラ ー が発生 し ま し
た 。 こ の問題は、 無効な フ ァ イ ル名が原因で あ る 場合が あ り ま す。
L6032U
無効な <text> <value> (最大 <max_value>) が <object> で見つ か り ま し た
L6033U
シ ン ボ ル <symbolname> (<objname> 内) は、 無効な セ ク シ ョ ン に対 し て相対的に定義 さ れ て
い ま す。
L6034U
シ ン ボ ル <symbolname> (<objname> 内) に無効な値が含 ま れ て い ま す。
こ の問題の最 も 一般的な原因は、 セ ク シ ョ ン 相対シ ン ボ ル の値が セ ク
シ ョ ン 境界 を 超 え て い る こ と で す。
L6035U
再配置 #<rel_class> : <rel_number> (ZI セ ク シ ョ ン <objname> (<secname>) 内) は無
効な型で す。
ZI セ ク シ ョ ン は R_ARM_NONE 型以外の再配置 を 持 つ こ と は で き ま せ
ん。
L6036U
フ ァ イ ル <filename> を ク ロ ー ズ で き ま せ ん : <reason>
指定 さ れ た フ ァ イ ル を 閉 じ る と き に 、 I/O エ ラ ー が発生 し ま し た 。
L6037U
'<arg>' は オ プ シ ョ ン '<option>' の有効な引数で は あ り ま せ ん。
こ の引数は、 こ の オ プ シ ョ ン で は有効で は あ り ま せ ん。 こ の問題の原因
は、 ス ペ ル の間違い、 ま た は引数の サ ポ ー ト さ れ て い な い省略形の使用
で あ る 可能性が あ り ま す。
L6038U
更新 さ れ た SYMDEFS を 書 き 込む た め の一時 フ ァ イ ル を 作成で き ま せ ん で し た。
SYMDEFS 出力の保存 に 必要な一時 フ ァ イ ル の作成中 に 、 I/O エ ラ ー が
発生 し ま し た 。
L6039W
#<rel_class> か ら の再配置 : <rel_number> (<objname> (<secname>) 内) に
<symname> が関係 し て い ま す。 R-Type の再配置の作成が ス キ ッ プ さ れ ま す。 型 <rel_type>
対応す る R-Type の再配置は存在 し ま せ ん。
--reloc は、対応す る R-Type 再配置 を 持 た な い再配置 を 含む オ ブ ジ ェ
ク ト と 共 に 使用 さ れ ま す。
L6041U
内部 エ ラ ー が発生 し ま し た (<clue>)。
購入元 に お問い合わ せ下 さ い。
L6042U
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) に マ ッ ピ ン グ シ ン ボ
ル (#<idx>、 最後の マ ッ プ シ ン ボ ル = #<last>) が関係 し て い ま す。
マ ッ ピ ン グ シ ン ボ ル に 関係 し て い る 再配置は使用で き ま せ ん。 こ の問題
は、 コ ン パ イ ラ の エ ラ ー を 示 し て い る 場合が あ り ま す。 購入元 に お問い
わ せ下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-6
リ ン カのエ ラ ーおよび警告
L6043U
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) に、 範囲外の シ ン ボ
ル (#<val>、 範囲 = 1-<max>) が関係 し て い ま す。
再配置は、 範囲 (1 - n) 内の シ ン ボ ル に 関 し て の み実行で き ま す (n
は シ ン ボ ル の数)。
L6047U
こ の イ メ ー ジ の サ イ ズ (<actual_size> バ イ ト ) が こ の バ ー ジ ョ ン の リ ン カ に許可 さ れ て い る 最
大サ イ ズ を 超過 し て い ま す
L6048U
リ ン カ が リ ン ク 手順 (<id>) を 続行で き ま せ ん。 こ の バ ー ジ ョ ン の リ ン カ で は こ の イ メ ー ジ は作成
さ れ ま せ ん。
L6049U
リ ン カ が リ ン ク 手順 (<id>) を 続行で き ま せ ん。 こ の バ ー ジ ョ ン の リ ン カ で は指定 さ れ た 1 つ以
上の ラ イ ブ ラ リ と リ ン ク で き ま せ ん。
L6050U
こ の イ メ ー ジ の コ ー ド サ イ ズ (<actual_size> バ イ ト ) が こ の バ ー ジ ョ ン の リ ン カ に許可 さ れ て
い る 最大サ イ ズ を 超過 し て い ま す
L6058E
リ ン カ ス ク リ プ ト <script> を 行 <lineno> で解析 し て い る と き に構文 エ ラ ー が発生 し ま し た:
<token>
リ ン ク ld ス ク リ プ ト に は、 行番号 に 構文 エ ラ ー が あ り ま す。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6064E
第 9 章 armlink におけ る GNU ld ス ク リ プ ト のサポー ト .
ELF 実行可能 フ ァ イ ル <filename> が コ マ ン ド ラ イ ン で入力 と し て指定 さ れ ま し た
原因 と し て 、 -c コ ン パ イ ラ オ プ シ ョ ン を 指定せ ず に 、 コ ン パ イ ラ か ら
オ ブ ジ ェ ク ト フ ァ イ ル を 出力 と し て 指定 し た こ と が考 え ら れ ま す。 以下
に 例 を 示 し ま す。
armcc file.c -o file.o
armlink file.o -o file.axf
『 コ ン パ イ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6065E
-c (3-36 ペ ー ジ) .
ロ ー ド 領域 <name> (サ イ ズ <size>) が 0x80000000 の書 き 込み可能な連続 ブ ロ ッ ク の最大サ
イ ズ を 超え て い ま す。
リ ン カ が 2GB を 超 え る セ グ メ ン ト の書 き 込み を 試み ま し た 。 セ グ メ ン
ト の最大サ イ ズ は 2GB で す。
L6175E
EMPTY 領域 <regname> に セ ク シ ョ ン セ レ ク タ を 含め る こ と は で き ま せ ん。
L6176E
EMPTY 属性の な い領域 <regname> に対 し て負の max_size を 使用す る こ と は で き ま せ ん。
EMPTY 属性の あ る 領域 だ け が、 負の max-size を 持 つ こ と が で き ま
す。
L6177E
+offset 形式の ベ ー ス ア ド レ ス を 使用す る 領域 <regname> に対 し て負の max_size を 使用す
る こ と は で き ま せ ん。
+offset 形式の ベ ー ス ア ド レ ス を 使用す る 領域は、 負の max-size を
持 つ こ と が で き ま せ ん。
L6188E
特別な セ ク シ ョ ン <sec1> が、 <obj1> と <obj2> に よ っ て複数回定義 さ れ て い ま す。
特別な セ ク シ ョ ン は、 "Veneer$$Code" の よ う に 、 1 回 だ け使用で き る セ
ク シ ョ ン で す。
L6195E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
'<attr1>' と '<attr2>' の両方 を 領域 <regname> に対 し て指定す る こ と は で き ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-7
リ ン カのエ ラ ーおよび警告
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
ロ ー ド 領域の属性 (4-8 ペ ー ジ)
•
•
実行領域の属性 (4-13 ペ ー ジ)
ロ ー ド 領域 と 実行領域のア ド レ ス属性 (4-16 ペ ー ジ)
•
•
ロ ー ド 領域のア ド レ ス属性の継承規則 (4-20 ペ ー ジ)
実行領域のア ド レ ス属性の継承規則 (4-21 ペ ー ジ)
•
•
RELOC ア ド レ ス属性の継承規則 (4-22 ペ ー ジ) .
L6200E
シ ン ボ ル <symbolname> が、 <object1> と <object2> に よ っ て複数回定義 さ れ て い ま す。
次の よ う な、 こ の問題の一般的な例は、
シ ン ボ ル __stdout が、 retarget.o と stdio.o に よ っ て複数回定義 さ れ て い ま す。
__stdout の競合す る 2 つ の定義が retarget.o と stdio.o に あ る と い う
こ と を 意味 し て い ま す。 retarget.o 内の定義は、 ユ ー ザ自身が記述 し た
も の で す。 stdio.o 内の定義は、 デ フ ォ ル ト の実装で あ り 、 誤 っ て リ ン
ク さ れ た 可能性が あ り ま す。
stdio.o に は、 多 く の シ ン ボ ル定義 と 、 フ ァ イ ル関数 (fopen、 fclose、
fflush な ど ) の実装が含 ま れ て い ま す。
stdio.o は、 い く つ か の未解決の参照 を 解決す る た め に リ ン ク さ れ て い
ま す。
stdio.o が リ ン ク さ れ て い る 理由 を 特定す る に は、 verbose リ ン ク オ プ
シ ョ ン ス イ ッ チ を 使 う 必要が あ り ま す。 以下 に 例 を 示 し ま す。
armlink [... 通常の オ プ シ ョ ン ...] --verbose --list err.txt
そ の後、 err.txt を 調べ て 、 リ ン カ が何の た め に 何 を ど こ か ら リ ン ク し
て い る か を 詳 し く 確認 し ま す。
以下の作業が必要 に な る 場合 も あ り ま す。
fopen、 fclose、 fflush な ど の呼び出 し を 削除す る 。
•
•
関数の _sys_xxxx フ ァ ミ リ を 再実装す る 。
『ARM® C お よ び C++ ラ イ ブ ラ リ と 浮動小数点サ ポ ー ト の使用』 の以下
の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6201E
C お よ び C++ ラ イ ブ ラ リ での入出力関数のカ ス タ マ イ ズ
(2-99 ペ ー ジ) .
オ ブ ジ ェ ク ト <objname> に複数の エ ン ト リ セ ク シ ョ ン が含 ま れ て い ま す。
入力 オ ブ ジ ェ ク ト で、 エ ン ト リ ポ イ ン ト を 複数指定 し て い ま す。 使用す
る エ ン ト リ ポ イ ン ト を 選択す る に は、 --entry コ マ ン ド ラ イ ン オ プ シ ョ
ン を 使用 し て 下 さ い。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6202E
--entry=location (2-58 ペ ー ジ) .
<objname> (<secname>) を 非ル ー ト 領域 '<regionname>' に割 り 当て る こ と は で き ま せ ん
ル ー ト 領域 と は、 そ の実行 ア ド レ ス が ロ ー ド ア ド レ ス と 同 じ で あ る 領域
の こ と で す。 そ の た め、 こ の領域は、 ス キ ャ ッ タ ロ ー ド 初期化 コ ー ド に
よ る 移動や コ ピ ー が必要あ り ま せ ん。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-8
リ ン カのエ ラ ーおよび警告
特定の セ ク シ ョ ン は、 イ メ ー ジ の ル ー ト 領域内 に な け れ ば な り ま せ ん。
__main.o と 、 リ ン カ に よ っ て 生成 さ れ る テ ー ブ ル (Region$$Table) は、
ル ー ト 領域 に あ る 必要が あ り ま す。 な い場合は、 リ ン カ に よ っ て 次の よ
う な報告が生成 さ れ ま す。
Region$$Table を 非ル ー ト 領域に割 り 当て る こ と は で き ま せ ん。
ラ イ ブ ラ リ の ス キ ャ ッ タ ロ ー ド (__scatter*.o) お よ び デ コ ン プ レ ッ サ
(__dc*.o) オ ブ ジ ェ ク ト は、 ル ー ト 領域 に 配置す る 必要が あ り ま す。 こ
れ ら は す べ て 、 次の よ う に InRoot$$Sections を 使 っ て 、 一緒 に 配置す る
こ と が で き ま す。
ROM_LOAD 0x0000 0x4000
{
ROM_EXEC 0x0000 0x4000 ; ル ー ト 領域
{
vectors.o (Vect, +FIRST) ; ベ ク タ テ ー ブ ル
* (InRoot$$Sections) ; ル ー ト 領域に配置す る必要が あ る す べ て の
; ライブラ リセクシ ョ ン
; 例え ば、 __main.o、 __scatter*.o、
; dc*.o、 お よ び * Region$$Table
}
RAM 0x10000 0x8000
{
* (+RO, +RW, +ZI) ; 他の す べ て の セ ク シ ョ ン
}
}
「Placing root region library objects in a scatter file」
, http://infocenter.arm.com/help/topic/com.arm.doc.faqs/ka3946.html も 参
照 し て 下 さ い。
L6203E
エ ン ト リ ポ イ ン ト (<address>) が非ル ー ト 領域 <regionname> 内に あ り ま す。
イ メ ー ジ の エ ン ト リ ポ イ ン ト は、 イ メ ー ジ の ル ー ト 領域内の有効な命令
に 対応 し て い る 必要が あ り ま す。
L6204E
エ ン ト リ ポ イ ン ト (<address>) が命令 を 指 し て い ま せ ん。
--entry コ マ ン ド ラ イ ン オ プ シ ョ ン で指定 し た 、 イ メ ー ジ の エ ン ト リ ポ
イ ン ト は、 イ メ ー ジ の ル ー ト 領域内の有効な命令 に 対応 し て い る 必要が
あ り ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6205E
--entry=location (2-58 ペ ー ジ) .
エ ン ト リ ポ イ ン ト (<address>) は、 ARM 命令用に ワ ー ド 境界で整列 し て い る 必要が あ り ま す。
こ の メ ッ セ ー ジ は、 --entry コ マ ン ド ラ イ ン オ プ シ ョ ン で指定 し た イ
メ ー ジ の エ ン ト リ ポ イ ン ト が、 ワ ー ド 境界で整列 さ れ て い な い た め、 表
示 さ れ ま す。 例 え ば、 --entry=0x8000 で は な く 、 --entry=0x8001 と 指定 し
た 場合で す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6206E
--entry=location (2-58 ペ ー ジ) .
エ ン ト リ ポ イ ン ト (<address>) が イ メ ー ジ の外部に あ り ま す。
--entry コ マ ン ド ラ イ ン オ プ シ ョ ン で指定 し た イ メ ー ジ の エ ン ト リ ポ イ
ン ト が、 イ メ ー ジ の外部 に あ り ま す。 例 え ば、 次の よ う に 、 エ ン ト リ ア
ド レ ス と し て 0x8000 で は な く 0x80000 を 指定 し た 場合で す。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-9
リ ン カのエ ラ ーおよび警告
armlink --entry=0x80000 test.o -o test.axf
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6208E
--entry=location (2-58 ペ ー ジ) .
--entry コ マ ン ド の無効な引数 : '<arg>'
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6209E
--entry=location (2-58 ペ ー ジ) .
--entry に対 し て指定 さ れ た無効な オ フ セ ッ ト 定数 (<arg>)
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6210E
--entry=location (2-58 ペ ー ジ) .
イ メ ー ジ に複数の エ ン ト リ ポ イ ン ト を 含め る こ と は で き ま せ ん
(<address1>、 <address2>)。
1 つ ま た は複数の入力 オ ブ ジ ェ ク ト で、 イ メ ー ジ の エ ン ト リ ポ イ ン ト を
複数指定 し て い ま す。 使用す る エ ン ト リ ポ イ ン ト を 選択す る に は、
--entry コ マ ン ド ラ イ ン オ プ シ ョ ン を 使用 し て 下 さ い。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6211E
--entry=location (2-58 ペ ー ジ) .
セ ク シ ョ ン の選択が あ い ま い で す。 オ ブ ジ ェ ク ト <objname> に複数の セ ク シ ョ ン が含 ま れ て い ま
す。
こ の問題は、 複数の AREA を 含む ア セ ン ブ ラ オ ブ ジ ェ ク ト に 対 し て リ ン
カ オ プ シ ョ ン --keep を 使用 し て い る 場合 に 発生 し ま す。 リ ン カ で、 ど
の AREA を 保持す る の か を 認識で き る 必要が あ り ま す。
こ の問題 を 解決す る に は、 次の よ う に 、 複数の --keep オ プ シ ョ ン を
使 っ て 、 保持す る 各 AREA の名前 を 指定 し ま す。
--keep boot.o(vectors) --keep boot.o(resethandler) …
注
複数の AREA を 持 つ ア セ ン ブ ラ フ ァ イ ル を 使用す る と 、 他の問題 も 発生
す る 場合が あ る の で、 使用 し な い こ と を 推奨 し ま す。
L6213E
複数の First セ ク シ ョ ン <object2> (<section2>) は使用で き ま せ ん。 <object1>
(<section1>) は既に存在 し て い ま す。
FIRST セ ク シ ョ ン は 1 つ し か使用で き ま せ ん。
L6214E
複数の Last セ ク シ ョ ン <object2> (<section2>) は使用で き ま せ ん。 <object1>
(<section1>) は既に存在 し て い ま す。
LAST セ ク シ ョ ン は 1 つ し か使用で き ま せ ん。
L6215E
--First/--Last に対す る シ ン ボ ル の選択が あ い ま い で す。 シ ン ボ ル <symbol> に複数の定義
が あ り ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
L6216E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
•
--first=section_id (2-71 ペ ー ジ)
•
--last=section_id (2-94 ペ ー ジ) .
連続 し な い セ ク シ ョ ン <secname> に対 し て ベ ー ス / リ ミ ッ ト シ ン ボ ル を 使用す る こ と は で き ま せ
ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-10
リ ン カのエ ラ ーおよび警告
コ ン パ イ ラ に よ っ て 生成 さ れ る 例外処理 イ ン デ ク ス テ ー ブ ル は、 セ ク
シ ョ ン 名が .ARM.exidx に な り ま す。 詳細 に つ い て は、 「Exception
Handling ABI for the ARM Architecture」 ,
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038-/index.html を 参
照 し て 下 さ い。
リ ン ク 時 に は、 こ れ ら の テ ー ブ ル は同 じ 実行領域 に 連続 し て 配置 さ れ て
い な け れ ば な り ま せ ん。 ス キ ャ ッ タ フ ァ イ ル内で特定の セ レ ク タ パ タ ー
ン を 使 っ て こ れ ら の セ ク シ ョ ン を 明示的 に 連続 し な い よ う に 配置 し て い
る 場合は、 こ の エ ラ ー メ ッ セ ー ジ が発生す る 可能性が高 く な り ま す。 以
下 に 例 を 示 し ま す。
LOAD_ROM 0x00000000
{
ER1 0x00000000
{
file1.o (+RO) ; C++ ソ ー ス か ら
* (+RO)
}
ER2 0x01000000
{
file2.o (+RO) ; C++ ソ ー ス か ら
}
ER3 +0
{
* (+RW, +ZI)
}
}
例外処理 イ ン デ ク ス テ ー ブ ル が file1.o と file2.o の両方 に 含 ま れ る 場
合、 リ ン カ は こ れ ら を 個別の領域 に 配置で き な い た め、 こ れ に よ っ て 次
の エ ラ ー が生成 さ れ る 可能性が あ り ま す。
エ ラ ー : L6216E : 連続 し な い セ ク シ ョ ン .ARM.exidx に対 し て ベ ー ス / リ ミ ッ ト シ ン ボ ル を
使用す る こ と は で き ま せ ん
ま た 、 .init_array セ ク シ ョ ン は、 同 じ 領域内 に 連続 し て 配置 さ れ て い な
い と ベ ー ス お よ び リ ミ ッ ト シ ン ボ ル に ア ク セ ス で き な い場合 も あ り ま
す。
正 し い例 を 以下 に 示 し ま す。
LOAD_ROM 0x00000000
{
ER1 0x00000000
{
file1.o (+RO) ; C++ ソ ー ス か ら
* (.ARM.exidx) ; セ ク シ ョ ン .ARM.exidx は明示的に配置す る必要が あ り ま す。
; そ う し な い と 、 2 つ の領域で共有 さ れ、
; リ ン カ は配置先 を 決定で き な く な り ま す。
*(.init_array) ; セ ク シ ョ ン .init_array は明示的に配置す る必要が あ り ま す。
; そ う し な い と 、 2 つ の領域で共有 さ れ、
; リ ン カ は配置先 を 決定で き な く な り ま す。
* (+RO)
}
ER2 0x01000000
{
file2.o (+RO) ; C++ ソ ー ス か ら
}
ER3 +0
{
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-11
リ ン カのエ ラ ーおよび警告
* (+RW, +ZI)
}
}
正 し い例で は、 ベ ー ス シ ン ボ ル と リ ミ ッ ト シ ン ボ ル が 1 つ の領域内の
.init_array に 含 ま れ て い ま す。
詳細 に つ い て は、 『ARM® C お よ び C++ ラ イ ブ ラ リ と 浮動小数点サ ポ ー
ト の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
C お よ び C++ プ ロ グ ラ ムでの ラ イ ブ ラ リ 関数の使用方法
(2-59 ペ ー ジ)
•
C++ の初期化、 構築、 お よ び破棄 (2-61 ペ ー ジ) .
L6217E
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) に <symbol> が関
係 し て い ま す。 イ ン ポ ー ト さ れ た シ ン ボ ル へ の R_ARM_SBREL32 再配置
L6218E
シ ン ボ ル <symbol> (<objname> か ら 参照) が定義 さ れ て い ま せ ん。
こ の問題の一般的な例 と し て 、 以下の よ う な も の が あ り ま す。
•
ユ ー ザ エ ラ ー。 ユ ー ザ が シ ン ボ ル を 参照 し ま し た が、 そ の定義 を
忘れ て い た か、 正 し く 定義 し て い ま せ ん で し た 。
•
シ ン ボ ル __ARM_switch8 ま た は __ARM_ll_<xxxx> 関数が定義 さ れ て い ま せ ん。
ヘ ル パ関数は、 コ ン パ イ ラ に よ っ て 自動的 に オ ブ ジ ェ ク ト フ ァ イ
ル内 に 生成 さ れ ま す。
注
し か し 、 ヘ ル パ関数が h_xxx ラ イ ブ ラ リ (h は、 こ れ ら が標準 C
ラ イ ブ ラ リ コ ー ド ではな く 、 コ ン パ イ ラ ヘ ルパ ラ イ ブ ラ リ で あ る
こ と を 示 し て い ま す) 内 に あ っ た 従来の プ ロ ジ ェ ク ト の オ ブ ジ ェ
ク ト を リ ン ク し て い る 場合は、 未定義参照 エ ラ ー が発生 し ま す。
オ ブ ジ ェ ク ト を 再 コ ン パ イ ル す る か、 こ れ ら の ラ イ ブ ラ リ を リ ン
カ が見 つ け ら れ る よ う に し て 下 さ い。
•
C の関数 ま た は エ ン テ ィ テ ィ を C++ の関数 ま た は エ ン テ ィ テ ィ か
ら 参照 し よ う と し て い ま す。 こ の問題は C++ の名前の マ ン グ リ ン
グ に よ っ て 発生 し ま す。 C 関数 を extern "C" と マ ー ク す る こ と で
対処で き ま す。
•
シ ン ボ ル thunk{v:0,-44} to Foo_i::~Foo_i() (Bar_i.o か ら 参照) が定義 さ れ て
い ま せ ん。
シ ン ボ ル thunk{v:0,-44} to Foo_i::~Foo_i() は、 標準の
Foo_i::~Foo_i() 関数の ラ ッ パ関数で す。
Foo_i は、 他の ベ ー ス ク ラ ス か ら の派生 ク ラ ス で す。 そ の た め、
—
そ の ベ ー ス ク ラ ス へ の ポ イ ン タ に よ っ て 参照 さ れ る 場合の た
め に 、 ベ ー ス ク ラ ス の vtable を 持 っ て い ま す。
—
ベ ー ス ク ラ ス の vtable は、 thunk の た め の エ ン ト リ を
持 っ て い ま す。
デ ス ト ラ ク タ thunk は、 実際の (派生 ク ラ ス の) デ ス ト ラ
ク タ が出力の場合は、 出力 に な り ま す。
こ の た め、 エ ラ ー を 回避す る に は、 こ の デ ス ト ラ ク タ を 定義す る
必要が あ り ま す。
—
•
Undefined symbol main (referred from kernel.o)
こ の エ ラ ー に よ っ て 、 リ ン カ は、 ア プ リ ケ ー シ ョ ン に main() 関数
が含 ま れ て い な い こ と を レ ポ ー ト し て い ま す。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-12
リ ン カのエ ラ ーおよび警告
『移行 と 互換性』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
—
L6219E
RVCT v2.2 と RVCT v3.0 の間での C お よ び C++ ラ イ ブ ラ リ の
変更点 (10-5 ペ ー ジ)
<type> セ ク シ ョ ン (<object1> (<section1>)) の属性 {<attributes>} は、 隣接す る セ ク
シ ョ ン <object2> (<section2>) と 互換性が あ り ま せ ん。
こ の エ ラ ー は、 リ ン カ に よ っ て 使用 さ れ て い る デ フ ォ ル ト の順序付け規
則 (RO、 次 に RW、 次 に ZI) の違反が あ っ た 場合 に 発生 し ま す。 一般
的 に は例 え ば ス キ ャ ッ タ フ ァ イ ル で +FIRST ま た は +LAST を 使 っ て 、RW
が RO の前 に な る よ う に 強制 し よ う と し た 場合 に 発生 し ま す。
L6220E
<type> の領域 <regionname> の サ イ ズ (<size> バ イ ト ) が制限 (<limit> バ イ ト ) を 超え
て い ま す。
例:
Execution の領域 ROM_EXEC の サ イ ズ (4208184 バ イ ト ) が制限 (4194304 バ イ ト ) を 超え
て い ま す。
こ の問題は、 領域が ス キ ャ ッ タ フ ァ イ ル で最大長 を 指定 さ れ た も の の
(指定は任意)、 領域内の コ ー ド ま た は デ ー タ の サ イ ズ が指定 さ れ た 制限
を え て い る 場合 に 発生 し ま す。 こ の エ ラ ー は、 --diag_suppress 6220 で非
表示 に す る こ と が で き ま す。
例 え ば、ス キ ャ ッ タ フ ァ イ ル で ALIGN デ ィ レ ク テ ィ ブ と 共 に .ANYnum セ
レ ク タ を 使用 し て 、 リ ン カ に パ デ ィ ン グ を 挿入 さ せ る 場合 に 、 こ の エ
ラ ー が発生す る 可能性が あ り ま す。 こ の問題 を 解消す る に は、
--any_contingency オ プ シ ョ ン を 使用 し ま す。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
.ANY モジ ュールセ レ ク タ に よ る未割 り 当てセ ク シ ョ ンの配置
(8-25 ペ ー ジ) .
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
L6221E
•
--any_contingency (2-8 ペ ー ジ)
•
--diag_suppress=tag[,tag,...] (2-47 ペ ー ジ) .
<addrtype1> 範囲が [<base1>、 <limit1>) で あ る <type1> の領域 <regionname1> が、
<addrtype2> 範囲が [<base2>、 <limit2>) で あ る <type2> の領域 <regionname2> と 重
複 し て ま す。
こ の問題は、ス キ ャ ッ タ フ ァ イ ル が正 し く な い こ と を 表 し て い ま す。 非
ZI セ ク シ ョ ン は、 一意の ロ ー ド ア ド レ ス を 持 っ て い る 必要が あ り 、 多
く 場合は一意の実行 ア ド レ ス も 持 っ て い る 必要が あ り ま す。 こ の エ ラ ー
の原因 と し て 、 相対ベ ー ス ア ド レ ス を 持 つ ロ ー ド 領域 LR2 が ロ ー ド 領
域 LR1 ZI 実行領域の直後 に 配置 さ れ て い る こ と が考 え ら れ ま す。
RVCT v3.1 以降、 リ ン カ に よ っ て 領域が ZI 実行領域 に 割 り 当 て ら れ
な く な り ま し た。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6222E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
相対ベース ア ド レ ス の ロ ー ド 領域 と ZI 実行領域を含んだ ス キ ャ ッ
タ フ ァ イ ル (4-40 ペ ー ジ) .
部分的に リ ン ク さ れ た オ ブ ジ ェ ク ト に複数の ENTRY セ ク シ ョ ン (<e_oname> (<e_sname>) お
よ び <oname> (<sname>)) を 含め る こ と は で き ま せ ん。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-13
リ ン カのエ ラ ーおよび警告
複数の オ ブ ジ ェ ク ト が部分的 に リ ン ク さ れ た 1 つ の オ ブ ジ ェ ク ト に
な っ て い る 場合、 全 オ ブ ジ ェ ク ト の う ち の 1 つ の セ ク シ ョ ン だ け が エ
ン ト リ ポ イ ン ト を 持 つ こ と が で き ま す。
注
こ の場合は、リ ン カ オ プ シ ョ ン --entry を 使 っ て エ ン ト リ ポ イ ン ト の 1
つ を 選択す る こ と は で き ま せ ん。
L6223E
<objname> (<secname>) の あ い ま い な セ レ ク タ が、 実行領域 <region1> お よ び <region2>
で見つ か り ま し た。
こ の問題は、 ス キ ャ ッ タ フ ァ イ ル で <objname> (<secname>) を 複数の実行
領域 に 配置す る よ う に 指定 し た 場合 に 発生 し ま す。 ワ イ ル ド カ ー ド (*)
を 使用 し て い る 場合 に 誤 っ て 発生す る こ と も あ り ま す。 こ の問題 を 解決
す る に は、 ス キ ャ ッ タ フ ァ イ ル で の選択 を よ り 限定的 に 行い ま す。
L6224E
<objname> (<secname>) を 実行領域内に配置で き ま せ ん で し た。
こ の問題は、 リ ン カ が入力セ ク シ ョ ン を ス キ ャ ッ タ フ ァ イ ル の い ず れ の
セ レ ク タ と も 一致 さ せ ら れ な か っ た 場合 に 発生 し ま す。 ス キ ャ ッ タ フ ァ
イ ル を 修正 し て 、 適切な セ レ ク タ を 追加す る 必要が あ り ま す。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
リ ン カに よ る セ ク シ ョ ンの配置 (4-20 ペ ー ジ) .
L6225E
数値 <str...> が長す ぎ ま す。
L6226E
領域 <regname> の ベ ー ス ア ド レ ス が あ り ま せ ん。
L6227E
--split を 使用せ ず に –reloc と --rw-base を 併用す る こ と は で き ま せ ん。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--reloc (2-134 ペ ー ジ)
•
--rw_base=address (2-141 ペ ー ジ)
•
--split (2-156 ペ ー ジ) .
L6228E
'<str1>' が予期 さ れ ま し た が、 '<str2>' が見つ か り ま し た。
L6229E
ス キ ャ ッ タ 記述 <file> が空で す。
L6230E
複数の実行領域 (<region1>、 <region2>) で <secname> を 選択す る こ と は で き ま せ ん。
L6231E
モ ジ ュ ー ル セ レ ク タ が あ り ま せ ん。
L6232E
セ ク シ ョ ン セ レ ク タ が あ り ま せ ん。
L6233E
不明な セ ク シ ョ ン セ レ ク タ '+<selector>' で す。
L6234E
<ss> は単一の セ レ ク タ の後に指定す る 必要が あ り ま す。
例 え ば、 ス キ ャ ッ タ フ ァ イ ル で次の よ う な記述が あ る と し ま す。
:
* (+FIRST, +RO)
:
+FIRST は、 こ の (単一の) セ ク シ ョ ン を 先頭 に 配置す る こ と を 意味 し ま
す。 複数の セ ク シ ョ ン と 一致す る 可能性が あ る セ レ ク タ (例 え ば +RO や
+ENTRY) は、 +FIRST ( ま た は +LAST) と 共 に 使用す る こ と は で き ま せ ん。
一緒 に 使用す る と 、 エ ラ ー メ ッ セ ー ジ が生成 さ れ ま す。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-14
リ ン カのエ ラ ーおよび警告
L6235E
複数の セ ク シ ョ ン が セ レ ク タ と 一致 し ま す。 す べ て の セ ク シ ョ ン を FIRST/LAST に す る こ と は で
き ま せ ん。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
FIRST 属性 と LAST 属性を使用 し たセ ク シ ョ ンの配置 (4-22 ペ ー
ジ) .
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
入力セ ク シ ョ ン記述の構文 (4-24 ペ ー ジ) .
L6236E
セ レ ク タ と 一致す る セ ク シ ョ ン が あ り ま せ ん。 FIRST/LAST に な る セ ク シ ョ ン が あ り ま せ ん。
ス キ ャ ッ タ フ ァ イ ル で は +FIRST ま た は +LAST に な る セ ク シ ョ ン が指定
さ れ て い ま す が、 そ の セ ク シ ョ ン が存在 し な い か、 リ ン カ が そ の セ ク
シ ョ ン を 使わ れ な い と 判断 し て 削除 し ま し た 。 ど オ ブ ジ ェ ク ト が プ ロ
ジ ェ ク ト か ら 削除 さ れ た か を 表示す る に は、 リ ン カ オ プ シ ョ ン --info
unused を 使用 し て 下 さ い。 例 :
ROM_LOAD 0x00000000 0x4000
{
ROM_EXEC 0x00000000
{
vectors.o (Vect, +First) << こ こ で エ ラ ー
* (+RO)
}
RAM_EXEC 0x40000000
{
* (+RW, +ZI)
}
}
次の よ う な対処方法が あ り ま す。
•
リ ン カ の コ マ ン ド ラ イ ン で vectors.o が指定 さ れ て い る こ と を 確
認 し ま す。
•
--keep vectors.o を 使 っ て リ ン ク し 、 こ れ を リ ン カ が削除 し な い よ
う に し ま す。 ま た は、 --no_remove を 使 っ て 、 こ の最適化全体 を オ
フ に し ま す。 こ れ は推奨 さ れ ま せ ん。
•
例 え ば、 次の よ う に ENTRY デ ィ レ ク テ ィ ブ を vectors.s に 追加 し
て、 こ こ が ア プ リ ケ ー シ ョ ン の エ ン ト リ ポ イ ン ト で あ る こ と を リ
ン カ に 示す こ と を お勧め し ま す。
AREA Vect, CODE
ENTRY ; こ れ を エ ン ト リ ポ イ ン ト と し て定義
Vector_table
...
次 に 、 --entry Vector_table を 使 っ て リ ン ク し 、 コ ー ド の実際の開
始位置 を 定義 し ま す。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
FIRST 属性 と LAST 属性を使用 し たセ ク シ ョ ンの配置 (4-22 ペ ー
ジ) .
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
•
--entry=location (2-58 ペ ー ジ)
•
--info=topic[,topic,...] (2-80 ペ ー ジ)
•
--keep=section_id (2-89 ペ ー ジ)
•
--remove、 --no_remove (2-136 ペ ー ジ)
•
入力セ ク シ ョ ン記述の構文 (4-24 ペ ー ジ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-15
リ ン カのエ ラ ーおよび警告
『 ア セ ン ブ ラ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
ENTRY (6-79 ペ ー ジ) .
L6237E
<objname> (<secname>) に整列 さ れ て い な い デ ー タ へ の再配置が含 ま れ て い ま す。
L6238E
<objname> (<secname>) に '<attr1>' 関数か ら '<attr2>' 関数 <sym> へ の無効な呼び
出 し が含 ま れ て い ま す。
こ の リ ン カ エ ラ ー は、 オ ブ ジ ェ ク ト コ ー ド 内で ス タ ッ ク の ア ラ イ メ ン ト
の競合が検出 さ れ た 場合 に 発生 し ま す。 『ARM ア ー キ テ ク チ ャ 用 ABI』
で は、 コ ー ド が イ ン タ フ ェ ー ス で 8 バ イ ト 境界の ス タ ッ ク 整列 を 保持
す る こ と を 推奨 し て い ま す。 こ れ に よ っ て 、 8 バ イ ト 境界で整列 さ れ て
い る double お よ び long long デ ー タ 型 に ア ク セ ス す る LDRD お よ び
STRD 命令の効率的な使用が可能 に な り ま す (ARM ア ー キ テ ク チ ャ
5TE 以降)。
~PRES8 や REQ8 の よ う な シ ン ボ ル は、 以下の よ う に 、 オ ブ ジ ェ ク ト の ビ
ル ド 属性 で す。
•
PRES8 は、 オ ブ ジ ェ ク ト が ス タ ッ ク の 8 バ イ ト 境界の整列 を 保持
(PREServe) す る こ と を 意味 し ま す。
•
~PRES8 は、 オ ブ ジ ェ ク ト が ス タ ッ ク の 8 バ イ ト 境界の整列 を 保持
し な い こ と を 意味 し ま す (~ は NOT の意味)。
•
REQ8 は、 オ ブ ジ ェ ク ト が ス タ ッ ク の 8 バ イ ト 境界の整列 を 要求
(REQuire) す る こ と を 意味 し ま す。
こ の リ ン ク エ ラ ー は、 通常、 以下の 2 つ の場合 に 発生 し ま す。
•
ア セ ン ブ ラ コ ー ド (8 バ イ ト 境界の ス タ ッ ク 整列 を 保持 し な い)
が、 コ ン パ イ ル さ れ た C/C++ コ ー ド (8 バ イ ト 境界の ス タ ッ ク
整列 を 必要 と す る ) 呼び出す。
•
旧式の ツ ー ル で コ ン パ イ ル さ れ た 従来の オ ブ ジ ェ ク ト と 、 最近の
ツ ー ル で コ ン パ イ ル さ れ た オ ブ ジ ェ ク ト を リ ン ク し よ う と す る。
こ れ ら の属性 を 持 っ て い な い従来の オ ブ ジ ェ ク ト は、 実際 に は 8
バ イ ト 境界の整列が保持で き た と し て も 、 ~PRES8 と し て 処理 さ れ
ま す。
以下 に 例 を 示 し ま す。
エ ラ ー : L6238E : foo.o (.text) に '~PRES8' 関数か ら 'REQ8' 関数 foobar へ の無効
な呼び出 し が含 ま れ て い ま す。
こ れ は、 オ ブ ジ ェ ク ト foo.o に (.text と い う 名前の セ ク シ ョ ン 内 に )、
8 バ イ ト 境界の ス タ ッ ク 整列 を 保持 し な い関数が あ り 、 そ れ が 8 バ イ
ト 境界の ス タ ッ ク 整列 を 必要 と す る 関数 foobar を 呼び出 そ う と し て い
る こ と を 意味 し て い ま す。
同様の警告 に 、 次の よ う な も の が あ り ま す。
警告 : L6306W : '~PRES8' セ ク シ ョ ン foo.o (.text) で は、 'REQ8' 関数 foobar の ア ド
レ ス を 使用で き ま せ ん
こ の場合、 外部シ ン ボ ル の ア ド レ ス が参照 さ れ て い ま す。
こ の問題の解決策 と し て は以下の 2 つ の方法が考 え ら れ ま す。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
す べ て の オ ブ ジ ェ ク ト と ラ イ ブ ラ リ を 再 ビ ル ド し ま す。
ア セ ン ブ ラ フ ァ イ ル が あ る 場合は、 す べ て の命令が 8 バ イ ト 境界
の ス タ ッ ク 整列 を 保持す る こ と を 確認 し 、 必要 に 応 じ て 修正す る
必要が あ り ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-16
リ ン カのエ ラ ーおよび警告
例 え ば、 次の よ う な コ ー ド は、
STMFD sp!, {r0-r3, lr} ; 奇数の レ ジ ス タ を プ ッ シ ュ
次の よ う に 変更 し ま す。
STMFD sp!, {r0-r3, r12, lr} ; 偶数の レ ジ ス タ を プ ッ シ ュ
す べ て の命令が 8 バ イ ト 境界の ス タ ッ ク 整列 を 保持す る 場合、 ア
セ ン ブ ラ が自動的 に オ ブ ジ ェ ク ト を PRES8 属性で マ ー ク す る の で、
各 ア セ ン ブ ラ フ ァ イ ル の先頭 に PRESERVE8 デ ィ レ ク テ ィ ブ を 追加
す る 必要が な く な り ま す。
•
従来の オ ブ ジ ェ ク ト ま た は ラ イ ブ ラ リ が、 ソ ー ス コ ー ド が な か っ
た り 、 資格や認証の問題な ど の た め に 再 ビ ル ド で き な い場合は、
そ の オ ブ ジ ェ ク を 調べ て 、 8 バ イ ト 境界の整列が保持 さ れ る か ど
う か を 確認す る 必要が あ り ま す。
オ ブ ジ ェ ク ト コ ー ド を 逆 ア セ ン ブ ル す る に は、 fromelf -c を 使 っ て
下 さ い。 ADS 1.1 以降で コ ン パ イ ル さ れ た C/C++ コ ー ド は、通
常、 8 バ イ ト 境界の整列 を 保持 し ま す が、 ア セ ン ブ ル さ れ た コ ー
ド は保持 し ま せ ん。
オ ブ ジ ェ ク ト が確実 に 8 バ イ ト 境界の整列 を 保持 し て い る 場合
は、 リ ン カ コ マ ン ド ラ イ ン で --diag_suppress 6238 を 使 っ て 、 リ ン
カ エ ラ ー L6238E を 非表示 に す る こ と が で き ま す。
こ の エ ラ ー メ ッ セ ー ジ を 利用す る と 、 オ ブ ジ ェ ク ト が PRES8 で あ
る こ と を 確実 に チ ェ ッ ク で き ま す。
リ ン カ 警告 L6306W は、 --diag_suppress 6306 で非表示 に で き ま
す。
次の リ ン カ エ ラ ー も 参照 し て 下 さ い。 「L6238E : foo.o (.text) に
'~PRES8' 関数か ら 'REQ8' 関数 foobar へ の無効な呼び出 し が含
ま れ て い ま す」 ,
http://infocenter.arm.com/help/topic/com.arm.doc.faqs/ka3556.html
L6239E
非 イ ン タ ー ワ ー キ ン グ <t2> シ ン ボ ル '<sym>' (<obj2> 内) を 、 <t1> コ ー ド (<obj1>
(<sec1>) 内) か ら 呼び出す こ と は で き ま せ ん。
例:
非 イ ン タ ー ワ ー キ ン グ ARM シ ン ボ ル 'ArmFunc' (object foo.o 内) を 、 THUMB コ ー ド
(bar.o (.text) 内) か ら 呼び出す こ と は で き ま せ ん。
こ の問題は、 オ プ シ ョ ン --apcs /interwork を 使 っ て コ ン パ イ ル さ れ な
か っ た foo.c に よ っ て 発生 し た 可能性が あ り ま す。 こ の オ プ シ ョ ン は、
リ ン カ に よ っ て 生成 さ れ る イ ン タ ー ワ ー キ ン グ ベ ニ ア を 使 っ て ARM
コ ー ド か ら Thumb コ ー ド ( ま た は Thumb か ら ARM) を 呼び出す こ
と を 可能 に し ま す。
L6241E
<objname> (<secname>) は、 '<attr1>' 関数 <sym> の ア ド レ ス を 使用で き ま せ ん。 こ れ は、
イ メ ー ジ に '<attr2>' 関数が含 ま れ て い る た め で す。
'--strict' を 使 っ て リ ン ク し た 場合は、 失敗 し て エ ラ ー に な る 条件が、
次の よ う に リ ン カ に よ っ て 報告 さ れ ま す。
エ ラ ー : L6241E : foo.o (.text) は、 '~IW' 関数 main の ア ド レ ス を 使用で き ま せ ん。 こ れ
は、 イ メ ー ジ に 'IW' 関数が含 ま れ て い る た め で す。
IW は イ
ン タ ー ワ ー ク を 意味 し 、 ~IW は 非 イ ン タ ー ワ ー ク を 意味 し て い ま
す。
L6242E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
オ ブ ジ ェ ク ト の属性が イ メ ー ジ の属性 と 互換性が な い た め、 オ ブ ジ ェ ク ト <objname> を リ ン ク で
き ま せ ん。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-17
リ ン カのエ ラ ーおよび警告
コ ン パ イ ル ツ ー ル に よ っ て 生成 さ れ た 各 オ ブ ジ ェ ク ト フ ァ イ ル に は、 そ
の フ ァ イ ル の作成 に 使用 さ れ た オ プ シ ョ ン を 示す属性の セ ッ ト が含 ま れ
て ま す。 リ ン カ は、 処理す る 各 オ ブ ジ ェ ク ト フ ァ イ ル の属性 を チ ェ ッ ク
し ま す。 リ ン カ に よ っ て そ れ以前 に ロ ー ド さ れ た オ ブ ジ ェ ク ト フ ァ イ ル
の属性 と 互換性の な い属性が検出 さ れ た 場合、 リ ン カ は エ ラ ー を 生成 し
ま す。
こ の エ ラ ー に は 以下の 3 つ の一般的な原因が あ り 、 そ れ ぞ れ の原因 に
対 し て 異な る メ ッ セ ー ジ が表示 さ れ ま す。
•
エ ラ ー : L6242E : オ ブ ジ ェ ク ト の属性が イ メ ー ジ の属性 と 互換性が な い た め、 オ ブ ジ ェ
ク ト foo.o を リ ン ク で き ま せ ん。
8 バ イ ト デ ー タ 型に対す る 4 バ イ ト 境界整列の要求が、 8 バ イ ト デ ー タ 型に対す る 8 バ
イ ト 境界整列の要求 と 競合 し て い ま す。
こ の問題は、 ADS ま た は RVCT 1.2 を 使用 し て ビ ル ド さ れ た オ
ブ ジ ェ ク ト に RVCT 2.0 以降 を 使用 し て ビ ル ド さ れ た オ ブ ジ ェ ク
ト を リ ン ク し よ う と す る と 生す る 場合が あ り ま す。 ADS お よ び
RVCT 1.2 で は、 double お よ び long long デ ー タ 型は、 4 バ イ ト
境界で整列 さ れ ま す(-Oldrd コ ン パ イ ラ オ プ シ ョ ン ま た は __align
キ ー ワ ー ド を 使用 し た 場合以外)。 RVCT 2.0 で は、 ABI が変更
さ れ た た め、double お よ び long long デ ー タ 型が 8 バ イ ト 境界で
整列 さ れ ま す。
こ の変更は、 double ま た は long long デ ー タ 型 を 使用 し て い る
ADS お よ び RVCT 1.2 の オ ブ ジ ェ ク ト お よ び ラ イ ブ ラ リ が RVCT
2.0 以降 を 使用 し て ビ ル ド さ れ た オ ブ ジ ェ ク ト お よ び ラ イ ブ ラ と
の直接的な互換性 を 失 っ た こ と に よ り 、 リ ン カ に よ る 属性の不調
和が レ ポ ー ト さ れ る よ う に な っ た こ と を 意味 し ま す。
古い ADS C オ ブ ジ ェ ク ト と 同時 に RVCT 2.x ま た は 3.0 C オ
ブ ジ ェ ク ト を 使用す る に は、RVCT 2.x ま た は 3.0 C コ ー ド を
--apcs /adsabi コ マ ン ド ラ イ ン オ プ シ ョ ン を 使用 し て コ ン パ イ ル し
ま す。 こ の オ プ シ ョ ン は RVCT 2.2 で は廃止予定、RVCT 3.1 で
は廃止 さ れ て い ま す。
•
エ ラ ー : L6242E : オ ブ ジ ェ ク ト の属性が イ メ ー ジ の属性 と 互換性が な い た め、 オ ブ ジ ェ
ク ト foo.o を リ ン ク で き ま せ ん。
... 純粋 エ ン デ ィ ア ン double 型は、 複合 エ ン デ ィ ア ン double と 対立 し ま す。
こ れ は、 ARM コ ン パ イ ラ ツ ー ル チ ェ ー ン を 使用 し て ビ ル ド さ れ た
オ ブ ジ ェ ク ト 、古い SDT オ ブ ジ ェ ク ト の あ る RVCT ま た は ADS、
あ る い は、 コ ン パ イ ラ オ プ シ ョ ン --fpu softfpa ま た は --fpu fpa
の い ず れ か を 使用 し て ビ ル ド さ れ た オ ブ ジ ェ ク ト を リ ン ク し よ う
と す る と 発生す る 場合が あ り ま す。 SDT は、 標準的で な い リ ト ル
エ ン デ ィ ア ン double 型 と ビ ッ グ エ ン デ ィ ア ン long long を 使用 し
て い ま し た 。 た だ し 、ADS と RVCT は、--fpu softfpa オ プ シ ョ ン
ま た は --fpu fpa オ プ シ ョ ン が使用 さ れ た 場合以外は、業界標準で
あ る double 型 と long long 型 を 使用 し ま す ( こ れ ら の オ プ シ ョ
ン は RVCT 2.1 以前の バ ー ジ ョ ン で の み サ ポ ー ト さ れ ま す。) リ
ト ル エ ン デ ィ ア ン double 型 と ビ ッ グ エ ン デ ィ ア ン long long 型 と
は異な る 形式 を 使用す る オ ブ ジ ェ ク ト フ ァ イ ル を リ ン ク し よ う と
す る と 、 リ ン カ に よ っ て エ ラ ー が報告 さ れ ま す。
RVCT ま た は ARM コ ン パ イ ラ ツ ー ル チ ェ ー ン を 使用 し て プ ロ ジ ェ
ク ト 全体 を 再 ビ ル ド す る こ と を 推奨 し ま す。 オ ブ ジ ェ ク ト ま た は
ラ イ ブ ラ リ の ソ ー コ ー ド が な い場合、 --fpu softfpa を 使用 し て
コ ー ド を コ ン パ イ ル し 直 し て 下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-18
リ ン カのエ ラ ーおよび警告
•
エ ラ ー : L6242E : オ ブ ジ ェ ク ト の属性が イ メ ー ジ の属性 と 互換性が な い た め、 オ ブ ジ ェ
ク ト foo.o を リ ン ク で き ま せ ん。
... VFP と FPA の不調和
こ の エ ラ ー は、 通常、 異な る --fpu オ プ シ ョ ン を 使用 し て ビ ル ド
さ れ た オ ブ ジ ェ ク ト を リ ン ク し よ う と す る と 発生 し ま す。 同 じ
--fpu オ プ シ ョ ン を 使用 し て プ ロ ジ ェ ク ト 全体 を 再 ビ ル ド す る こ と
を 推奨 し ま す。
「Are legacy objects and libraries compatible with my
project?」 ,
http://infocenter.arm.com/help/topic/com.arm.doc.faqs/ka3639.html を 参照
し て 下 さ い。
L6243E
セ レ ク タ は削除 さ れ た未使用の セ ク シ ョ ン と の み一致 し ま す。 FIRST/LAST に な る セ ク シ ョ ン が あ
り ま せ ん。
こ の セ レ ク タ と 一致す る す べ て の セ ク シ ョ ン が、 使用 さ れ な い た め、 イ
メ ー ジ か ら 削除 さ れ ま し た 。 詳細 に つ い て は、 --info unused を 使用 し て
下 さ い。
L6244E
<type> の領域 <regionname> の ア ド レ ス (<addr>) が、 <align> バ イ ト 境界で整列 さ れ て
い ま せ ん。
L6245E
要求 さ れ た ZI セ ク シ ョ ン '<name>' を 作成で き ま せ ん で し た。
L6248E
<objname> (<secname>) (<attr1>、 領域 '<r1>' 内) で、 <rtype> 再配置 を <symname>
(<attr2>、 領域 '<r2>' 内) に対 し て指定す る こ と は で き ま せ ん。
こ の エ ラ ー は、 位置非依存 (PI) コ ー ド を ビ ル ド し よ う と す る と 発生
す る 場合が あ り ま す。 以下の サ ン プ ル コ ー ド を 考 え て み ま す。
#include <stdio.h>
char *str = "test";
int main(void)
{
printf ("%s",str);
}
こ れ を 以下の よ う に コ ン パ イ ル お よ び リ ン ク し て み ま す。
armcc -c --apcs /ropi/rwpi pi.c
armlink --ropi --rwpi pi.o
リ ン カ に よ っ て 以下の エ ラ ー メ ッ セ ー ジ が表示 さ れ ま す。
エ ラ ー : L6248E : PI 領域 'ER_RW' 内の pi.o(.data) は、 PI 領域 'ER_RO' 内の
.conststring に ア ド レ ス 型の再配置 を 持つ こ と は で き ま せ ん。
こ れ は、 コ ン パ イ ラ が、 .conststring セ ク シ ョ ン 内の文字列の ア ド レ ス
に 初期化 さ れ る 必要の あ る グ ロ ー バ ル ポ イ ン タ str を 生成す る た め で
す。 た だ し 、 絶対 ア ド レ ス は、 PI シ ス テ ム内の ア ド レ ス を 使用で き な
い た め、 リ ン ク 手順が失敗 し ま す。
こ の エ ラ ー を 解消す る に は、 明示的な ポ イ ン タ を 回避す る よ う に コ ー ド
を 記述 し 直す必要が あ り ま す。 こ の た め に 、 以下の い ず れ か の方法 を 実
行 し ま す。
•
以下の よ う に グ ロ ー バ ル ポ イ ン タ の代わ り に グ ロ ー バ ル配列 を 使
用 し ま す。
#include <stdio.h>
const char str[] = "test";
int main(void)
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-19
リ ン カのエ ラ ーおよび警告
{
printf ("%s",str);
}
•
以下の よ う に グ ロ ー バ ル ポ イ ン タ の代わ り に ロ ー カ ル ポ イ ン タ を
使用 し ま す。
#include <stdio.h>
int main(void)
{
char *str = "test";
printf ("%s",str);
}
注
以下の よ う な ポ イ ン タ 配列 を 使用す る 場合
char * list[] = {"zero", "one", "two"};
リ ン カ は、 配列内の各要素 に 対 し て 別々の エ ラ ー を 報告 し ま す。 こ の場
合、 リ ス ト に 対 し て 、 以下の よ う な、 最初の次元 に 配列内の要素の数が
あ り 、 2 番目の次元 に 配列内の要素の最大サ イ ズ が あ る 2 次元配列 を
宣言す る こ と を お勧め し ま す。
char list[3][5] = {"zero", "one", "two"};
以下の よ う に printf() ス テ ー ト メ ン ト を 変更す る 必要が あ り ま す。
printf("%s", list[1]);
コ ン パ イ ラ エ ラ ー番号 1359 を 参照 し て 下 さ い。
L6249E
エ ン ト リ ポ イ ン ト (<address>) が複数の セ ク シ ョ ン 内に あ り ま す。
L6250E
オ ブ ジ ェ ク ト <objname> に、 特別な シ ン ボ ル <symbol> の不正な定義が含 ま れ て い ま す。
L6251E
オ ブ ジ ェ ク ト <objname> に、 特別な シ ン ボ ル <symbol> へ の不正な参照が含 ま れ て い ま す。
L6252E
--xreffrom/--xrefto コ マ ン ド の無効な引数 : '<arg>'
L6253E
無効な SYMDEF ア ド レ ス : <number>。
L6254E
無効な SYMDEF 型 : <type>。
symdefs フ ァ イ ル の内容が無効で す。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
symdefs フ ァ イ ルの形式 (7-22 ペ ー ジ) .
•
L6255E
フ ァ イ ル <filename> を 削除で き ま せ ん で し た : <reason>
指定 さ れ た フ ァ イ ル を 削除 し よ う と し た と き に 、 I/O エ ラ ー が発生 し
ま し た 。 こ の フ ァ イ ル が読み出 し 専用で あ る か、 見 つ か り ま せ ん で し
た。
L6257E
<object> (<secname>) を オ ー バ レ イ さ れ た実行領域 '<ername>' に割 り 当て る こ と が で き ま
せ ん。
こ の メ ッ セ ー ジ は、 ス キ ャ ッ タ フ ァ イ ル に 問題が あ る こ と を 示 し て い ま
す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
第 4 章 ス キ ャ ッ タ フ ァ イ ルの正式な構文 .
L6258E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
エ ン ト リ ポ イ ン ト (<address>) が オ ー バ ー レ イ さ れ た実行領域内に あ り ま す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-20
リ ン カのエ ラ ーおよび警告
こ の メ ッ セ ー ジ は、 ス キ ャ ッ タ フ ァ イ ル に 問題が あ る こ と を 示 し て い ま
す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
第 4 章 ス キ ャ ッ タ フ ァ イ ルの正式な構文 .
L6259E
予約 さ れ て い る ワ ー ド '<name>' を <type> の領域名 と し て使用す る こ と は で き ま せ ん。
<name> は予約語な の で、 領域 に は別の名前 を 選択 し て 下 さ い。
L6260E
同 じ 名前 (<regionname>) を 持つ複数の ロ ー ド 領域 を 使用す る こ と は で き ま せ ん。
こ の メ ッ セ ー ジ は、 ス キ ャ ッ タ フ ァ イ ル に 問題が あ る こ と を 示 し て い ま
す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
第 4 章 ス キ ャ ッ タ フ ァ イ ルの正式な構文 .
L6261E
同 じ 名前 (<regionname>) を 持つ複数の実行領域 を 使用す る こ と は で き ま せ ん。
こ の メ ッ セ ー ジ は、 ス キ ャ ッ タ フ ァ イ ル に 問題が あ る こ と を 示 し て い ま
す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
第 4 章 ス キ ャ ッ タ フ ァ イ ルの正式な構文 .
L6263E
<regionname> の <addr> ア ド レ ス を <regtabregionname> 内の <pi_or_abs> Region
Table か ら 指定す る こ と は で き ま せ ん。
Region Table に は、 ZI を コ ピ ー、 伸張、 ま た は作成す る C ラ イ ブ
ラ リ 初期化 コ ー ド に よ っ て 使用 さ れ る 情報が含 ま れ て い ま す。 こ の エ
ラ ー メ ッ セ ー は、 Region Table で記述で き な い イ メ ー ジ構造が ス
キ ャ ッ タ フ ァ イ ル で指定 さ れ て い る 場合 に 生成 さ れ ま す。
こ の エ ラ ー メ ッ セ ー ジ は、 多 く の場合、 PI と 非 PI ロ ー ド 領域が同 じ
イ メ ー ジ内 に 混在 し て い る と き に 表示 さ れ ま す。
L6265E
非 PI セ ク シ ョ ン <obj> (<sec>) を PI 実行領域 <er> に割 り 当て る こ と は で き ま せ ん。
こ の問題は、 リ ン カ コ マ ン ド ラ イ ン で誤 っ た ARM ラ イ ブ ラ リ を 明示的
に 指定す る こ と に よ っ て 発生す る 場合が あ り ま す。 以下の い ず れ か を 実
行 し て く だ さ い。
•
ARM ラ イ ブ ラ リ の明示的な指定 を 削除 し ま す。
•
L6266E
ラ イ ブ ラ リ (例 え ば c_t.l) を 正 し い ラ イ ブ ラ リ に 置 き 換 え ま す。
RWPI セ ク シ ョ ン <obj> (<sec>) を 非 PI 実行領域 <er> に割 り 当て る こ と は で き ま せ ん。
--apcs=/rwpi で コ ン パ イ ル さ れ た フ ァ イ ル が、 PI 属性 を 持 た な い実行
領域 に 配置 さ れ て い ま す。
L6271E
ロ ー ド 領域 <regname> に対 し て複数の相互に排他的な属性が指定 さ れ て い ま す
こ の メ ッ セ ー ジ は、 ス キ ャ ッ タ フ ァ イ ル に 問題が あ る こ と を 示 し て い ま
す。
L6272E
実行領域 <regname> に対 し て複数の相互に排他的な属性が指定 さ れ て い ま す
こ の メ ッ セ ー ジ は、 ス キ ャ ッ タ フ ァ イ ル に 問題が あ る こ と を 示 し て い ま
す。
L6273E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
セ ク シ ョ ン <objname> (<secname>) に相互に排他的な属性 (READONLY と ZI) が含 ま れ て い
ます
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-21
リ ン カのエ ラ ーおよび警告
こ の メ ッ セ ー ジ は、 オ ブ ジ ェ ク ト フ ァ イ ル に 問題が あ る こ と を 示 し て い
ま す。
L6275E
COMMON セ ク シ ョ ン <obj1> (<sec1>) は、 <sym> (<obj2> (<sec2>) で定義) を 定義 し ま せ
ん
同名の COMMON セ ク シ ョ ン が い く つ か あ る 場合、 リ ン カ は そ の う ち の 1
つ を イ メ ー ジ に 追加す る も の と し て 選択 し 、 他の す べ て を 破棄 し ま す。
選択 さ れ た COMMON セ ク シ ョ ン に は、選択 さ れ な か っ た す べ て の COMMON
セ ク シ ョ ン で定義 さ れ て い る す べ て の シ ン ボ ル が定義 さ れ て い な け れ ば
な り ま せ ん。 そ う で な い場合、 選択 さ れ な か っ た セ ク シ ョ ン で定義 さ れ
て い た シ ン ボ ル は、 未定義 に な り ま す。 選択 さ れ な か っ た コ ピ ー で定義
さ れ て い る シ ン ボ ル が、 選択 さ れ た コ ピ ー で定義 さ れ て い な い場合、 リ
ン カ に よ っ て エ ラ ー が生成 さ れ ま す。 こ の エ ラ ー は、 通常、 コ ン パ イ ラ
の エ ラ ー に よ っ て 発生 し ま す。 購入元 に お問い合わ せ下 さ い。
L6276E
ア ド レ ス <addr> が、 <s1> (<sp1> (<obj1>) か ら <src1> 経由) と <s2> (<sp2>
(<obj2>) か ら <src2> 経由) の両方 と し て マ ー ク さ れ て い ま す。
イ メ ー ジ は、 指定 さ れ た ア ド レ ス に 、 矛盾す る 複数の マ ッ ピ ン グ シ ン ボ
ル を 持 つ こ と は で き ま せ ん。 イ メ ー ジ内の各 ワ ー ド の内容は、 ARM ($a)
ま た は THUMB ($t) コ ー ド 、 DATA ($d)、 ま た は NUMBER と し て 、 一
意 に 型 を 決め ら れ て い る た め で す。 ワ ー ド が ARM コ ー ド と DATA の
両方で あ る こ と は で き ま せ ん。 こ の問題は、 コ ン パ イ ラ の エ ラ ー を 示 し
て い る 場合が あ り ま す。 購入元 に お問い合わ せ下 さ い。
L6277E
不明な コ マ ン ド '<cmd>' で す。
L6278E
予期 さ れ る <str> が あ り ま せ ん。
L6279E
<sym> の あ い ま い な セ レ ク タ ('<sel1>' と '<sel2>') が見つ か り ま し た。
L6280E
指定 さ れ た パ タ ー ン を 使用 し て <sym> の名前 を 変更す る こ と は で き ま せ ん。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6281E
RENAME (3-7 ペ ー ジ) .
<sym1> と <sym2> の両方の名前 を <newname> に変更す る こ と は で き ま せ ん。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6282E
RENAME (3-7 ペ ー ジ) .
<sym> の名前 を <newname> に変更す る こ と は で き ま せ ん。 こ れ は、 そ の名前の グ ロ ー バ ル シ ン
ボ ル が存在 し て い る た め で す (<obj> 内で定義)。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6283E
RENAME (3-7 ペ ー ジ) .
オ ブ ジ ェ ク ト <objname> に、 シ ン ボ ル <symbolname> へ の不正な ロ ー カ ル参照が含 ま れ て い
ま す。
オ ブ ジ ェ ク ト に は、 ロ ー カ ル シ ン ボ ル へ の参照 を 含め る こ と は で き ま せ
ん。 ロ ー カ ル シ ン ボ ル は、 常 に オ ブ ジ ェ ク ト 自体の内部で定義 さ れ る た
め で す。
L6285E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
再配置不能な ロ ー ド 領域 <lr_name> に R-Type の ダ イ ナ ミ ッ ク な再配置が含 ま れ て い ま す。 最
初の R-Type の ダ イ ナ ミ ッ ク な再配置が、 <object> (<secname>) の オ フ セ ッ ト 0x<offset>
で見つ か り ま し た。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-22
リ ン カのエ ラ ーおよび警告
こ の エ ラ ー は、 2 つ の セ グ メ ン ト が実行時 に 離れ た 場所 に 移動 さ れ る 場
合 に 、 各セ グ メ ン ト 間 に PI 参照が あ る と 発生 し ま す。 リ ン カ が 2 つ
の セ ク シ ョ ン を 実行時 に 離れ た 場所 に 移動で き る と 判断 し た 場合、 リ ン
カ は セ ク シ ョ ン が静的 に リ ン ク さ れ た ア ド レ ス か ら 移動 さ れ て も 解決で
き る 再配 (R-Type の再配置) を 生成 し ま す。 し か し 、 PI 領域 に は位
置 に 依存 し て は な ら な い と い う 制約が あ り 、 他の セ ク シ ョ ン と 関係が あ
る 再配置 を 持 つ こ と は で き な い た め、 リ ン カ は こ の再配置 に 失敗 し ま す
( エ ラ ー L6285E を 生成)。
L6286E
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) に {symname|%s}
が関係 し て い ま す。 値 (<val>) が (<rtype>) の範囲 (<range>) を 超え て い ま す。
こ の問題は、 通常、 手書 き の ア セ ン ブ ラ コ ー ド で、 命令 オ ペ コ ー ド 内の
フ ィ ー ル ド の ビ ッ ト 数が制限 さ れ て お り 、 離れ た 位置 に あ る シ ン ボ ル を
参す る に は不十分で あ る 場合 に 発生 し ま す。 例 え ば、LDR ま た は STR
で、 オ フ セ ッ ト が命令 に 対 し て 大 き す ぎ る 場合な ど で す (ARM 状態の
LDR/STR 命令で は +/-4095)。 そ れ以外の場合は、最新の パ ッ チ を
http://www.arm.com/support/downloads か ら イ ン ス ト ー ル し て
あ る こ と を 確認 し て 下 さ い。
詳細 に つ い て は、 「Value out of range for relocation」 ,
http://infocenter.arm.com/help/topic/com.arm.doc.faqs/ka3553.html を 参照
し て 下 さ い。
L6287E
不正な ア ラ イ メ ン ト 定数 (<align>) が <objname> (<secname>) に対 し て指定 さ れ て い ま す。
不正な ア ラ イ メ ン ト が ELF オ ブ ジ ェ ク ト に 対 し て 指定 さ れ ま し た 。
L6291E
固定実行領域 <ername> を ロ ー ド ア ド レ ス : <addr> に割 り 当て る こ と が で き ま せ ん。 ロ ー ド ア
ド レ ス は、 次に使用可能な ロ ー ド ア ド レ ス : <load_addr> 以で あ る必要が あ り ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6292E
実行領域の属性 (4-13 ペ ー ジ) .
不明な属性 '<attr>' が領域 <regname> に対 し て指定 さ れ て い ま す が、 無視 さ れ ま す。
こ の エ ラ ー メ ッ セ ー ジ は、FIXED 属性 を 持 つ 実行領域 に 固有の も の で す。
FIXED は、 ロ ー ド ア ド レ ス を 実行 ア ド レ ス と 同 じ に す る こ と を 意味 し ま
す。 リ ン カ が こ の よ う に で き る の は、 実行 ア ド レ ス が ロ ー ド 領域内で次
に 使用能な ロ ー ド ア ド レ ス 以上で あ る 場合 だ け で す。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
FIXED 属性を使用 し たルー ト 領域の作成 (8-17 ペ ー ジ) .
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6294E
実行領域の属性 (4-13 ペ ー ジ) .
<type> の領域 <regionname> は、 32 ビ ッ ト ア ド レ ス 空間 (ベ ー ス <base>、 サ イ ズ
<size> バ イ ト ) を 超え て い ま す。
こ の エ ラ ー メ ッ セ ー ジ は、 ス キ ャ ッ タ フ ァ イ ル の問題 に 関連 し て い ま
す。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
L6295E
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) に <symname> が関
係 し て い ま す。 SBREL 再配置で は、 イ メ ー ジ が RWPI で あ る 必要が あ り ま す。
L6296E
特別な シ ン ボ ル <sym1> の定義が不正で す。 こ れ は、 シ ン ボ ル <sym2> が絶対で あ る た め で す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-23
リ ン カのエ ラ ーおよび警告
L6188E を 参照 し て 下 さ い。
L6300W
Common セ ク シ ョ ン <object1> (<section1>) が セ ク シ ョ ン の定義 <object2>
(<section2>) よ り 大 き く な っ て い ま す。
こ の問題は、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。 購入元
にお問い合わせ下 さ い。
L6301W
フ ァ イ ル <filename> が見つ か り ま せ ん で し た : <reason>
デフ ォ ル ト デ ィ レ ク ト リ で、 指定 さ れた フ ァ イ ルが見つか り ませんで し
た。
L6302W
複数の SHLNAME エ ン ト リ は無視 さ れ ま す。
エデ ィ ッ ト フ ァ イ ル内で使用で き る SHLNAME エ ン ト リ は 1 つだけです。 最
初のエ ン ト リ だけが リ ン カに認識 さ れ ます。 後のすべての SHLNAME エ ン ト
リ は、 無視 さ れ ます。
L6304W
重複す る入力 フ ァ イ ル <filename> は無視 さ れ ま す。
指定 さ れた フ ァ イ ル名が、 入力フ ァ イ ルの リ ス ト 内に複数あ り ます。
L6305W
イ メ ー ジ に エ ン ト リ ポ イ ン ト が含 ま れ て い ま せ ん
に設定 さ れ て い ま せ ん)。
(指定 さ れ て い な い か、 複数選択 さ れ て い る た め
ELF イ メ ージのエ ン ト リ ポ イ ン ト が指定 さ れていないか、 リ ン ク さ れた
エ ン ト リ ポ イ ン ト を持つセ ク シ ョ ンが複数あ る ために設定 さ れてい ませ
ん。 リ ン カオプシ ョ ン --entry を使用 し て、 単一の一意のエ ン ト リ を指定
す る 必要があ り ます。 以下に例を示 し ます。
--entry 0x0
ま たは
--entry <label>
組み込みシ ス テ ムの場合は、 ラ ベル形式が一般的です。
L6306W
'<attr1>' セ ク シ ョ ン <objname> (<secname>) で は、 '<attr2>' 関数 <sym> の ア ド レ ス
を 使用で き ま せ ん。
L6238E を参照 し て下 さ い。
L6307W
再配置 #<rel_class> : <rel_num> (<objname> (<secname>) 内) に <sym> が関係 し て い
ま す。 境界整列 さ れ て い な い デ ス テ ィ ネ ー シ ョ ン へ の分岐で す。
L6308W
<membername> と 一致す る オ ブ ジ ェ ク ト が ラ イ ブ ラ リ <libraryname> 内に あ り ま せ ん。
ラ イ ブ ラ リ 内のオブジ ェ ク ト の名前が リ ン ク ラ イ ン で指定 さ れま し た
が、 ラ イ ブ ラ リ 内にその名前のオブジ ェ ク ト があ り ませんで し た。
L6309W
ラ イ ブ ラ リ <libraryname> に メ ン バ が含 ま れ て い ま せ ん。
リ ン カ コ マ ン ド ラ イ ン で ラ イ ブ ラ リ が指定 さ れ ま し たが、 ラ イ ブ ラ リ 内
に メ ンバがあ り ませんで し た。
L6310W
ARM ラ イ ブ ラ リ が見つ か り ま せ ん。
こ の問題は、 多 く の場合、 --libpath の引数が正 し く ないか、 定義 さ れて
い る 場合は、 環境変数 ARMCCnLIB が無効な値であ る こ と が原因です。
--libpath リ ン カオプシ ョ ン ま たは ARMCCnLIB 環境変数のいずれか を使っ
て、 適切なパ ス を設定 し て下 さ い。 Windows イ ン ス ト ールのデフ ォ ル ト
のパ ス は、 次の よ う にな り ます。
install_directory\lib
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-24
リ ン カのエ ラ ーおよび警告
こ のパ ス に、 以下の も のが含まれていない こ と を確認 し て下 さ い。
•
\armlib
•
\cpplib
•
末尾の円記号 (\) こ れ ら は、 リ ン カに よ っ て自動的に追加 さ れま
す。
リ ン カが ラ イ ブ ラ リ を探す場所を表示す る には、 --verbose ま たは --info
libraries を使用 し ます。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--info=topic[,topic,...] (2-80 ペ ー ジ)
•
--libpath=pathlist (2-97 ペ ー ジ)
•
--verbose (2-187 ページ) .
『ARM コ ンパ イ ラ ツールチ ェーンの概要』 の以下のセ ク シ ョ ン を参照 し
て下 さ い。
•
L6311W
ツールチ ェーンの環境変数 (2-16 ページ) .
シ ン ボ ル <symbol> (<objname> か ら 参照) が定義 さ れ て い ま せ ん。
L6218E を参照 し て下 さ い。
L6312W
<type> 領域の説明 (領域 <region>) が空白で す。
L6313W
現在は <oldname> を セ ク シ ョ ン セ レ ク タ と し て使用す る こ と は で き ま せ ん。 代わ り に
<newname> を 使用 し て下 さ い。
例えば、 ス キ ャ ッ タ フ ァ イ ルで IWV$$Code を使用す る こ と はで き ません。
IWV$$Code を Veneer$$Code と 置 き 換え て下 さ い。
L6314W
パ タ ー ン <module> (<section>) に一致す る セ ク シ ョ ン が あ り ま せ ん。
例:
パ タ ー ン foo.*o (ZI) に一致す る セ ク シ ョ ン が あ り ま せ ん。
こ の問題の原因 と し て、 次の 2 つが考え ら れ ます。
•
フ ァ イ ル foo.o が ス キ ャ ッ タ フ ァ イ ルで指定 さ れてい ますが、 リ ン
カ コ マ ン ド ラ イ ンの リ ス ト には含ま れてい ません。 こ の問題を解決
す る には、 リ ン ク ラ イ ン foo.o を追加 し て下 さ い。
•
foo.o の ZI デー タ を ス キ ャ ッ タ フ ァ イ ルを使っ て配置 し よ う と し ま
し たが、 foo.o に ZI デー タ が含ま れてい ませんで し た。 こ の問題を
解決す る には、 ス キ ャ ッ タ フ ァ イ ル内の foo.o の行か ら +ZI 属性を
削除 し ます。
L6315W
オ ブ ジ ェ ク ト <objname> 内の複数の Build 属性シ ン ボ ル は無視 さ れ ま す。
オブジ ェ ク ト には、 最大で 1 つの絶対的な BuildAttribute$$... シ ン ボル
を含め る こ と がで き ます。 オブジ ェ ク ト シ ン ボルテーブルの、 こ の よ う
な最初のシ ン ボルだけが リ ン カに認識 さ れ ます。 後のすべてのン ボル
は、 無視 さ れます。
L6316W
ARM DUI 0496GJ
ID 0 5 1 6 1 2
オ ブ ジ ェ ク ト <objname> (セ ク シ ョ ン <sec_no>) の複数の Build 属性シ ン ボ ル は無視 さ れ ま
す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-25
リ ン カのエ ラ ーおよび警告
オブジ ェ ク ト には、 特定のセ ク シ ョ ンに適用 さ れ る 、 最大で 1 つの
BuildAttribute$$... シ ン ボルを含め る こ と がで き ます。 オブジ ェ ク ト シ ン
ボルテーブルの、 こ の よ う な最初のシ ン ボルだけが リ ン カに認識 さ れま
す。 後のすべてのン ボルは、 無視 さ れ ます。
L6317W
<objname> (<secname>) は、 '<attr1>' 関数 <sym> の ア ド レ ス を 使用で き ま せ ん。 こ れ は、
イ メ ー ジ に '<attr2>' 関数が含 ま れ て い る た め で す。
L6318W
<objname> (<secname>) に、 コ ー ド で は な い シ ン ボ ル <sym> へ の分岐が含 ま れ て い ま す。
こ の警告は、 通常はアセ ン ブ ラ フ ァ イ ルに、 同 じ フ ァ イ ル内の (別の
AREA 内の) コ ー ド ではないシ ン ボルへの分岐があ る こ と を意味 し てい ま
す。 こ れは、 多 く の場合、 コ ー ド ではな く デー タ があ る 場所の ラ ベルま
たは ド レ スへの分岐です。
以下に例を示 し ます。
AREA foo, CODE
B bar
AREA bar, DATA
DCD 0
END
こ の場合、 次の よ う な メ ッ セージが表示 さ れます。
init.o (foo) に、 コ ー ド で は な い シ ン ボ ル bar へ の分岐が含 ま れ て い ま す。
次の よ う に、 デス テ ィ ネーシ ョ ン の名前がない場合は、
BL 0x200 ; PC の 0x200 バ イ ト 先へ の リ ン ク を 持つ分岐
次の メ ッ セージが表示 さ れ ます。
bootsys.o (BOOTSYS_IVT) に、 コ ー ド で は な い シ ン ボ ル <Anonymous Symbol> へ の分岐が
含 ま れ て い ま す。
こ の警告は、 GCC に よ っ て生成 さ れたオブジ ェ ク ト を リ ン ク し た場合
に も 表示 さ れ る こ と があ り ます。 GCC は、 各オブジ ェ ク ト への内部的な
参照に リ ン カの再配置を使用 し ます。 こ れ ら の再配置の タ ーゲ ッ ト は、
通常、 タ ーゲ ッ ト が コ ー ド であ る かデー タ であ る か を リ ン カが判断す る
ための切なマ ッ ピ ン グ シ ン ボルを持たないため、 警告が生成 さ れます。
一方、 armcc は、 こ の よ う なすべての参照を コ ンパ イ ル時に解決 し ます。
L6319W
<cmd> コ マ ン ド は無視 さ れ ま す。 セ ク シ ョ ン <objname> (<secname>) が見つ か り ま せ ん。
例えば、 Linux アプ リ ケーシ ョ ン を ビル ド す る と き 、
--keep *(.init_array)
を メ イ ク フ ァ イ ルの リ ン カ コ マ ン ド ラ イ ン で指定 し た と し て も 、 こ のセ
ク シ ョ ンは C++ な し で ビル ド し た場合には存在 し ないため、 次の警告が
報 さ れます。
--keep コ マ ン ド は無視 さ れ ま す。 セ ク シ ョ ン * (.init_array) が見つ か り ま せ ん。
通常は、 こ の警告を無視す る か、 --diag_suppress 6319 を使っ て非表示に
す る こ と がで き ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
L6320W
<cmd> コ マ ン ド は無視 さ れ ま す。 引数 '<argname>' が見つ か り ま せ ん。
L6323W
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) に <sym> が関係 し
て い ま す。 複数の バ リ ア ン ト が存在 し ま す。 <type> バ リ ア ン ト を 使用 し て、 い ま い さ を 解決 し ま
す
L6324W
<attr> 属性が ロ ー ド 領域 <regname> に対 し て指定 さ れ て い ま す が、 無視 さ れ ま す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-26
リ ン カのエ ラ ーおよび警告
こ の属性は、 実行領域のみに適用 さ れます。 ロ ー ド 領域に対 し て指定 さ
れた場合、 リ ン カは こ の属性を無視 し ます。
L6325W
ベ ー ス ア ド レ ス か ら の +offset を 使用す る <attr> 属性が領域 <regname> に対 し て指定 さ
れ て い ま す が、 無視 さ れ ま す。
こ の属性は、 +offset 形式の ベ ー ス ア ド レ ス を 使用す る 領域 に は適用 さ
れ ま せ ん。 +offset 形式 を 使用す る 領域 に 対 し て 指定 さ れ た 場合、 リ ン
カ は こ の属性 を 無視 し ま す。
+offset 形式の ベ ー ス ア ド レ ス を 使用す る 領域は、 PI、 RELOC、 お よ び
OVERLAY 属性 を 以下の い ず れ か か ら 継承 し ま す。
•
•
記述内の前の領域。
ロ ー ド 領域内の最初の実行領域で あ る 場合は、 親 ロ ー ド 領域。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
ロ ー ド 領域のア ド レ ス属性の継承規則 (4-20 ペ ー ジ)
実行領域のア ド レ ス属性の継承規則 (4-21 ペ ー ジ)
•
•
RELOC ア ド レ ス属性の継承規則 (4-22 ペ ー ジ) .
L6326W
非ル ー ト 実行領域 <ername> の ZEROPAD 属性は無視 さ れ ま す。
ZEROPAD は、 ル ー ト 実行領域の み に 適用 さ れ ま す。 ル ー ト 領域は、 そ の
実行 ア ド レ ス が ロ ー ド ア ド レ ス と 同 じ で あ る 領域で す。 そ の た め、 実行
時 に 移動 コ ピ ー が必要あ り ま せ ん。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6329W
実行領域の属性 (4-13 ペ ー ジ) .
パ タ ー ン <module> (<section>) は、 削除 さ れ た未使用の セ ク シ ョ ン と の み一致 し ま す。
こ の パ タ ー ン と 一致す る す べ て の セ ク シ ョ ン が、 使用 さ れ な い た め、 イ
メ ー ジ か ら 削除 さ れ ま し た 。 詳細 に つ い て は、 --info unused を 使用 し て
下 さ い。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
未使用セ ク シ ョ ンの削除 (5-6 ペ ー ジ) .
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6330W
--info=topic[,topic,...] (2-80 ペ ー ジ) .
シ ン ボ ル <symbol> (<objname> か ら 参照) が定義 さ れ て い ま せ ん。 未使用の セ ク シ ョ ン が削除
さ れ ま し た。
こ れ は、 未使用の セ ク シ ョ ン 内の ベ ー ス シ ン ボ ル と リ ミ ッ ト シ ン ボ ル が
参照 さ れ て い た こ と を 意味 し て い ま す。 詳細 に つ い て は、 --info unused
を 使用 し て 下 さ い。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
未使用セ ク シ ョ ンの削除 (5-6 ペ ー ジ) .
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
--info=topic[,topic,...] (2-80 ペ ー ジ) .
L6331W
パ タ ー ン <pat> と 一致す る 有効な グ ロ ー バ ル シ ン ボ ル が あ り ま せ ん。
L6332W
シ ン ボ ル <sym1> (<obj1> か ら 参照) が定義 さ れ て い ま せ ん。 シ ン ボ ル <sym2> に解決 さ れ ま
し た。
L6334W
領域 <regname> の オ ー バ ー ア ラ イ メ ン ト <overalignment> は負に で き ま せ ん。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-27
リ ン カのエ ラ ーおよび警告
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
実行領域 と 入力セ ク シ ョ ンのオーバーア ラ イ メ ン ト (8-61 ページ)
.
L6335W
<objname> (<secname>) 内の ARM イ ン タ ー ワ ー キ ン グ コ ー ド に、 ARM 非 イ ン タ ー ワ ー キ ン グ
コ ー ド に対す る無効な末尾の呼び出 し が含 ま れ て い る 可能性が あ り ま す。
コ ンパ イ ラ は、 コ ー ド のサ イ ズ と パフ ォ ーマ ン ス を向上 さ せ る ために、
末尾呼び出 し の最適化を行 う こ と がで き ます。 し か し 、 アーキ テ ク チ ャ
4T コ ー ド では、 Thumb IW 関数が (ベニ アに よ っ て) ARM IW 関数を呼
び出すシーケ ン ス で、 ARM 非 IW 関数の末尾呼び出 し が行われ る 問題が
あ り ます。 ARM IW 関数か ら の復帰では、 適切な BX 命令を使わずに、
復帰ア ド レ ス を ス タ ッ ク か ら PC にポ ッ プす る 場合があ り ます。 リ ン カ
は こ の状況を検出 し 上記の警告を報告で き ます。
Thumb IW か ら の Thumb 非 IW の末尾呼び出 し は発生 し ません。 Thumb
の B での末尾呼び出 し は範囲が狭 く 、 同 じ ELF セ ク シ ョ ン内の関数 と
し て生成 さ れ る だけであ り 、 それ ら も Thumb にな る ためです。
こ の警告は、 オブジ ェ ク ト に無効な末尾呼び出 し が含ま れてい る 可能性
があ る と い う 点で問題ですが、 リ ン カはオブジ ェ ク ト の属性を調べてい
る だけであ り 、 そのセ ク シ ョ ンの内容を調べてはいないので、 確実では
あ り ません。
警告を回避す る には、 コ ー ド ベース全体を ユーザ ラ イ ブ ラ リ も 含めて、
--apcs /interwork で再 コ ンパ イ ルす る か、 手動で ARM IW 関数を調べて
末尾呼び出 し (通常の分岐 B 命令を使っ て関数呼び出 し が行われてい る
個所) を確認 し 、 こ の告が実際に問題であ る か ど う か をチ ェ ッ ク し ま
す。 こ の警告は、 --diag_suppress L6335W を使用 し て非表示にで き ます。
L6337W
Common コ ー ド セ ク シ ョ ン <o1> (<s1>) お よ び <o2> (<s2>) に互換性の な い浮動小数点 リ ン
ケ ー ジ が含 ま れ て い ま す
L6339W
実行領域 <er_name> の RELOC 属性は無視 さ れ ま す。
実行領域には、 明示的に RELOC 属性を指定す る こ と はで き ません。 こ の
属性にな る のは、 +offset 形式のア ド レ シ ン グ を使用 し てい る 場合に、 親
ロ ー ド 領域ま たは前の実行領域か ら 属性を継承す る と き だけです。
『 リ ン カ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
L6340W
実行領域の属性 (4-13 ページ) .
リ ン ク 型 <linktype> の場合、 first オ プ シ ョ ン と last オ プ シ ョ ン は無視 さ れ ま す
--first お よ び --last オプシ ョ ンは、 部分的に リ ン ク さ れたオブジ ェ ク
ト を作成す る 場合には無意味です。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
L6366E
<object> の属性 <attr> は、 指定 さ れ た CPU と FPU の属性 <cli> <diff> と 互換性が あ
り ま せ ん。
L6367E
<object> (<section>) の属性 <attr> は、 指定 さ れ た CPU と FPU の属性 <cli>
<diff> と 互換性が あ り ま せ ん
L6368E
<object> (<section>) で定義 さ れ た <symbol> の属性 <attr> は、 指定 さ れ た CPU と
FPU の属性 <cli> <diff> と 互換性が あ り ま せ ん
L6369E
<object> (ABSOLUTE) で定義 さ れ た <symbol> は、 指定 さ れ た CPU と FPU の属性 <cli>
<diff> と 互換性が あ り ま せ ん
L6370E
CPU <cpu> は FPU <fpu> と 互換性が あ り ま せ ん
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-28
リ ン カのエ ラ ーおよび警告
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--cpu=name (2-38 ペ ー ジ)
•
--fpu=name (2-76 ページ) .
L6371E
CPU と FPU の属性 を 追加 し て い ま す : <attrs>
L6372E
イ メ ー ジ に は少な く と も 1 つ の ロ ー ド 領域が必要で す。
L6373E
libattrs.map フ ァ イ ル が シ ス テ ム ラ イ ブ ラ リ デ ィ レ ク ト リ <dir> で見つ か り ま せ ん。 ラ イ ブ
ラ リ の選択が不適切な可能性が あ り ま す。
L6384E
名前 <region> の ロ ー ド 実行領域が ま だ行 <line> に見つ か り ま せ ん。
原因 と し て、 ス キ ャ ッ タ フ ァ イ ルでの制限計算で現在のベース ア ド レ ス
を使用 し た こ と が考え ら れます。 以下に例を示 し ます。
ER_foo 0 ImageBase(ER_foo)
L6385W
行 <line> で加算 オ ー バ ー フ ロ ー が発生 し ま し た
L6386E
実行領域の式は、 行 <line> の ベ ー ス ア ド レ ス計算で の み使用で き ま す
L6387E
ロ ー ド 領域の式は、 行 <line> の ScatterAssert 式で の み使用で き ま す
『 リ ン カ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
ScatterAssert 関数 と ロ ー ド ア ド レ ス に関連す る 関数 (4-42 ページ)
•
.
L6388E
行 <line> で ScatterAssert 式 <expr> の エ ラ ー が発生 し ま し た
『 リ ン カ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
ScatterAssert 関数 と ロ ー ド ア ド レ ス に関連す る 関数 (4-42 ページ)
•
.
L6389E
行 <line> の ロ ー ド 領域 <name> が未完了で、 領域の長 さ に依存す る演算 を 使用で き ま せ ん
L6390E
条件式 (expr) ? 行 <line> の (expr) : (expr) に :(expr) が あ り ま せ ん。
『 リ ン カ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ス キ ャ ッ タ フ ァ イ ル内の式の評価について (4-34 ページ)
•
ス キ ャ ッ タ フ ァ イ ル内の式の規則 (4-36 ページ) .
L6404W
実行領域 <name> に は、 EMPTY、 ZEROPAD お よ び PADVALUE の組み合わ せ よ り も FILL 値 を
使用 し て く だ さ い。
『 リ ン カ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
実行領域の属性 (4-13 ページ) .
•
L6405W
セ ク シ ョ ン <name> (<objname>) と 一致す る .ANY セ レ ク タ が あ り ま せ ん。
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
.ANY モジ ュールセ レ ク タ に よ る未割 り 当てセ ク シ ョ ンの配置
•
(8-25 ペ ー ジ) .
L6406W
セ ク シ ョ ン <name> (<objname>) と 一致す る .ANY セ レ ク タ が あ る実行領域の ス ペ ー ス が あ り
ま せ ん。
こ の問題は、 .ANY を 含む ス キ ャ ッ タ フ ァ イ ル領域 に 、 リ ス ト さ れ て い る
セ ク シ ョ ン を 配置す る た め の十分な ス ペ ー ス が な い場合 に 発生 し ま す。
セ ク シ ョ ン の た め十分な ス ペ ー ス が あ る よ う に 、 ス キ ャ ッ タ フ ァ イ ル を
変更す る 必要が あ り ま す。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-29
リ ン カのエ ラ ーおよび警告
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
.ANY モジ ュールセ レ ク タ に よ る未割 り 当てセ ク シ ョ ンの配置
(8-25 ペ ー ジ) .
L6407W
集合サ イ ズ 0x<size> バ イ ト の セ ク シ ョ ン は .ANY セ レ ク タ に収 ま り ま せ ん。
こ の警告は、 ど の .ANY セ レ ク タ に も 配置で き な い イ メ ー ジ デ ー タ の総
量 を 特定 し ま す。
例 え ば、 次の よ う に 、 ZI デ ー タ の量 に 対 し て 小 さ す ぎ る 実行領域 に
.ANY(+ZI) が配置 さ れ る 場合で す。
ROM_LOAD 0x8000
{
ROM_EXEC 0x8000
{
.ANY(+RO,+RW)
}
RAM +0 0x{...} <<< 領域の最大長が小 さ す ぎ る
{
.ANY(+ZI)
}
}
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
.ANY モジ ュールセ レ ク タ に よ る未割 り 当てセ ク シ ョ ンの配置
•
(8-25 ペ ー ジ) .
L6408W
出力は --fpic で す が、 <obj> の セ ク シ ョ ン <sec> に は FPIC 属性が あ り ま せ ん。
L6409W
出力は --fpic で す が、 オ ブ ジ ェ ク ト <obj> に は FPIC 属性が あ り ま せ ん。
L6410W
STV_DEFAULT の可視性 <vis> が な い シ ン ボ ル <sym> は、 静的に解決 さ れ る必要が あ り 、
<lib> の定義は使用で き ま せ ん。
L6411W
起動シ ン ボ ル <name> の定義 と 互換性の あ る ラ イ ブ ラ リ が存在 し ま せ ん。
L6412W
オ ブ ジ ェ ク ト <obj> の セ ク シ ョ ン <sec> に対 し て、 オ ブ ジ ェ ク ト <srcobj> の セ ク シ ョ ン
<srcsec> の非 R_ARM_ABS32 再配置の マ ー ジ を 無効に し ま す。
L6413W
オ ブ ジ ェ ク ト <obj> の セ ク シ ョ ン <sec> の マ ー ジ を 無効に し ま す。 セ ク シ ョ ン に、 配置が間
違 っ た文字列が含 ま れ て い ま す。
L6414E
--ropi が --rwpi ま た は --rw-base な し で使わ れ て い ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
L6415E
•
--ropi (2-138 ペ ー ジ)
•
--rw_base=address (2-141 ペ ー ジ)
•
--rwpi (2-142 ページ) .
こ の イ メ ー ジ と 互換性の あ る ラ イ ブ ラ リ の一意の セ ッ ト が見つ か り ま せ ん で し た。 --cpu オ プ
シ ョ ン を 使用 し て特定の ラ イ ブ ラ リ を 選択す る こ と 推奨 し ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
--cpu=name (2-38 ペ ー ジ) .
L6416E
<objname> (<secname>) 内の <relclass> : <idx> に あ る 再配置 <type> は、 そ の タ ー
ゲ ッ ト か ら の オ フ セ ッ ト <offset> が あ る状態で は ベ ニ ア を 挿入す る こ と が で ま せ ん。
L6417W
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) は予約済み の タ グ付
け シ ン ボ ル (#<idx>) と 関係 し て い ま す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-30
リ ン カのエ ラ ーおよび警告
L6418W
<objname> (<secname>) で定義 さ れ て い る タ グ付け シ ン ボ ル <symname> は認識 さ れ ま せ ん。
L6419W
未定義の シ ン ボ ル <symbol> (<objname> か ら 参照) が イ ン ポ ー ト さ れ ま し た。
L6420E
<oepname> (<secname> : <secnum>) は認識 さ れ た型で は な い た め、 無視 さ れ ま す。
L6422U
PLT の生成に は ARM 命令 を サ ポ ー ト し て い る ア ー キ テ ク チ ャ が必要で す。
PLT を生成す る リ ン カの場合は、 ARM 命令セ ッ ト を サポー ト し てい る
タ ーゲ ッ ト を使用す る 必要があ り ます。 例えば、 Cortex-M3 タ ーゲ ッ ト
に対 し て、 リ ン カは PLT を生成で き ません。
L6423E
同 じ コ レ ク シ ョ ン 内で は、 セ ク シ ョ ン <secname> に種類の異な る ソ ー ト 属性 を 含め る こ と は で き
ま せ ん。
L6424E
同 じ コ レ ク シ ョ ン 内で は、 セ ク シ ョ ン <secname1> お よ び セ ク シ ョ ン <secname2> を 別の実行
領域に分け る こ と は で き ま せ ん。
L6425E
同 じ コ レ ク シ ョ ン 内で は、 セ ク シ ョ ン <secname> に長 さ の異な る セ ク シ ョ ン 名 を 付け る こ と は で
き ま せ ん。
L6426E
同 じ コ レ ク シ ョ ン 内で は、 セ ク シ ョ ン <secname> は重複 し た名前 を 持つ こ と は で き ま せ ん。
L6427E
<sym> の名前は既に <name> に変更 さ れ て い る た め、 <newname> に変更で き ま せ ん。
L6429U
オ ー プ ン す る フ ァ イ ル の最大数 を <val> に設定 し よ う と し ま し た が、 エ ラ ー コ ー ド <error> に
よ り 失敗 し ま し た。
armlink がいつで も 開いておけ る フ ァ イ ルハン ド ルの数を増やそ う と し
ま し たが、 失敗 し ま し た。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
L6431W
<object> (<section>) で定義 さ れ て い る Symbol <symbol> の互換性の な い列挙型サ イ ズ属
性は無視 さ れ ま す。
L6432W
オ ブ ジ ェ ク ト <object> (<section>) の互換性の な い列挙型サ イ ズ属性は無視 さ れ ま す。
L6433W
オ ブ ジ ェ ク ト <object> の互換性の な い列挙型サ イ ズ属性は無視 さ れ ま す。
L6434W
<object> (<section>) で定義 さ れ て い る Symbol <symbol> の互換性の な い wchar_t サ
イ ズ属性は無視 さ れ ま す。
L6435W
セ ク シ ョ ン <object> (<section>) の互換性の な い wchar_t サ イ ズ属性は無視 さ れ ま す。
L6436W
オ ブ ジ ェ ク ト <object> の互換性の な い wchar_t サ イ ズ属性は無視 さ れ ま す。
L6437W
再配置 #<rel_class> : <idx> (<objname> (<secname>) 内) に <armsym> が関係 し て い ま
す。 オ ブ ジ ェ ク ト <armobjname> の型な し シ ン ボ ル へ の分岐の再配置で、 タ ー ゲ ッ ト の状態が不
明で す。
L6438E
<objname> (<secname>) ア ド レ ス <address> の __AT セ ク シ ョ ン は、 少な く と も 4 バ イ
ト 境界で整列 さ れ て い る必要が あ り ま す。
L6439W
<objname> (<secname>) で複数回定義 さ れ て い る グ ロ ー バ ル シ ン ボ ル <sym> が、 <selobj>
(<selsec>) で定義 さ れ て い る シ ン ボ ル の た め に拒否 さ れ ま し た。
L6440E
リ ン ク 時の コ ー ド 生成で予期 し な い エ ラ ー が発生 し ま し た
L6441U
開い て い る フ ァ イ ル の最大数 を 取得す る た め の シ ス テ ム コ ー ル が エ ラ ー <error> の た め に失敗 し
ま し た。
L6442U
リ ン カ に は開か れ て い る フ ァ イ ル が最低で も <min> 個必要で す。 現在の シ ス テ ム の上限は
<max> フ ァ イ ル で す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-31
リ ン カのエ ラ ーおよび警告
L6443W
領域 <region> の デ ー タ 圧縮が無効に な っ て い ま す。 領域に は、 圧縮 さ れ た ア ド レ ス に依存 し て
い る シ ン ボ ル <symname> へ の参照が含 ま れ て い ま す。
リ ン カでは、 領域の内容が圧縮前に固定 さ れ る 必要があ り 、 圧縮後は内
容を変更で き ません。 そのため、 圧縮可能領域は圧縮処理に依存す る メ
モ リ 位置を参照で き ません。
L6444I
シ ン ボ ル の可視性 : <symname> は <visibility> に設定 さ れ て い ま す。
L6445I
シ ン ボ ル の可視性 : <symname> は、 既存の <old_vis> お よ び新 し い <new_vis> か ら
<set_vis> に マ ー ジ さ れ ま し た。
L6447E
SHT_PREINIT_ARRAY セ ク シ ョ ン は共有オ ブ ジ ェ ク ト で は使用で き ま せ ん。
L6448W
<filename> の処理中 : <message>
L6449E
<filename> の処理中 : <message>
L6450U
ラ イ ブ ラ リ <libname> が見つ か り ま せ ん。
L6451E
Thumb を 許可の う え作成 さ れ た <object> は、 ARM 専用の リ ン ク で は使用で き ま せ ん。
L6452E
Thumb を 許可の う え作成 さ れ た <object> (<section>) は、 ARM 専用の リ ン ク で は使用で き
ま せ ん。
L6453E
Thumb を 許可の う え作成 さ れ た <object> (<section>) で定義 さ れ た <symbol> は、 ARM
専用の リ ン ク で は使用で き ま せ ん。
L6454E
Thumb を 許可の う え作成 さ れ た <object> (ABSOLUTE) で定義 さ れ た <symbol> は、 ARM 専
用の リ ン ク で は使用で き ま せ ん。
L6455E
シ ン ボ ル <symbolname> は、 <object1> と <object2> に よ る ARM/Thumb 同義語定義 を 破
棄 し ま し た。
L6459U
テ ン ポ ラ リ フ ァ イ ル を 作成で き ま せ ん で し た。
L6462E
共有 ラ イ ブ ラ リ か ら の <sym> へ の参照は、 オ ブ ジ ェ ク ト <obj> 内の可視性が Hidden ま た は
Protected で あ る定義 と だ け一致 し ま す。
L6463U
入力 オ ブ ジ ェ ク ト に <archtype> 命令が含 ま れ て い ま し た が、 オ ブ ジ ェ ク ト 属性に基づ く
<archtype> ア ー キ テ ク チ ャ の有効な タ ー ゲ ッ ト が見つ か り ま せ で し た。 --cpu オ プ シ ョ ン を 使
用 し て特定の CPU を 選択す る こ と を 推奨 し ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
L6464E
--cpu=name (2-38 ペ ー ジ) .
--dynamic_debug、 --emit-relocs、 お よ び --emit-debug-overlay-relocs の う ち の 1
つ だ け を 選択で き ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--dynamic_debug (2-50 ペ ー ジ)
•
--emit_debug_overlay_relocs (2-54 ペ ー ジ)
•
--emit_relocs (2-57 ペ ー ジ) .
L6467W
ラ イ ブ ラ リ か ら 注釈が レ ポ ー ト さ れ て い ま す : <msg>
L6468U
--base_platform と コ ー ド を 含む複数の ロ ー ド 領域で は、 --pltgot=direct お よ び
--pltgot=none の み が サ ポ ー ト さ れ て い ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
--base_platform (2-18 ペ ー ジ)
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-32
リ ン カのエ ラ ーおよび警告
•
L6469E
--pltgot=type (2-122 ページ) .
--base_platform は、非 RELOC 実行領域 を 含む RELOC ロ ー ド 領域 を サ ポ ー ト し て い ま せ ん。
ロ ー ド 領域 <lrname> 内の実行領域 <ername> の ベ ー ス ア ド レ ス に は +0 を 使用 し て下 さ い。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--base_platform (2-18 ペ ー ジ)
•
RELOC ア ド レ ス属性の継承規則 (4-22 ページ) .
L6470E
PLT セ ク シ ョ ン <secname> を ロ ー ド 領域 <lrname> の外へ移動す る こ と は で き ま せ ん。
L6471E
分岐の再配置 <rel_class> : <idx> (セ ク シ ョ ン <secname>、 オ ブ ジ ェ ク ト <objname>) は、
オ ブ ジ ェ ク ト <armobjname> の ARM 絶対 <armsym> シ ン ボ ル を 参照 し ま す。 Thumb ア ド レ
ス と し て扱 う 場合は、 エ ラ ー を 非表示に し ま す。
再配置 #<rel_class> : <idx> (<objname> (<secname>) 内) に <armsym> が関係 し て い ま
す。 分岐は <armobjname> で定義 さ れ て い る ARM 絶対シ ン ボ ル を 参照 し ま す。 Thumb ア ド レ
ス と し て扱 う 場合は、 エ ラ ー を 非表示に し ま す。
L6475W
IMPORT/EXPORT コ マ ン ド は、 --override_visibility が指定 さ れ て い な い場合は無視 さ れ ま
す
ス テ ア リ ン グ フ ァ イ ル内の EXPORT コ マ ン ド を使 う か、
--undefined_and_export コ マ ン ド ラ イ ン オプシ ョ ン を使っ てエ ク ス ポー ト
し よ う と し たシ ン ボルは、 可視性が低いため、 エ ク ス ポー ト さ れません
で し た。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--override_visibility (2-116 ペ ー ジ)
•
--undefined_and_export=symbol (2-178 ペ ー ジ)
•
EXPORT (3-2 ページ) .
L6616E
RegionTable <sec_name> (<obj_name>) の サ イ ズ を 増や す こ と が で き ま せ ん
L6617E
ZISectionTable <sec_name> (<obj_name>) の サ イ ズ を 増や す こ と が で き ま せ ん
L6629E
括弧が一致 し ま せ ん。) が予期 さ れ ま し た が、 <character> が、 位置 <col>、 行 <line> で見
つか り ま した
こ の メ ッ セージは、 ス キ ャ ッ タ フ ァ イ ルの解析エ ラ ーを示 し てい ます。
L6630E
ト ー ク ン の先頭が無効で す。 数値 ま た は (が予期 さ れ ま し た が、 <character> が、 位置 <col>、
行 <line> で見つ か り ま し た。
こ の メ ッ セージは、 ス キ ャ ッ タ フ ァ イ ルの解析エ ラ ーを示 し てい ます。
L6631E
行 <line> に ゼ ロ に よ る除算が あ り ま す
こ の メ ッ セージは、 ス キ ャ ッ タ フ ァ イ ルの式評価エ ラ ーを示 し てい ま
す。
L6632W
行 <line> で除算が ア ン ダ ー フ ロ ー し て い ま す
こ の メ ッ セージは、 ス キ ャ ッ タ フ ァ イ ルの式評価エ ラ ーを示 し てい ま
す。
L6634E
'<filename>' の プ リ プ ロ セ ッ サ コ マ ン ド が長す ぎ ま す。 最大長は <max_size> で す。
こ の メ ッ セージは、 ス キ ャ ッ タ フ ァ イ ルのプ リ プ ロ セ ッ シ ン グに問題が
あ る こ と を示 し てい ます。
L6635E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
プ リ プ ロ セ ッ サ に よ っ て生成 さ れ た中間 フ ァ イ ル '<filename>' を 開 く こ と が で き ま せ ん :
<reason>
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-33
リ ン カのエ ラ ーおよび警告
こ の メ ッ セージは、 ス キ ャ ッ タ フ ァ イ ルのプ リ プ ロ セ ッ シ ン グに問題が
あ る こ と を示 し てい ます。
L6636E
'<filename>' の プ リ プ ロ セ ッ サ処理が で き ま せ ん で し た。
こ の メ ッ セージは、 ス キ ャ ッ タ フ ァ イ ルのプ リ プ ロ セ ッ シ ン グに問題が
あ る こ と を示 し てい ます。
L6637W
入力 オ ブ ジ ェ ク ト が指定 さ れ て い ま せ ん。 少な く と も 1 つ の入力オ ブ ジ ェ ク ト ま た は ラ イ ブ ラ リ
(オ ブ ジ ェ ク ト ) を 指定す る 必要が あ り ま す。
少な く と も 1 つの入力オブジ ェ ク ト ま たは ラ イ ブ ラ リ (オブジ ェ ク ト )
を指定す る 必要があ り ます。
L6638U
オ ブ ジ ェ ク ト <objname> に は、 リ ン ク 順序の依存関係サ イ ク ル が あ り ま す。 SHF_LINK_ORDER
を 使用 し て セ ク シ ョ ン を チ ェ ッ ク し て く だ さ い。
L6640E
PDTTable セ ク シ ョ ン は最小の ス タ テ ィ ッ ク デ ー タ ア ド レ ス で は あ り ま せ ん。 最小の ス タ テ ィ ッ ク
デ ー タ セ ク シ ョ ン は <secname> で す。
RWPI の共有 ラ イ ブ ラ リ を実装す る シ ス テ ムは、 プ ロ セ スデー タ テーブ
ル (PDT) を使用 し ます。 こ れは リ ン カに よ っ て静的な リ ン ク 時に作成
さ れ、 イ メ ージのデー タ 領域の先頭に配置 さ れ る 必要があ り ます。
こ の メ ッ セージは、 PDT を イ メ ージのデー タ 領域の先頭に配置す る こ と
を ス キ ャ ッ タ フ ァ イ ルが許可 し ていない こ と を示 し てい ます。
メ ッ セージが表示 さ れない よ う にす る には、 ス キ ャ ッ タ フ ァ イ ルを調整
し て、 PDT が正 し く 配置 さ れ る よ う に し ます。 こ の メ ッ セージは、 間
違っ オブジ ェ ク ト フ ァ イ ルを --apcs=/rwpi で ビル ド し た場合に も 表示 さ
れます。
L6642W
<obj_name> が --vfe を 使用 し て コ ン パ イ ル さ れ て い な い た め、 未使用の仮想関数の削除は正
し く 機能 し な い可能性が あ り ま す
L6643E
セ ク シ ョ ン <sectionname> 内の仮想関数の削除情報は、 間違 っ た セ ク シ ョ ン を 参照 し て い ま す。
こ の メ ッ セージは、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。
購入元にお問い合わせ下 さ い。
L6644E
セ ク シ ョ ン <oepname> (<sectionname>) 内の仮想関数の削除情報の読み出 し 中に、 予期せ ず
に バ ッ フ ァ の最後に到達 し ま し た。
こ の メ ッ セージは、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。
購入元にお問い合わせ下 さ い。
L6645E
セ ク シ ョ ン <oepname> (<sectionname>) 内の仮想関数の削除情報が正 し く あ り ま せ ん : オ フ
セ ッ ト <offset> で の再配置が あ る は ず で す。
こ の メ ッ セージは、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。
購入元にお問い合わせ下 さ い。
L6646W
セ ク シ ョ ン <oepname> (<sectionname>) 内の仮想関数の削除情報に、 オ フ セ ッ ト <offset>
よ り 前か ら の ガ ベ ー ジ が含 ま れ て い ま す。
こ の メ ッ セージは、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。
購入元にお問い合わせ下 さ い。
L6647E
<vcall_objectname> (<vcall_sectionname>) の仮想関数の削除情報が、 セ ク シ ョ ン
<curr_sectionname> (オ ブ ジ ェ ク ト <curr_objectname>)、 オ フ セ ッ ト <offset> が仮想
関 ま た は RTTI へ の再配置で あ る が、 そ の オ フ セ ッ ト に再配置が な い こ と を 誤 っ て示 し て い ま す。
こ の メ ッ セージは、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。
購入元にお問い合わせ下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-34
リ ン カのエ ラ ーおよび警告
L6649E
EMPTY 領域 <regname> に最大サ イ ズ を 指定す る必要が あ り ま す。
『 リ ン カ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
実行領域の属性 (4-13 ページ) .
L6650E
オ ブ ジ ェ ク ト <objname> の Group セ ク シ ョ ン <sectionidx> に無効な シ ン ボ ル イ ン デ ク ス
<symidx> が含 ま れ て い ま す。
L6651E
セ ク シ ョ ン <secname> ( オ ブ ジ ェ ク ト <objname> 内) に SHF_GROUP フ ラ グ が あ り ま す が、
ど の グ ル ー プ の メ ン バ に も な っ て い ま せ ん。
L6652E
デ ー タ セ ク シ ョ ン の バ イ ト 順序 を 逆に す る こ と が で き ま せ ん。 入力 オ ブ ジ ェ ク ト は
<inputendian> で、 要求 さ れ た デ ー タ バ イ ト 順序は <dataendian> で す
L6654E
拒否 さ れ た ロ ー カ ル シ ン ボ ル <symname> が、 非グ ル ー プ メ ン バ <objname> (<nongrpname>)
か ら 参照 さ れ て い ま す
こ の メ ッ セージは、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。
購入元にお問い合わせ下 さ い。
L6656E
内部 エ ラ ー : vfe セ ク シ ョ ン の リ ス ト に <oepname> (<secname>) と い う 非 vfe セ ク シ ョ ン
が含 ま れ て い ま す。
こ の メ ッ セージは、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。
購入元にお問い合わせ下 さ い。
L6664W
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) は、 シ ン ボ ル
(#<idx>、 最後の マ ッ プ シ ン ボ ル #<last> の前) に関係 し て い ま す。
L6665W
Lib$$Request$$armlib Lib$$Request$$cpplib が定義 さ れ て い ま せ ん。 ARM ラ イ ブ ラ リ を
検索 し ま せ ん。
こ の警告は、 以下の よ う な コ ー ド で再現で き ます。
AREA Block, CODE, READONLY
EXPORT func1
;IMPORT || Lib$$Request$$armlib||
IMPORT printf
func1
LDR r0,=string
BL printf
BX lr
AREA BlockData, DATA
string DCB "mystring"
END
リ ン カは ラ イ ブ ラ リ を参照す る よ う には指示 さ れていないため、 シ ン ボ
ル printf を見つけ ら れ ません。
こ の問題は、 以下のエ ラ ー も 発生 さ せます。
L6218E : シ ン ボ ル printf (L6665W.o か ら 参照) が定義 さ れ て い ま せ ん。
ラ イ ブ ラ リ が必要ない場合は、 こ の メ ッ セージ を無視 し て下 さ い。 そ う
でない場合は、 以下の行の コ メ ン ト 化を解除 し て、 エ ラ ー と 警告が出な
い よ う に し て下 さ い。
IMPORT || Lib$$Request$$armlib||
ARM DUI 0496GJ
ID 0 5 1 6 1 2
L6679W
出力 ELF セ ク シ ョ ン #<sec> '<secname>' の デ ー タ は圧縮に適 し て い ま せ ん で し た
(<data_size> バ イ ト が <compressed_size> バ イ ト に な り ま し た)。
L6682E
マ ー ジ セ ク シ ョ ン <oepname> (<spname>) は コ ー ド セ ク シ ョ ン で す。
L6683E
マ ー ジ セ ク シ ョ ン <oepname> (<spname>) に サ イ ズ 0 の エ レ メ ン ト が あ り ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-35
リ ン カのエ ラ ーおよび警告
L6684E
セ ク シ ョ ン <spname> (オ ブ ジ ェ ク ト <oepname> 内) に SHF_STRINGS フ ラ グ が あ り ま す が、
SHF_MERGE フ ラ グ が あ り ま せ ん
L6685E
セ ク シ ョ ン <spname> (オ ブ ジ ェ ク ト <oepname> 内) に SHF_MERGE セ ク シ ョ ン へ の分岐再配
置 <rel_idx> が あ り ま す
L6688U
再配置 #<rel_class> : <rel_idx> (<oepname> (<spname>) 内) が負の エ レ メ ン ト を 参照 し
ています
L6689U
再配置 #<rel_class> : <rel_idx> (<oepname> (<spname>) 内)。 デ ス テ ィ ネ ー シ ョ ン が マ
ル チ バ イ ト 文字の中間に あ り ま す
L6690U
マ ー ジ セ ク シ ョ ン <spname> ( オ ブ ジ ェ ク ト <oepname> 内) に シ ン ボ ル が あ り ま せ ん
L6703W
セ ク シ ョ ン <er> は圧縮不能 と し て暗示的に マ ー ク さ れ て い ま す。
L6707E
実行領域 <regionname> の パ デ ィ ン グ値は PADVALUE 属性 を 使用 し て指定 さ れ て い ま せ ん。
『 リ ン カ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
実行領域の属性 (4-13 ページ) .
L6708E
<secname> ( オ ブ ジ ェ ク ト <oepname> 内) の デ バ ッ グ フ レ ー ム を 処理で き ま せ ん で し た。
L6709E
<secname> ( オ ブ ジ ェ ク ト <oepname> 内) の fde を 関連付け る こ と が で き ま せ ん で し た。
L6713W
オ フ セ ッ ト <offset> (<oepname> (<secname>) 内) に あ る 関数に シ ン ボ ル が含 ま れ て い ま せ
ん。
L6714W
オ ブ ジ ェ ク ト <oepname> の例外 イ ン デ ク ス テ ー ブ ル セ ク シ ョ ン .ARM.exidx に デ ー タ が含 ま
れ て い ま せ ん。
L6720U
イ メ ー ジ内に存在す る 例外 テ ー ブ ル <spname> ( オ ブ ジ ェ ク ト <oepname> 内) に
--noexceptions が指定 さ れ て い ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--exceptions、 --no_exceptions (2-61 ペ ー ジ) .
L6721E
セ ク シ ョ ン #<secnum> '<secname>' (<oepname> 内) は認識 さ れ な い た め、 総称的に処理で
き ま せ ん。
L6725W
ダ イ ナ ミ ッ ク な再配置が あ る た め、 未使用の仮想関数の削除は正 し く 機能 し な い可能性が あ り ま す
L6728U
リ ン ク 順序の依存関係が セ ク シ ョ ン 番号 <from> か ら 無効な セ ク シ ョ ン 番号 <to> に指定 さ れ て
い ま す。
L6730W
再配置 #<rel_class> : <index> (<objname> (<secname>) 内) に <name> が関係 し て い ま
す。 シ ン ボ ル は ABI 型 <type>、 従来の型 <legacy_type> で す。
リ ン カの動作の変更のため、 ABI への厳密な準拠に関す る 警告が生成 さ
れます。
注
次の例は、 以前のバージ ョ ンの アプ リ ケーシ ョ ンバ イ ナ リ イ ン タ フ ェー
ス (ABI) に準拠 し てい る ツールチ ェーン と リ ン ク す る 場合にのみ、 警
告を生成 し ます。 ARM コ ンパ イ ラ ツールチ ェーン v4.1 以降は、 こ の警
告を生成ません。
例:
AREA foo, CODE, READONLY
CODE32
ENTRY
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-36
リ ン カのエ ラ ーおよび警告
KEEP
func proc
NOP
ENDP
DCD foo
END
こ の警告は、 アセ ン ブ ラ が ど の よ う にセ ク シ ョ ン を イ ン タ ー ワー ク 用に
マー ク す る かに関連 し てい ます。 以前は、 セ ク シ ョ ン シ ン ボル foo は
ELF フ ァ イ ル内で ARM ま たは Thumb コ ー ド と し てマー ク さ れてい ま し
た。 そのため、 上の例の DCD foo は、 イ ン タ ー ワー ク の対象 と し て も マー
ク さ れてい ま し た。
し か し 、 ABI では、 関数のみが イ ン タ ー ワー ク の対象 と な り 、 ARM ま
たは Thumb と し てマー ク さ れ る と 定め ら れてい ます。 そのため、 リ ン カ
は、 DCD <number> が期待 さ れてい る こ と を警告 し ます。 こ れは、 領域セ ク
シ ョ ン のシ ン ボル型 (CODE16 を使用 し てい る 場合は ARM ま たは
Thumb) と 一致 し ません。
最 も 単純な解決方法は、 デー タ を アセ ン ブ リ ソ ース フ ァ イ ル内の別の
デー タ 領域へ移動す る こ と です。
ま た、 --diag_suppress 6730 を使っ て、 こ の警告を非表示にす る こ と も で
き ます。
L6731W
<secname> か ら 参照 さ れ て い る セ ク シ ョ ン が存在 し な い た め、 未使用の仮想関数の削除は正 し く
機能 し な い可能性が あ り ま す。
L6733W
<objname> (<secname>) は <lr1name> か ら <lr2name> へ の オ フ セ ッ ト の再配置 を 含ん で
い ま す。 ロ ー ド 領域は厳密に相対的で あ る必要が あ り ま す。
L6738E
再配置 #<rel_class> : <relocnum> (<oepname> (<secname>) 内) に <wrtsym> が関係 し
て お り 、 GOT 相対再配置で す が、 _GLOBAL_OFFSET_TABLE_ が定義 さ れ て い ま せ ん。
GNU に よ っ て生成 さ れ る 一部の イ メ ージは、 _GLOBAL_OFFSET_TABLE_ と い
う 名前のシ ン ボルを参照で き ます。 再配置を生成す る GOT Slot がな く 、
リ ン カが GOT base の適切な ア ド レ ス を取得で き ない場合は、 リ ン カに
よ っ て こ のエ ラ ー メ ッ セージが生成 さ れます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
L6739E
バ ー ジ ョ ン '<vername>' と 未定義の バ ー ジ ョ ン '<depname>' に依存関係が あ り ま す。
L6740W
'<symverscr>' に バ ー ジ ョ ン '<vername>' の シ ン ボ ル '<symname>' が定義 さ れ て い ま す
が、 入力オ ブ ジ ェ ク ト 内に あ り ま せ ん。
L6741E
バ ー ジ ョ ン が付与 さ れ た シ ン ボ ル の バ イ ン デ ィ ン グ は 'local:' ま た は 'global:' で あ る 必要
が あ り ま す。
L6742E
'<oepname>' に よ っ て定義 さ れ た シ ン ボ ル '<symname>' で す。 デ フ ォ ル ト の バ ー ジ ョ ン シ ン
ボ ル '<defversym>' と 一致 し ま せ ん。
L6743E
再配置 #<rel_class> : <index> (<oepname> (<spname>) 内) に、 別の定義 を 持つ
<symname> が関係 し て い ま す。 内部の整合性チ ェ ッ ク が失敗 し ま し た
L6744E
再配置 #<rel_class> : <index> <oepname> (<spname>) に未定義の シ ン ボ ル <symname>
が関係 し て い ま す。 内部の整合性チ ェ ッ ク :
L6745E
タ ー ゲ ッ ト の CPU <cpuname> は ARM を サ ポ ー ト し て い ま せ ん が、 <objname> (<secname>)
内に は ARM コ ー ド が含 ま れ て い ま す
L6747W
タ ー ゲ ッ ト ア ー キ テ ク チ ャ を <oldversion> か ら <newversion> に移行 し て い ま す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-37
リ ン カのエ ラ ーおよび警告
リ ン カは、 廃止 さ れた ARMv3 を指定す る オブジ ェ ク ト を検出 し た場合、
そのオブジ ェ ク ト を ARMv4 にア ッ プグ レー ド し て、 ARM ラ イ ブ ラ リ で
使用で き よ う に し ます。
L6748U
フ ァ イ ル <oepname> に ダ イ ナ ミ ッ ク 配列、 シ ン ボ ル テ ー ブ ル、 ま た は ス ト リ ン グ テ ー ブ ル が あ り
ま せ ん。
L6751E
ソ ー ト ア ル ゴ リ ズ ム <str> を 使用で き ま せ ん。
L6753E
CallTree ソ ー ト で は、 CallTree ソ ー ト ER 内に エ ン ト リ ポ イ ン ト が必要で す。
L6761E
シ ン ボ ル <symname> を 削除 し て い ま す。
L6762E
<imgtype> の ビ ル ド 時に は '<type>' PLT エ ン ト リ を ビ ル ド で き ま せ ん。
L6763W
共有 オ ブ ジ ェ ク ト ま た は DLL の ビ ル ド 時に は、 '<optname>' を 使用で き ま せ ん。 オ フ に切 り
替え て い ま す
L6764E
Thumb シ ン ボ ル <symname> を コ ー ル す る タ ー ゲ ッ ト ア ー キ テ ク チ ャ 4T に対す る PLT エ ン ト
リ を 作成で き ま せ ん
L6765W
ア ー キ テ ク チ ャ 4T オ ブ ジ ェ ク ト の リ ン ク 中に は、 共有 オ ブ ジ ェ ク ト の エ ン ト リ ポ イ ン ト は ARM
状態で あ る必要が あ り ま す。
こ の問題は、 GNU C ラ イ ブ ラ リ と リ ン ク す る 場合に発生す る こ と があ
り ます。 GNU ス タ ー ト ア ッ プ コ ー ド crt1.o にはエ ン ト リ ポ イ ン ト に関す
る ビル ド 属性がないので、 リ ン カはど の実行状態 (ARM ま たは Thumb)
で コ ー ド を実行すれば よ いのか を特定で き ません。 GNU C ラ イ ブ ラ リ
の ス タ ー ト ア ッ プ コ ー ド は ARM コ ー ド なので、 こ の警告は無視 し て も
問題あ り ません。 --diag_suppress 6765 を使っ て、 警告を非表示にす る こ
と も で き ます。
L6766W
ア ー キ テ ク チ ャ 4T の PLT エ ン ト リ は、 イ ン ク リ メ ン タ ル リ ン キ ン グ を サ ポ ー ト し て い ま せ ん。
L6769E
再配置 #<rel_class> : <relocnum> (<oepname> (<secname>) 内) に <wrtsym> が関係 し
て い ま す。 シ ン ボ ル に GOTSLOT が あ り ま せ ん。
L6770E
ダ イ ナ ミ ッ ク 配列の サ イ ズ お よ び内容 を 変更す る タ イ ミ ン グ が遅す ぎ て、 変更 を 確定で き ま せ ん。
L6771W
<oepname> (<secname>) 内に、 RO デ ー タ の ア ド レ ス 型の再配置が含 ま れ ま す。 セ ク シ ョ ン RW
を 、 実行時に ダ イ ナ ミ ッ ク に再配置 さ れ る よ う に生成 し て ま す。
L6772W
--sysv で の ビ ル ド 中に イ ン ポ ー ト <symname> コ マ ン ド が無視 さ れ ま し た。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
•
--sysv (2-172 ペ ー ジ)
•
IMPORT (3-5 ページ) .
L6774W
<objname> (<secname>) 内の デ バ ッ グ フ レ ー ム エ ン ト リ の長 さ が不正で す。
L6775W
<objname> (<secname>) 内に、 こ の セ ク シ ョ ン に な い CIE を 使用 し て い る FDE が含 ま れ て
い ま す。
L6776W
<objname> (<secname>) の デ バ ッ グ フ レ ー ム内で、 実行セ ク シ ョ ン が記述 さ れ て い ま せ ん。
L6777W
<objname> (<secname>) の デ バ ッ グ フ レ ー ム内に、 <actual> の再配置 (期待値
<expected>) が あ り ま す。
L6778W
<objname> (<secname>) の デ バ ッ グ フ レ ー ム で、 64 ビ ッ ト DWARF が使用 さ れ て い ま す。
L6780W
<origvis> の可視性は、 <impexp> を 介 し て シ ン ボ ル '<symname>' か ら 削除 さ れ ま し た。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-38
リ ン カのエ ラ ーおよび警告
L6781E
<objname> (<secname>) 内の再配置番号 <rel_class> : <rel_number> (<rtype>、 wrt
シ ン ボ ル <symname>) の パ ー テ ィ シ ョ ン 番号 <part> で は値 (<val>) を 表せ ま せ ん。
再配置 #<rel_class> : <rel_number> (<objname> (<secname>) 内) に <symname> が関
係 し て い ま す。 再配置型 >rtype> の パ ー テ ィ シ ョ ン 番号 <part> で は値 (<val>) を わ せ ま せ
ん
L6782W
<oepname> の再配置番号 <rel_class> : <relnum> '<rtype>' で は、 <pltgot_type>
PLT エ ン ト リ と と も に正 し く デ ー タ に ア ク セ ス で き な い可能性が あ り ま す。
L6783E
<oepname> (<secnum> : <secname>) の マ ッ ピ ン グ シ ン ボ ル番号 <symnum> '<msym>' が、
セ ク シ ョ ン サ イ ズ (シ ン ボ ル オ フ セ ッ ト = 0x<moffset>、 セ ク シ ョ ン サ イ ズ = 0x<secsize>)
の末尾 ま た は末尾以降で定義 さ れ て い ま す。
こ の メ ッ セージは、 セ ク シ ョ ン のア ド レ ス が ELF セ ク シ ョ ン の末尾ま た
はその外の位置を指 し てい る こ と を示 し てい ます。 こ の問題は、 イ ン ラ
イ 展開 さ れた空のデー タ セ ク シ ョ ンに よ っ て発生す る 場合があ り 、 オブ
ジ ェ ク ト フ ァ イ ルに問題があ る 可能性を示 し てい ます。 --diag_warning
6783 を使っ て、 こ のエ ラ ーを非表示にす る こ と も で き ます。
L6784E
値 <value> を 持つ <oepname> (<secnum> : <secname>) 内の シ ン ボ ル番号 <symnum>
'<symname>' の サ イ ズ が 0x<size> で あ り 、 セ ク シ ョ ン の範囲 を 越え て い ま す。
リ ン カが、 セ ク シ ョ ンの外ま で拡が る サ イ ズのシ ン ボルを検出 し ま し
た。 こ の メ ッ セージは、 RVCT 2.2 SP1 以降の ツールチ ェーン では、 デ
フ ォ ル ト ただの警告です。 --diag_warning 6784 を使っ て、 こ のエ ラ ーを非
表示にで き ます。
L6785U
'<libname>' か ら の イ ン ポ ー ト 用に マ ー ク さ れ た シ ン ボ ル '<symname>' は既に
'<oepname>' に よ っ て定義 さ れ て い ま す。
L6786W
<oepname> (<secnum> : <secname>) の マ ッ ピ ン グ シ ン ボ ル番号 <symnum> '<msym>' が、
非境界整列 オ フ セ ッ ト = 0x<moffset> で定義 さ れ て い ま す。
L6787U
エ ン ト リ が <regionname> に対 し て必要 と す る 領域テ ー ブ ル ハ ン ド ラ '<handlername>' が見
つ か り ま せ ん で し た。
L6788E
実行範囲 <er1name> [<base1>、 <limit1>) の ス キ ャ ッ タ ロ ー デ ィ ン グ を 行 う と 、 実行時に実
行範囲 <er2name> [<base2>、 <limit2>) の コ ン テ ン ツ が壊れ る 可能性あ り ま す。
こ の問題は、 ス キ ャ ッ タ ロ ーデ ィ ン グが行われ、 実行領域が他の実行領
域 (それ自体ま たは別の領域) を部分的ま たは全体的に上書 き し て し ま
う 所に配置 さ れ る 場合に発生 し ます。
例えば、 次の場合は う ま く 動作 し ます。
LOAD_ROM 0x0000 0x4000
{
EXEC1 0x0000 0x4000
{
* (+RO)
}
EXEC2 0x4000 0x4000
{
* (+RW,+ZI)
}
}
次の場合はエ ラ ーが生成 さ れ ます。
LOAD_ROM 0x0000 0x4000
{
EXEC1 0x4000 0x4000
{
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-39
リ ン カのエ ラ ーおよび警告
* (+RW,+ZI)
}
EXEC2 0x0000 0x4000
{
* (+RO)
}
そ し て、 次の メ ッ セージが表示 さ れます。
エ ラ ー : L6788E : 実行範囲 EXEC2 の ス キ ャ ッ タ ロ ー デ ィ ン グ を 行 う と 、 実行時に実行範囲
EXEC2 の コ ン テ ン ツ が壊れ る可能性が あ り ま す。
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
第 8 章 ス キ ャ ッ タ フ ァ イ ルの使用 .
L6789U
ラ イ ブ ラ リ <library> の メ ン バ <filename> : エ ン デ ィ ア ン が一致 し ま せ ん。
L6790E
再配置 #<rel_class> : <relnum> (<objname> (<secname>) 内) に <symname> が関係 し
て い ま す。 GOT 生成配置 を 介 し て、 ウ ィ ー ク 参照 を イ ン ポ ー ト で き な い可能性が あ り ま す
L6791E
0x<offset> <oepname> (<secname>) に不明な パ ー ソ ナ リ テ ィ ル ー チ ン <pr> が あ り ま す。
L6792E
オ フ セ ッ ト 0x<offset> <oepname> (<secname>) の記述子で す。
L6793E
ク リ ー ン ア ッ プ 記述子 <oepname> (<secname>) の オ フ セ ッ ト 0x<offset> で、 ラ ン デ ィ ン グ
パ ッ ド 参照が必要で す。
L6794E
キ ャ ッ チ記述子 <oepname> (<secname>) の オ フ セ ッ ト 0x<offset> で、 ラ ン デ ィ ン グ パ ッ ド
参照が必要で す。
L6795E
キ ャ ッ チ記述子 <oepname> (<secname>) の オ フ セ ッ ト 0x<offset> で、 RTTI 参照が必要で
す。
L6796E
オ フ セ ッ ト 0x<offset> <oepname> (<secname>) に位置す る 記述子が、 セ ク シ ョ ン の終了位
置 を 越え ま し た
L6797E
例外 テ ー ブ ル <oepname> (<secname>) 内の オ フ セ ッ ト 0x<offset> に位置す る デ ー タ が、 セ
ク シ ョ ン の終了位置 を 越え ま し た。
L6798E
関数指定記述子 <oepname> (<secname>) の オ フ セ ッ ト 0x<offset> で、 RTTI 参照が必要で
す。
L6799E
関数指定記述子 <oepname> (<secname>) の オ フ セ ッ ト 0x<offset> で、 ラ ン デ ィ ン グ パ ッ ド
参照が必要で す。
ラ ンデ ィ ン グパ ッ ド は、 例外が発生 し た後で ク リ ーン ア ッ プ を行 う コ ー
ド です。 リ ン カが古い形式の例外テーブルを検出 し た場合は、 こ れが自
動的に新 し い形式に変換 し ます。
こ の メ ッ セージは、 新 し いバージ ョ ンの リ ン カ と 古いバージ ョ ンの コ ン
パ イ ラ を使用 し ていない限 り 、 表示 さ れ ません。
L6800W
0x<offset> <oepname> (<secname>) で、 一般 モ デ ル パ ー ソ ナ リ テ ィ ル ー テ ィ ン を 変換で き ま
せ ん。
パー ソ ナ リ テ ィ ルーテ ィ ンは、 例外処理ス タ ッ ク を展開す る ために使用
さ れ ます。 リ ン カが古い形式の例外テーブルを検出 し た場合は、 こ れが
自動的に新 し い形式に変換 し ます。 こ の メ ッ セージは、 コ ンパ イ ラ での
エ ラ ーを示 し てい ます。 購入元にお問い合わせ下 さ い。
L6801E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
<secarmthumb> コ ー ド を 含む <objname> (<secname>) に は、 '~IW (ユ ー ザ は す べ て の コ ー
ド を イ ン タ ー ワ ー ク に し よ う と は し て い な い) ' <funarmthumb> 関数 <sym> ア ド レ ス を 使用
で き ま せ ん。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-40
リ ン カのエ ラ ーおよび警告
リ ン カは、 非 イ ン タ ーワ ー ク (~IW) 関数が他の状態の コ ー ド に よ っ て
ア ド レ ス を取得 さ れ る 個所を診断で き ます。 こ のエ ラ ーはデフ ォ ル ト で
は無効にな っ てい ますが、 --strict を使っ て リ ン ク す る こ と で有効にで
き ます。 こ のエ ラ ーは --diag_warning 6801 を使っ てただの警告に降格す る
こ と がで き ます。 後で、 必要であれば、 --diag_suppress 6801 を使っ て完
全に非表示にす る こ と も で き ます。
例えば、 次の よ う に、 a.c 内の コ ー ド が t.c 内の非 イ ン タ ー ワ ー ク 関数の
ア ド レ ス を使用 し た と し ます。
armcc -c a.c
armcc --thumb -c t.c
armlink t.o a.o --strict
次の メ ッ セージが表示 さ れ ます。
エ ラ ー : L6801E : ARM コ ー ド を 含む a.o (.text) に は、 '~IW' Thumb 関数 foo の ア ド レ
ス を 使用で き ま せ ん。
L6802E
再配置 #<rel_class> : <idx> (<objname> (<secname>) 内) に <armsym> が関係 し て い ま
す。 <armobjname> (<armsecname>) 内の非 Thumb シ ン ボ ル へ の Thumb 分岐で す。
L6803W
再配置 #<rel_class> : <idx> (<objname> (<secname>) 内) に <armsym> が関係 し て い ま
す。 Thumb 分岐が <armobjname> (<armsym>) 内の タ ー ゲ ッ ト に到達で き ま せ ん。
L6804W
古い シ ン ボ ル型 STT_TFUNC の使用が検出 さ れ ま し た
L6805E
再配置 #<rel_class> : <idx> (<objname> (<secname>) 内) に <armsym> が関係 し て い ま
す。 <armobjname> の型な し 絶対シ ン ボ ル へ の分岐で、 タ ー ゲ ッ ト の状態が不で す。
L6806W
再配置 #<rel_class> : <idx> (<objname> (<secname>) 内) に <othersym> が関係 し て
い ま す。 <otherobjname> (<othersecname>) の型な し シ ン ボ ル へ の分岐で、 ABI で は外 コ ー
ド シ ン ボ ル が STT_FUNC 型で あ る必要が あ り ま す。
L6807E
再配置 #<rel_class> : <idx> (<objname> (<secname>) 内) に <othersym> が関係 し て
い ま す。 同 じ セ ク シ ョ ン の型な し シ ン ボ ル へ の分岐で す。 状態の変更が必で す。
L6809W
<objname> (<secname>) の再配置 <rel_class> : <idx> は廃止 さ れ た型 <rtype> で す。
ABI 準拠の型に つ い て は ARMELF を 参照 し て く だ さ い
L6810E
<objname> (<secname>) の再配置 <rel_class> : <idx> は現在サ ポ ー ト さ れ て い な い型
<rtype> で す
多 く の場合、 再配置の エ ラ ー と 警告は、 前の バ ー ジ ョ ン の ARM ツ ー ル
で ビ ル ド さ れ た オ ブ ジ ェ ク ト フ ァ イ ル を リ ン ク し て い る 場合 に 発生 し ま
す。
再配置の エ ラ ー と 警告 を 表示す る に は、 --strict_relocations ス イ ッ チ を
使用 し て 下 さ い。 こ の オ プ シ ョ ン を 使用す る と 、 オ ブ ジ ェ ク ト の ABI
準拠 を 確認で き ま す。 デ フ ォ ル ト で は オ フ に な っ て お り 、 廃止れ た り 廃
止予定 だ っ た り す る 再配置は、 リ ン カ に よ っ て 自動的 に 処理 さ れ ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--strict_relocations、 --no_strict_relocations (2-162 ペ ー ジ) .
L6812U
不明な シ ン ボ ル ア ク シ ョ ン 型で す。 購入元に お問い合わ せ く だ さ い。
L6813U
<newname> に名前変更す る た め の シ ン ボ ル <symname> が見つ か り ま せ ん で し た。
『 リ ン カ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
RENAME (3-7 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-41
リ ン カのエ ラ ーおよび警告
L6815U
メ モ リ が不足 し て い ま す。 割 り 当て サ イ ズ は <alloc_size> で、 シ ス テ ム サ イ ズ は
<system_size> で す。
こ の エ ラ ー は、 ARM コ ン パ イ ラ ツ ー ル チ ェ ー ン v4.1 以降 に よ っ て 報
告 さ れ ま す。 こ こ で は、 利用可能な メ モ リ の量 と 、 リ ン ク 手順 を 実行す
る 必要あ る メ モ リ の量 に つ い て の情報が提供 さ れ ま す。
こ の エ ラ ー が発生す る 原因 と し て 、 リ ン カ に 、 タ ー ゲ ッ ト オ ブ ジ ェ ク ト
に リ ン ク す る た め の十分な メ モ リ が な い こ と が考 え ら れ ま す。 こ れ は一
般的で は あ り ま せ ん が、 以下の よ う な多 く の理由で ト リ ガ さ れ る 可能性
が あ り ま す。
•
非常 に 大 き な オ ブ ジ ェ ク ト や ラ イ ブ ラ リ に リ ン ク し て い ま す。
•
大量の デ バ ッ グ 情報 を 生成 し て い ま す。
•
ス キ ャ ッ タ フ ァ イ ル内 に 定義 さ れ た 大領域が あ り ま す。
こ の よ う な場合、 ワ ー ク ス テ ー シ ョ ン は仮想 メ モ リ 不足 に 陥 る 可能性が
あ り ま す。
こ の問題は、 FIXED ス キ ャ ッ タ ロ ー ド 属性 を 使用 し た 場合 に も 起 こ り ま
す。 FIXED 属性は、 実行領域 を 固定 ア ド レ ス で ROM 内の ル ー ト 領域 に
し ま す。 ROM イ メ ー ジ を 生成す る に は、 リ ン カ は、 前の実行領域の末
尾 と FIXED 領域の間 に パ デ ィ ン グ バ イ ト を 追加す る 必要が あ り ま す。
FIXED 領域の ア ド レ ス が実行領域の末尾か ら 遠い と き に 大量の パ デ ィ ン
グ を 追加す る と 、 リ ン カ は メ モ リ 不足 に 陥 る 可能性が あ り ま す。 間隔 を
短 く す と 、 リ ン ク 手順は成功 し ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
実行領域の属性 (4-13 ペ ー ジ) .
『 リ ン カ の使用』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
FIXED 属性を使用 し たルー ト 領域の作成 (8-17 ペ ー ジ) .
リ ン カ は ほ と ん ど す べ て の サ イ ズ の イ メ ー ジ を 生成す る こ と が で き ま す
が、 リ ン ク の実行 と 終了 に は大量の メ モ リ が必要 に な り ま す。 リ ン ク 時
の パ フ ォ ー マ ン ス を 向上 さ せ、 メ モ リ 不足 エ ラ ー を 回避す る た め に 、 以下
の ソ リ ュ ー シ ョ ン を 試 し て み て 下 さ い。
1.
リ ン ク 時 に 、 す べ て の不要な ア プ リ ケ ー シ ョ ン と プ ロ セ ス を
シ ャ ッ ト ダ ウ ン し て く だ さ い。
例 え ば、 Eclipse の も と で実行 し て い る 場合は、 コ マ ン ド ラ イ ン
か ら リ ン カ を 実行す る か、 ビ ル ド 間の Eclipse を 終了 し て 再起
動 し て み て 下 さ い。
2.
64 ビ ッ ト バ ー ジ ョ ン の リ ン カ を 使用 し ま す。
64 ビ ッ ト の オ ペ レ ー テ ィ ン グ シ ス テ ム を 使用 し て い る 場合は、
64 ビ ッ ト バ ー ジ ョ ン の armlink を 使用で き ま す。 『ARM コ ン
パ イ ラ ツ ー ル チ ェ ー ン の概要』 の以下の セ ク シ ョ ン を 参照 し て 下
さ い。
•
3.
64 ビ ッ ト の リ ン カへの変更 (2-8 ペ ー ジ) .
--no_debug リ ン カ オ プ シ ョ ン を 使用 し ま す。
こ の コ マ ン ド は、 デ バ ッ グ 情報 を 含め ず に オ ブ ジ ェ ク ト を 作成す
る よ う に リ ン カ に 指示 し ま す。 『 リ ン カ リ フ ァ レ ン ス 』 の以下の
セ ク シ ョ ン を 参照 し て 下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
--debug、 --no_debug (2-41 ペ ー ジ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-42
リ ン カのエ ラ ーおよび警告
注
こ の オ プ シ ョ ン を 使用す る と 、 ソ ー ス レ ベ ル の デ バ ッ グ を 実行す
る こ と は で き ま せ ん。
4.
デ バ ッ グ 情報 を 削減 し ま す。
--no_debug オ プ シ ョ ン を 使用 し な い場合は、 デ バ ッ グ 情報 を 試 し て
削減で き る 別の方法が あ り ま す。 『 コ ン パ イ ラ の使用』 の以下の
セ ク シ ョ ン を 参照 し て 下 さ い。
•
オブジ ェ ク ト お よ び ラ イ ブ ラ リ におけ る デバ ッ グ情報を削減
す る 方法 (6-21 ペ ー ジ) .
fromelf ユ ー テ ィ リ テ ィ を 使用 し て 、 デ バ ッ グ 情報 を デ バ ッ グ す
る 必要が な い オ ブ ジ ェ ク ト と ラ イ ブ ラ リ か ら 削除す る こ と も で き
ま す。 『fromelf イ メ ー ジ変換ユ ー テ ィ リ テ ィ の使用』 の以下の
セ ク シ ョ ン を 参照 し て 下 さ い。
•
--strip=option[,option,...] (4-73 ペ ー ジ) .
5.
部分 リ ン ク を 使用 し ま す。
部分 リ ン ク を 使用す る と 、 リ ン ク ス テ ー ジ を 少数の小 さ な演算 に
分割す る こ と が で き ま す。 分割す る と 、 最終的な リ ン ク で メ モ リ
内の オ ブ ジ ェ ク ト フ ァ イ ル が重複 し な い よ う に す る こ と も で き ま
す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--partial (2-120 ペ ー ジ) .
6.
Windows オ ペ レ ー テ ィ ン グ シ ス テ ム上で メ モ リ の サ ポ ー ト を 増や
し ま す。
一部の Windows オ ペ レ ー テ ィ ン グ シ ス テ ム で は、 仮想 ア ド レ ス
空間 を 2GB (デ フ ォ ル ト ) か ら 3GB に 増や す こ と が で き ま す。
詳細 に つ い て は、 以下の Microsoft の記事 を 参照 し て く だ さ
い。
•
『 メ モ リ サ ポ ー ト と Windows オ ペ レ ー テ ィ ン グ シ ス テ ム』,
http://msdn.microsoft.com/en-us/windows/hardware/gg487508.aspx
7.
--no_eager_load_debug リ ン カ オ プ シ ョ ン を 使用 し ま す。
こ の オ プ シ ョ ン は、RVCT 4.0 ビ ル ド 697 以降で使用で き ま す。
こ の オ プ シ ョ ン を 使用す る と 、 リ ン カ は オ ブ ジ ェ ク ト の ロ ー ド 後
に メ モ リ か ら デ バ ッ セ ク シ ョ ン デ ー タ を 削除 し ま す。 こ れ に よ り 、
最終 イ メ ー ジ を 書 き 込む際 に デ バ ッ グ デ ー タ の ほ と ん ど を 再度
ロ ー ド す る 必要が生 じ る た め、 リ カ の パ フ ォ ー マ ン ス は低下 し ま
す が、 リ ン カ の ピ ー ク 時の メ モ リ 使用量が抑 え ら れ ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--eager_load_debug、 --no_eager_load_debug (2-52 ペ ー ジ)
ま だ 同 じ 問題が起 こ る 場合は、 サ ポ ー ト ケ ー ス を 作成 し て く だ さ い。
L6828E
<symname> に関す る <objname>(<secname>) の再配置 #<rel_class>:<idx>。 分岐の ソ ー
ス ア ド レ ス <srcaddr> は、 次の使用可能な [<pool_base>,<pool_limit>) の プ ー ル に到達
き ま せ ん。 --veneer_pool_size オ プ シ ョ ン を 使用 し て コ ン テ ィ ン ジ ェ ン シ を 増や し て く だ さ
い。
--veneer_inject_type=pool べ ニ ア 生成 モ デ ル で は、 プ ー ル内の べ ニ ア へ
の分岐が、 べ ニ ア に 設定で き る 最大 ア ド レ ス で あ る プ ー ル制限 に 届 く こ
と が要求 さ れ て い ま す。 後、 分岐が プ ー ル制限 に 到達で き な い こ と が わ
か っ た 場合、 お よ び armlink が プ ー ル制限 を 下げ て も す べ て の べ ニ ア を
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-43
リ ン カのエ ラ ーおよび警告
格納で き る 場合は、 armlink に よ っ て 分岐 に 合わ せ て プ ー ル制限が下げ
ら れ ま す。 エ ラ ー メ ッ セ ー ジ L6828 は、 armlink が プ ー ル制限 を 下げ
ら れ な い場合の み発生 し ま す。
『 リ ン カ リ フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
•
--veneer_inject_type=type (2-184 ペ ー ジ) .
L6898E
再配置 #<rel_class> : <idx> (<objname> (<secname>) 内) に <armsym> が関係 し て い ま
す。 <armobjname> (<armsecname>) 内の非 ARM/Thumb シ ン ボ ル へ の ARM 分岐で す。
L6899E
既存の SYMDEFS フ ァ イ ル '<filename>' は、 読み出 し 専用で す。
L6900E
AND お よ び OR 演算子の優先順位 を 特定す る た め に、 括弧が必要で す。
L6901E
シ ン ボ ル名が必要で す。
L6902E
ス ト リ ン グ が必要で す。
L6903E
ス ク リ プ ト の '<clause>' 節内で '<text>' を 実行で き ま せ ん。
L6904E
名前変更後の シ ン ボ ル が、 別の名前変更処理 と 競合 し ま す。
L6905E
名前変更前の シ ン ボ ル が、 別の名前変更処理 と 競合 し ま す。
L6906E
( こ れ は、 名前変更の競合相手で す。)
L6907E
式が必要で す。
L6910E
フ ェ ー ズ名が必要で す。
L6912W
<oepname> (<secname>) の イ ン デ ッ ク ス <idx> で定義 さ れ て い る シ ン ボ ル <symname> の
ABI シ ン ボ ル型 <symtype> が、 マ ッ ピ ン グ シ ン ボ ル型 <maptype> と 整合性が り ま せ ん。
L6913E
実行領域名が必要で す。
L6914W
--<memoption> の使用時に は、 オ プ シ ョ ン <spurious> は無視 さ れ ま す。
L6915E
ラ イ ブ ラ リ か ら エ ラ ー が レ ポ ー ト さ れ て い ま す : <msg>
メ ッ セージは通常、 以下のいずれかです。
•
エ ラ ー : L6915E : ラ イ ブ ラ リ か ら エ ラ ー が レ ポ ー ト さ れ て い ま す : ス キ ャ ッ タ ロ ー ド
フ ァ イ ル が ヒ ー プ ま た は ス タ ッ ク 領域 を 宣言 し て お ら ず、 __user_initial_stackheap
が定義 さ れ て い ま せ ん。
ま たは
エ ラ ー : L6915E : ラ イ ブ ラ リ か ら エ ラ ー が レ ポ ー ト さ れ て い ま す : ス キ ャ ッ タ ロ ー ド の
使用中に は、 使用可能な ヒ ー プ 領域 を セ ミ ホ ス テ ィ ン グ __user_initial_stackheap
で確実に設定す る こ と は で き ま せ ん
多 く の場合、 __user_setup_stackheap() が再実装 さ れていなか っ た
り 、 ARM_LIB_STACK ま たは ARM_LIB_HEAP 領域がそれぞれの ス キ ャ ッ タ
フ ァ イ ルで定義 さ れていなか っ た り し ます。
注
__user_setup_stackheap() は、 非推奨の関数
__user_initial_stackheap() よ り も 優先 さ れ ます。
『ARM® プ ロ セ ッ サを タ ーゲ ッ ト と し た ソ フ ト ウ ェ ア開発』 の以下
のセ ク シ ョ ン を参照 し て下 さ い。
—
ARM DUI 0496GJ
ID 0 5 1 6 1 2
ス タ ッ ク と ヒ ープの配置 (3-15 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-44
リ ン カのエ ラ ーおよび警告
『C ラ イ ブ ラ リ 、 C++ ラ イ ブ ラ リ 、 お よ び浮動小数点サ ポ ー ト リ
フ ァ レ ン ス 』 の以下の セ ク シ ョ ン を 参照 し て 下 さ い。
—
__user_setup_stackheap() (2-61 ペ ー ジ)
古い関数 __user_initial_stackheap() (2-72 ページ) .
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
—
—
•
空 き 領域の予約 (8-57 ページ) .
エ ラ ー : L6915E : ラ イ ブ ラ リ か ら エ ラ ー が レ ポ ー ト さ れ て い ま す :
__use_no_semihosting が要求 さ れ て い ま し た が、 <function> が参照 さ れ ま し た。
<function> は、 __user_initial_stackheap、 _sys_exit、 _sys_open、
_sys_tmpnam、 _ttywrch、 system、 remove、 rename、 _sys_command_string、
time、 ま たは clock を表 し てい ます。
こ のエ ラ ーは、 SVC/BKPT 命令が C ラ イ ブ ラ リ か ら リ ン ク さ れ る のを
避け る ために、 セ ミ ホ ス テ ィ ン グ使用関数を タ ーゲ ッ ト 変更 し た
場合に表示 さ れ る こ と があ り ます。
次の コ ー ド を使用 し て、 セ ミ ホ ス テ ィ ン グ使用関数が C ラ イ ブ ラ
リ か ら リ ン ク さ れない よ う に し て下 さ い。
C か ら の #pragma import(__use_no_semihosting)
『C お よ び C++ ラ イ ブ ラ リ と 浮動小数点サポー ト の使用』 の以下の
セ ク シ ョ ン を参照 し て下 さ い。
—
非セ ミ ホ ス テ ィ ン グ環境での ラ イ ブ ラ リ の使用 (2-39 ペー
ジ) .
セ ミ ホ ス テ ィ ン グ使用関数が ま だ リ ン ク さ れてい る 場合は、 リ ン
カに よ っ て こ のエ ラ ーが報告 さ れ ます。
こ の問題を解決す る には、 こ れ ら の C ラ イ ブ ラ リ 関数の独自の実
装を用意す る 必要があ り ます。
emb_sw_dev デ ィ レ ク ト リ には、 一般的ない く つかのセ ミ ホ ス テ ィ ン
グ使用関数を再実装す る 方法の例が保存 さ れてい ます。 フ ァ イ ル
retarget.c を参照 し て下 さ い。
セ ミ ホ ス テ ィ ン グ使用 C ラ イ ブ ラ リ 関数の使用の詳細については、
『C お よ び C++ ラ イ ブ ラ リ と 浮動小数点サポー ト の使用』 を参照 し
て下 さ い。
注
リ ン カは、 ユーザ独自のアプ リ ケーシ ョ ン コ ー ド 内の、 例えば
__semihost() と い う セ ミ ホ ス テ ィ ン グ使用関数については、 報告 し
ません。
ど のセ ミ ホ ス テ ィ ン グ使用関数が ま だ C ラ イ ブ ラ リ か ら リ ン ク さ
れてい る か を特定す る には、 次の よ う に し ます。
—
armlink --verbose --list err.txt で リ ン ク し ます。
—
err.txt で __I_use_semihosting の出現個所を探 し ます。
以下に例を示 し ます。
…
Loading member sys_exit.o from c_4.l.
reference : __I_use_semihosting
definition: _sys_exit()
…
こ れは、 セ ミ ホ ス テ ィ ン グ使用関数 _sys_exit が C ラ イ ブ ラ リ
か ら リ ン ク さ れてい る こ と を示 し てい ます。 こ の問題を避け
る には、 こ の関数の独自の実装を用意す る 必要があ り ます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-45
リ ン カのエ ラ ーおよび警告
•
エ ラ ー : L6915E : ラ イ ブ ラ リ か ら エ ラ ー が レ ポ ー ト さ れ て い ま す : __use_no_heap が
要求 さ れ て い ま し た が、 <reason> が参照 さ れ ま し た
<reason> が malloc、 free、 __heapstats、 ま たは __heapvalid を表 し てい
る 場合、 __use_no_heap を使用す る と 、 こ れ ら の関数 と 競合 し ます。
•
エ ラ ー : L6915E : ラ イ ブ ラ リ か ら エ ラ ー が レ ポ ー ト さ れ て い ま す :
__use_no_heap_region が要求 さ れ て い ま し た が、 <reason> が参照 さ れ ま し た
<reason> が malloc、 free、 __heapstats、 __heapvalid、 ま たは
__argv_alloc を表 し てい る 場合、 __use_no_heap_region を使用す る と 、
こ れ ら の関数 と 競合 し ます。
L6916E
再配置 #<rel_class> : <idx> (<oepname> (<spname>) 内)。 条件付 き BL 命令に対す る
R_ARM_CALL で す。
L6917E
再配置 #<rel_class> : <idx> (<oepname> (<spname>) 内)。 BLX 命令に対す る
R_ARM_JUMP24 で す。
L6918W
<oepname> (<spname>) の ア ラ イ メ ン ト <spalign> を 行 う た め に、 0x<eraddr> の実行領域
<ername> に対す る パ デ ィ ン グ が必要で す。
L6922E
セ ク シ ョ ン <objname> (<secname>) に相互に排他的な属性 (READONLY と TLS) が含 ま れ て
います
L6923E
再配置 #<rel_class> : <idx> (<oepname> (<spname>) 内) に <symname> が関係 し て い ま
す。 TLS 再配置 <type> が <symobjname> (<symsecname>) の非 TLS シ ン ボ ル を 対象に て
い ま す。
L6924E
再配置 #<rel_class> : <idx> (<oepname> (<spname>) 内) に <symname> が関係 し て い ま
す。 非 TLS 再配置 <type> が <symobjname> (<symsecname>) の STT_TLS シ ン ボ ル を 対
象に し て い ま す。
L6925E
領域 <region> の <token> 属性 を 無視 し ま す。 MemAccess は サ ポ ー ト さ れ ま せ ん。
L6926E
<oepname> (<spname>) の再配置番号 <rel_class> : <idx> が、 命令 エ ン コ ー デ ィ ン グ
0x<bl> に対 し て不正な再配置型 <rtype> で す。
L6927E
<oepname> (<spname>) の再配置番号 <rel_class> : <idx> が、 命令 エ ン コ ー デ ィ ン グ
0x<bl1><bl2> に対 し て不正な再配置型 <rtype> で す。
L6932W
ラ イ ブ ラ リ か ら 警告が レ ポ ー ト さ れ て い ま す : <msg>
『移行 と 互換性』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
RVCT v3.1 と RVCT v4.0 の間での リ ン カの変更点 (8-10 ページ) .
L6935E
オ ブ ジ ェ ク ト (<new>) と (<old>) の デ バ ッ グ グ ル ー プ の内容が互い に異な り ま す (<name>、 署
名シ ン ボ ル <sig>)
L6936E
シ ン ボ ル '<sym>' の ラ イ ブ ラ リ ス ク リ プ ト の複数 RESOLVE 節。
L6937E
ラ イ ブ ラ リ ス ク リ プ ト 関数 '<func>' の複数定義。
L6939E
領域 <regname> の ア ラ イ メ ン ト が あ り ま せ ん。
L6940E
領域 <regname> の ア ラ イ メ ン ト <alignment> は、 2 の累乗 (4 以上) か、 最大値で あ る 必
要が あ り ま す。
L6941W
フ ァ イ ル <filename> の chmod シ ス テ ム コ ー ル で、 エ ラ ー <perr> が発生 し ま し た
L6942E
実行領域 <ername> に複数の <type> が含 ま れ て い ま す。 セ ク シ ョ ン :
L6966E
領域 <regname> の整列 <alignment> は負に で き ま せ ん。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-46
リ ン カのエ ラ ーおよび警告
L6967E
エ ン ト リ ポ イ ン ト (<address>) は THUMB 命令 を 指 し て い ま す が、 有効な THUMB コ ー ド ポ イ
ン タ で は あ り ま せ ん。
L6968E
Linux カ ー ネ ル バ ー ジ ョ ン \"<kernel>\" を 解析で き ま せ ん で し た。
L6969W
<ername> で AT セ ク シ ョ ン <name> の タ イ プ を RW か ら RO に変更 し て い ま す。
L6971E
<objname> (<secname>) 型 <type> は、 er <ername> の <prevobj> (<prevname>) 型
<prevtype> と 互換性が あ り ま せ ん。
ス キ ャ ッ タ フ ァ イ ルで __at セ ク シ ョ ン を配置す る と 、 こ の メ ッ セージが
表示 さ れ る こ と があ り ます。 例えば、 main.c の次の コ ー ド と 関連の ス
キ ャ ッ タ フ ァ イ ルに よ り 、 こ のエ ラ ーが生成 さ れます。
int variable __attribute__((at(0x200000)));
LR1 0x0000 0x20000
{
ER1 0x0 0x2000
{
*(+RO)
}
ER2 0x8000 0x2000
{
main.o
}
RAM 0x200000 (0x1FF00-0x2000)
{
*(+RW, +ZI)
}
}
変数の型は ZI です。 リ ン カは こ れを ア ド レ ス 0x200000 に配置 し よ う と し
ます。 と こ ろが、 こ のア ド レ ス は ス キ ャ ッ タ フ ァ イ ルに よ り RW セ ク
シ ョ ン用に予約 さ れてい ます。 そのため、 エ ラ ーが生成 さ れます。
エ ラ ー : L6971E : RW 型の stdio_streams.o(.data) は er RAM の ZI 型の
main.o(.ARM.__AT_0x00200000) と 互換性が あ り ま せ ん。
こ の問題に対処す る には、 ソ ース コ ー ド でア ド レ ス を次の よ う に変更 し
ます。
int variable __attribute__((at(0x210000)));
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
特定ア ド レ スへの関数 と デー タ の配置 (8-18 ページ)
•
__at セ ク シ ョ ン を使用 し て特定のア ド レ ス にセ ク シ ョ ン を配置す
る (8-39 ページ) .
L6972E
必要な ベ ー ス 0x<required> を 持つ <objname> (<secname>) が ベ ー ス ア ド レ ス
0x<actual> に割 り 当て ら れ ま し た。
L6973E
オ ー バ ー レ イ ER <ername> の ア ド レ ス 0x<addr> に AT セ ク シ ョ ン を 配置中に エ ラ ー が発生
し ま し た。
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
__at セ ク シ ョ ン を使用 し て特定のア ド レ ス にセ ク シ ョ ン を配置す
る (8-39 ページ) .
L6974E
ARM DUI 0496GJ
ID 0 5 1 6 1 2
AT セ ク シ ョ ン <name> に ベ ー ス ア ド レ ス が あ り ま せ ん。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-47
リ ン カのエ ラ ーおよび警告
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
__at セ ク シ ョ ン を使用 し て特定のア ド レ ス にセ ク シ ョ ン を配置す
る (8-39 ページ) .
L6975E
<objname> (<secname>) に必要な ベ ー ス ア ド レ ス と SHF_MERGE を 指定で き ま せ ん。
L6976E
<objname> (<secname>) に必要な ベ ー ス ア ド レ ス と SHF_LINK_ORDER を 指定で き ま せ ん。
L6977E
<objname> (<secname>) を セ ク シ ョ ン の連続 し た ブ ロ ッ ク の一部に で き ま せ ん
L6978W
<objname> (<secname>) に ユ ー ザ定義の セ ク シ ョ ン 型 と 必要な ベ ー ス ア ド レ ス が あ り ま す。
L6979E
必要な ベ ー ス ア ド レ ス を 持つ <objname> (<secname>) を 位置非依存の ER <ername> に配置
で き ま せ ん。
L6980W
FIRST お よ び LAST が、 必要な ベ ー ス ア ド レ ス を 持つ <objname> (<secname>) で無視 さ れ ま
した
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
FIRST 属性 と LAST 属性を使用 し たセ ク シ ョ ンの配置 (4-22 ペー
ジ) .
L6981E
__AT は BPABI と SystemV の イ メ ー ジ タ イ プ と 互換性が あ り ま せ ん
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
__at セ ク シ ョ ンの配置に関す る制限 (8-41 ページ) .
L6982E
ベ ー ス <base> リ ミ ッ ト <limit> の AT セ ク シ ョ ン <objname> (<spname>) が、 ベ ー ス
<base2> リ ミ ッ ト <limit2> の AT セ ク シ ョ ン <obj2name> (<sp2name>) の ア ド レ ス 領域
と オ ー バ ー ラ ッ プ し て い ま す。
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
__at セ ク シ ョ ン を使用 し て特定のア ド レ ス にセ ク シ ョ ン を配置す
る (8-39 ページ) .
L6983E
必要な ベ ー ス ア ド レ ス <base> の AT セ ク シ ョ ン <objname> (<spname>) が、 ベ ー ス
<erbase> お よ び リ ミ ッ ト <erlimit> の ER <ername> の範囲外で す。
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
__at セ ク シ ョ ン を使用 し て特定のア ド レ ス にセ ク シ ョ ン を配置す
る (8-39 ページ) .
L6984E
AT セ ク シ ョ ン <objname> (<spname>) が、 セ ク シ ョ ン ア ラ イ メ ン ト <alignment> に整列 し
て い な い ベ ー ス ア ド レ ス <base> を 要求 し ま し た。
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
__at セ ク シ ョ ン を使用 し て特定のア ド レ ス にセ ク シ ョ ン を配置す
る (8-39 ページ) .
L6985E
必要な ベ ー ス ア ド レ ス <base> の AT セ ク シ ョ ン <objname> (<spname>) を 自動的に配置で
き ま せ ん。 --no_autoat オ プ シ ョ ン を 使用 し て手動で ス キ ャ ッ タ フ ァ イ ル に配置 し て く だ さ い。
『 リ ン カの使用』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
__at セ ク シ ョ ン を使用 し て特定のア ド レ ス にセ ク シ ョ ン を配置す
る (8-39 ページ) .
『 リ ン カ リ フ ァ レ ン ス』 の以下のセ ク シ ョ ン を参照 し て下 さ い。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
--autoat、 --no_autoat (2-17 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
4-48
第5章
ELF イ メ ージ変換ユーテ ィ リ テ ィ のエ ラ ーおよび警告
以下の ト ピ ッ ク では、 ELF イ メ ージ変換ユーテ ィ リ テ ィ (fromelf) のエ ラ ーお よ び警告
メ ッ セージについて説明 し てい ます。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
fromelf のエ ラ ーお よ び警告 メ ッ セージの リ ス ト (5-2 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
5-1
ELF イ メ ージ変換ユーテ ィ リ テ ィ のエ ラ ーおよび警告
5.1
fromelf のエ ラ ーおよび警告 メ ッ セージの リ ス ト
fromelf のエ ラ ーお よ び警告 メ ッ セージは、 次の と お り です。
Q0105E
ロ ー ド 領域 #<segindex> が先頭の ア ド レ ス 空間の範囲 を 越え て い ま す。
Q0106E
メ モ リ が不足 し て い ま す。
Q0107E
出力 フ ァ イ ル '<filename>' の書 き 込み に失敗 し ま し た : <reason>
Q0108E
出力 フ ァ イ ル '<filename>' を 作成で き ま せ ん で し た : <reason>
Q0119E
出力 フ ァ イ ル が指定 さ れ て い ま せ ん。
Q0120E
入力 フ ァ イ ル が指定 さ れ て い ま せ ん。
Q0122E
フ ァ イ ル '<filename>' を 開け ま せ ん で し た : <reason>
<reason> が無効な引数の場合、 コ マ ン ド ラ イ ン に 無効な文字が含 ま れ る
こ と が原因で あ る 可能性が あ り ま す。 例 え ば、 Windows の場合、 ア ー
カ イ ブ フ ァ イ ル と 共 に フ ィ ル タ を 指定す る と き に エ ス ケ ー プ 文字 \ を
使用 し た 場合な ど で す。
fromelf --elf --strip=all t.a\(test*.o\) -o filtered/
Windows の場合、 以下の よ う に 指定 し ま す。
fromelf --elf --strip=all t.a(test*.o) -o filtered/
『fromelf イ メ ー ジ変換ユ ー テ ィ リ テ ィ の使用』 の以下の セ ク シ ョ ン を
参照 し て 下 さ い。
•
Q0128E
input_file (4-51 ペ ー ジ) .
フ ァ イ ル入出力 エ ラ ー で す。
こ の エ ラ ー は、 デ ィ レ ク ト リ の末尾が パ ス の区切 り 文字で は な い場合
に 、 --output コ マ ン ド ラ イ ン オ プ シ ョ ン で デ ィ レ ク ト リ を 指定 し た と き
に 発生す る 可能性が あ り ま す (--output=my_elf_files/ な ど )。
『fromelf イ メ ー ジ変換ユ ー テ ィ リ テ ィ の使用』 の以下の セ ク シ ョ ン を
参照 し て 下 さ い。
•
--output=destination (4-60 ペ ー ジ) .
Q0129E
32 ビ ッ ト ELF フ ァ イ ル で は あ り ま せ ん。
Q0130E
64 ビ ッ ト ELF フ ァ イ ル で は あ り ま せ ん。
Q0131E
無効な ELF 識別番号が見つ か り ま し た。
ELF 形式でないか破損 し てい る フ ァ イ ルに対 し て fromelf を使お う と す
る と 、 こ のエ ラ ーが発生 し ます。 オブジ ェ ク ト (.o) フ ァ イ ルお よ び実
行可能 (.axf) フ ァ イ ルは、 ELF 形式です。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Q0132E
無効な ELF セ ク シ ョ ン イ ン デ ク ス <idx> が見つ か り ま し た。
Q0133E
無効な ELF セ グ メ ン ト イ ン デ ク ス <idx> が見つ か り ま し た。
Q0134E
無効な ELF ス ト リ ン グ テ ー ブ ル <idx> が見つ か り ま し た。
Q0135E
無効な ELF セ ク シ ョ ン エ ン ト リ サ イ ズ が見つ か り ま し た。
Q0136E
ELF ヘ ッ ダ に無効な フ ァ イ ル タ イ プ が含 ま れ て い ま す。
Q0137E
ELF ヘ ッ ダ に無効な コ ン ピ ュ ー タ 名が含 ま れ て い ま す。
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
5-2
ELF イ メ ージ変換ユーテ ィ リ テ ィ のエ ラ ーおよび警告
Q0138E
ELF ヘ ッ ダ に無効な バ ー ジ ョ ン 番号が含 ま れ て い ま す。
Q0131E を参照 し て下 さ い。
Q0147E
デ ィ レ ク ト リ <dir> の作成に失敗 し ま し た : <reason>
<reason> が既存の フ ァ イ ル で あ る 場合、 既存の フ ァ イ ル と 同 じ 名前 を 持
つ デ ィ レ ク ト リ を 指定 し た こ と が原因で あ る 可能性が あ り ま す。 例 え
ば、 filtered と い う 名前の フ ァ イ ル が既 に 存在 し て い る 場合、 次の コ マ
ン ド を 実行す る と こ の エ ラ ー が生成 さ れ ま す。
fromelf --elf --strip=all t.a(test*.o) -o filtered/
パ ス の区切 り 文字 / に よ り 、 fromelf は filtered が デ ィ レ ク ト リ で
あ る と 判断 し ま す。
『fromelf イ メ ー ジ変換ユ ー テ ィ リ テ ィ の使用』 の以下の セ ク シ ョ ン を
参照 し て 下 さ い。
•
Q0171E
--output=destination (4-60 ペ ー ジ) .
ス ト リ ン グ テ ー ブ ル <idx> へ の st_name イ ン デ ッ ク ス が無効で す。
Q0131E を 参照 し て 下 さ い。
Q0172E
シ ン ボ ル テ ー ブ ル <idx> へ の イ ン デ ッ ク ス が無効で す。
Q0131E を参照 し て下 さ い。
Q0186E
こ の オ プ シ ョ ン で は、 デ バ ッ グ情報が存在 し て い る 必要が あ り ま す
--fieldoffsets オプシ ョ ン では、 イ メ ージが dwarf デバ ッ グ テーブル付 き
で ビル ド さ れてい る 必要があ り ます。
Q0425W
フ ァ イ ル内に正 し い形式で な い仮想関数の削除ヘ ッ ダ が あ り ま す
こ の問題は、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。 購入元
にお問い合わせ下 さ い。
Q0426E
フ ァ イ ル か ら の vtable 情報の読み出 し 中に エ ラ ー が発生 し ま し た
こ の問題は、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。 購入元
にお問い合わせ下 さ い。
Q0427E
vtable 内の シ ン ボ ル の ス ト リ ン グ を 取得中に エ ラ ー が発生 し ま し た
こ の問題は、 コ ンパ イ ラ のエ ラ ーを示 し てい る 場合があ り ます。 購入元
にお問い合わせ下 さ い。
Q0433E
診断 ス タ イ ル <style> は認識 さ れ ま せ ん
Q0440E
<secname> の再配置セ ク シ ョ ン が あ り ま せ ん
Q0447W
不明な診断番号 (<num>)
Q0448W
<file> の セ ク シ ョ ン 番号 <secnum> '<secname>' の展開中に、 圧縮デ ー タ の末尾以降 を 読み
出そ う と し て い ま す
こ の問題は、 内部エ ラ ーを示 し てい る 場合があ り ます。 購入元にお問い
合わせ下 さ い。
Q0449W
<file> の セ ク シ ョ ン 番号 <secnum> '<secname>' の展開中に、 サ イ ズ <bufsize> の展開
デ ー タ バ ッ フ ァ の末尾以降に書 き 込 も う と し て い ま す
こ の問題は、 内部エ ラ ーを示 し てい る 場合があ り ます。 購入元にお問い
合わせ下 さ い。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
5-3
ELF イ メ ージ変換ユーテ ィ リ テ ィ のエ ラ ーおよび警告
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Q0450W
フ ァ イ ル <file> の セ ク シ ョ ン 番号 <secnum> '<secname>' に、 ABI 配置の以前の型 と 現在
の型が混在 し て い ま す。
Q0451W
オ プ シ ョ ン '--strip symbols' が、 デ バ ッ グ情報 を 持つ ELF フ ァ イ ル に対 し て '--strip
debug' を 指定せ ず に使用 さ れ ま し た。
Q0452W
オ プ シ ョ ン '--strip filesymbols' が、 デ バ ッ グ情報 を 持つ ELF フ ァ イ ル に対 し て
'--strip debug' を 指定せ ず に使用 さ れ ま し た。
Q0453W
'<path1>' お よ び '<path2>' か ら パ ス 名 を 取 り 除 く と 重複 し た フ ァ イ ル名 '<filename>'
にな り ます
Q0454E
ELF フ ァ イ ル内 :
< 詳細 >
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
5-4
第6章
ラ イ ブ ラ リ ア ンのエ ラ ーおよび警告
以下の ト ピ ッ ク では、 ARM ラ イ ブ ラ リ ア ン (armar) のエ ラ ーお よ び警告 メ ッ セージに
ついて説明 し てい ます。
•
ARM DUI 0496GJ
ID 0 5 1 6 1 2
armar のエ ラ ーお よ び警告 メ ッ セージの リ ス ト (6-2 ページ) .
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
6-1
ラ イ ブ ラ リ ア ンのエ ラ ーおよび警告
6.1
armar のエ ラ ーおよび警告 メ ッ セージの リ ス ト
armar のエ ラ ーお よ び警告 メ ッ セージは、 次の と お り です。
L6800U
メ モ リ が不足 し て い ま す
L6825E
ア ー カ イ ブ '<archive>' の読み出 し 中 : <reason>
L6826E
'<archive>' は ア ー カ イ ブ 形式に な っ て い ま せ ん
L6827E
'<archive>' : 不正な形式の シ ン ボ ル テ ー ブ ル
L6828E
'<archive>' : 不正な形式の ス ト リ ン グ テ ー ブ ル
L6829E
'<archive>' : 不正な形式の ア ー カ イ ブ ( オ フ セ ッ ト <offset>)
L6830E
ア ー カ イ ブ '<archive>' の書 き 込み中 : <reason>
L6831E
'<member>' が ア ー カ イ ブ '<archive>' 内に存在 し ま せ ん
L6832E
ア ー カ イ ブ '<archive>' が見つ か り ま せ ん : <reason>
L6833E
フ ァ イ ル '<filename>' が存在 し ま せ ん
L6835E
フ ァ イ ル '<filename>' の読み取 り 中 : <reason>
L6836E
'<filename>' は既に存在 し て い る た め、 抽出 さ れ ま せ ん
L6838E
ア ー カ イ ブ が指定 さ れ て い ま せ ん
L6839E
い ず れ か の ア ク シ ョ ン -[<actions>] を 指定す る 必要が あ り ま す
L6840E
1 つ の ア ク シ ョ ン オ プ シ ョ ン の み を 指定で き ま す
L6841E
位置 '<position>' が見つ か り ま せ ん
L6842E
フ ァ イ ル名 '<filename>' が フ ァ イ ル シ ス テ ム に対 し て長す ぎ ま す
L6843E
フ ァ イ ル '<filename>' の書 き 込み中 : <reason>
L6874W
ア ー カ イ ブ メ ン バ '<member>' の マ イ ナ ー バ リ ア ン ト に ベ ー ス バ リ ア ン ト が含 ま れ て い ま せ ん
同 じ 関数のマ イ ナーバ リ ア ン ト が ラ イ ブ ラ リ 内に存在 し ます。 2 つの同
じ オブジ ェ ク ト を見つけて、 一方を削除 し て下 さ い。
L6875W
ARM DUI 0496GJ
ID 0 5 1 6 1 2
ELF オ ブ ジ ェ ク ト で は な い フ ァ イ ル '<filename>' を ア ー カ イ ブ '<name>' に追加中
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
6-2
第7章
その他のエ ラ ーおよび警告
以下の ト ピ ッ ク では、 ツールに よ っ て表示 さ れ る その他のエ ラ ーお よ び警告 メ ッ セージ
について説明 し てい ます。
•
その他のエ ラ ーお よ び警告 メ ッ セージの リ ス ト (7-2 ページ) .
注
こ れ ら のエ ラ ー メ ッ セージは、 ど の ツールか ら も 生成 さ れます。
メ ッ セージが表示 さ れ る と き に、 メ ッ セージ番号の前の X と い う 文字が、 アプ リ ケー
シ ョ ン と 関連す る 適切な文字に置 き 換え ら れ ます。 例えば、 コ ー ド X3900U は、 認識 さ れ
ないオプシ ョ ン が指定 さ れた と き に、 リ ン カに よ っ て L3900U と し て表示 さ れます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
7-1
その他のエ ラ ーおよび警告
7.1
その他のエ ラ ーおよび警告 メ ッ セージの リ ス ト
表示 さ れ る その他のエ ラ ーお よ び警告 メ ッ セージは次の と お り です。
X3900U
認識 さ れ な い オ プ シ ョ ン '<dashes><option>' で す。
<option> を ツールが認識で き ません。 こ の問題の原因は、 スペルの間違
い、 ま たはオプシ ョ ンのサポー ト さ れていない省略形の使用であ る 可能
性があ り ます。
X3901U
オ プ シ ョ ン '<option>' の引数が あ り ま せ ん。
X3902U
再帰的 via フ ァ イ ル の イ ン ク ル ー ド の深 さ が フ ァ イ ル '<file>' 内で <limit> に達 し ま し
た。
X3903U
引数 '<argument>' は オ プ シ ョ ン '<option>' に は使用で き ま せ ん。
原因 と し ては、 不正な形式の整数や不明な引数な ど が考え ら れます。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
X3904U
via フ ァ イ ル '<file>' を 開け ま せ ん で し た。
X3905U
via フ ァ イ ル '<file>' の読み出 し 中に エ ラ ー が発生 し ま し た。
X3906U
via フ ァ イ ル '<file>' の形式が間違 っ て い ま す。
X3907U
via フ ァ イ ル '<file>' コ マ ン ド は バ ッ フ ァ に は長す ぎ ま す。
X3908U
オ ー バ ー フ ロ ー : '<string>' は整数に収 ま り ま せ ん。
X3910W
古い構文で す。 '<hyphens><option><separator><parameter>' を 使用 し て下 さ い。
X3912W
オ プ シ ョ ン '<option>' は廃止 さ れ る 予定で す。
X3913W
via フ ァ イ ル '<file>' を 閉 じ る こ と が で き ま せ ん で し た。
X3915W
オ プ シ ョ ン '<option>' の引数 '<argument>' は、 今後サ ポ ー ト さ れ な く な る予定で す
X3916U
オ プ シ ョ ン '<dashes><option>' に、 期待 さ れ な い引数が指定 さ れ て い ま す
X3917U
連結 さ れ た オ プ シ ョ ン に は引数 を 指定で き ま せ ん : -<option> <arg>
X9905E
浮動小数点ハ ー ド ウ ェ ア で な い場合、 --apcs=/hardfp は使用で き ま せ ん
X9906E
fpu <fpu_option> で は、 --apcs=/hardfp は使用で き ま せ ん
X9907E
浮動小数点の サ ポ ー ト な し は選択で き ま せ ん
X9908E
--fpmode=none は --fpu choice を オ ー バ ー ラ イ ド し ま す
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
7-2
付録 A
『エ ラ ーおよび警告 リ フ ァ レ ン ス』 に対する改訂
『エ ラ ーお よ び警告 リ フ ァ レ ン ス』 に対 し て、 以下の技術的変更が加え ら れ ま し た。
表 A-1 発行 E と 発行 F の相違点
変更点
関連する ト ピ ッ ク
コ ンパ イ ラ メ ッ セージの変更点 :
•
内部 コ ンパ イ ラ エ ラ ーのバージ ョ ン番号
コ ン ポーネ ン ト を 2 桁か ら 3 桁に変更 し
ま し た。
•
メ ッ セージ 1113 お よ び 2523 が無効に
な っ たため、 削除 し ま し た。
•
注釈 2813 お よ び 2815 を追加 し ま し た。
•
アセ ンブ ラ メ ッ セージの変更点 :
•
多数のエ ラ ーお よ び警告 メ ッ セージ コ ー
ド 内の E、 W、 U 接尾文字が修正 さ れま
し た。
•
A1322E、 A1477E、 A1745W、 A1786W、
A1788W、 お よ び A1809W に詳細を追加
し ま し た。
ARM DUI 0496GJ
ID 0 5 1 6 1 2
内部エ ラ ー と その他の予期 し ないエ ラ ー
(2-2 ページ)
•
armcc のエ ラ ーお よ び警告 メ ッ セージの
リ ス ト (2-4 ページ)
armasm のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (3-2 ページ)
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
A-1
『エ ラ ーおよび警告 リ フ ァ レ ン ス』 に対する改訂
表 A-1 発行 E と 発行 F の相違点 (続き)
変更点
関連する ト ピ ッ ク
リ ン カ メ ッ セージの変更点 :
•
L6218E お よ び L6932W の説明への相互
参照を追加 し ま し た。
•
L6242E お よ び L6248E. の詳細を追加 し
ま し た。
armlink のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (4-3 ページ)
ARMCCnnLIB 環境変数 と ARMCCnnINC 環境変数を そ
各ト ピック
れぞれ ARMCCnLIB と ARMCCnINC に変更 し ま し た。
適切な場合、
•
Thumb-1 を 16 ビ ッ ト Thumb に変更 し ま
し た。
•
Thumb-2 を 32 ビ ッ ト Thumb に変更 し ま
し た。
各ト ピック
表 A-2 発行 D と 発行 E の相違点
ARM DUI 0496GJ
ID 0 5 1 6 1 2
変更点
関連する ト ピ ッ ク
コ ンパ イ ラ メ ッ セージの変更点 :
•
エ ラ ー 1558 の詳細が追加 さ れま し た。
armcc のエ ラ ーお よ び警告 メ ッ セージの リ ス ト
(2-4 ページ)
アセ ンブ ラ メ ッ セージの変更点 :
•
メ ッ セージ A1588E、 A1589E、 A1597E、
A1613E、 A1614E、 お よ び A1646W には
到達で き ないため、 削除 さ れま し た。
armasm のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (3-2 ページ)
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
A-2
『エ ラ ーおよび警告 リ フ ァ レ ン ス』 に対する改訂
表 A-3 発行 C と 発行 D の相違点
変更点
関連する ト ピ ッ ク
コ ンパ イ ラ メ ッ セージの変更点 :
•
メ ッ セージ C3335E、 C3336W、 C3337E、
お よ び C3338W が追加 さ れま し た。
古い ス タ イ ルの armcc のエ ラ ーお よ び警告
メ ッ セージの リ ス ト (2-67 ページ)
•
--profile は廃止 さ れ る 予定なので、 エ
ラ ー C3053W が削除 さ れま し た。
•
各種 メ ッ セージへの相互参照が追加 さ れ
ま し た。
アセ ンブ ラ メ ッ セージの変更点 :
•
メ ッ セージ A1903E、 A1907W、 A1908E、
お よ び A1909E が追加 さ れま し た。
•
A1450W への相互参照が追加 さ れま し
た。
リ ン カ メ ッ セージの変更点 :
•
L6064E が追加 さ れま し た。
•
L6216E の例を修正 し ま し た。
•
L6815U が追加 さ れま し た。
•
L6002U の説明を更新 し ま し た。
•
L6310W の説明を更新 し ま し た。
•
各種 メ ッ セージへの相互参照が追加 さ れ
ま し た。
fromelf メ ッ セージの変更点 :
•
armasm のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (3-2 ページ)
各種 メ ッ セージへの相互参照が追加 さ れ
ま し た。
armlink のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (4-3 ページ)
fromelf のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (5-2 ページ)
表 A-4 発行 B と 発行 C の相違点
変更点
関連する ト ピ ッ ク
リ ン カのエ ラ ー L6058E が追加 さ れま し た。
armlink のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (4-3 ページ)
リ ン カのエ ラ ー L6828E が追加 さ れま し た。
armlink のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (4-3 ページ)
表 A-5 発行 A と 発行 B の相違点
ARM DUI 0496GJ
ID 0 5 1 6 1 2
変更点
関連する ト ピ ッ ク
コ ンパ イ ラ のエ ラ ー 631 お よ び 634 の詳細が
追加 さ れま し た。
armcc のエ ラ ーお よ び警告 メ ッ セージの リ ス ト
(2-4 ページ)
アセ ンブ ラ のエ ラ ー A1590E が削除 さ れま し
た。
armasm のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (3-2 ページ)
アセ ンブ ラ の警告 A1746W の詳細が追加 さ れ
ま し た。
armasm のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (3-2 ページ)
リ ン カのエ ラ ー L6065E が追加 さ れま し た。
armlink のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (4-3 ページ)
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
A-3
『エ ラ ーおよび警告 リ フ ァ レ ン ス』 に対する改訂
表 A-5 発行 A と 発行 B の相違点 (続き)
ARM DUI 0496GJ
ID 0 5 1 6 1 2
変更点
関連する ト ピ ッ ク
リ ン カのエ ラ ー L6220E、 L6221E、 L6384E、
L6915E、 お よ び L6971E の詳細が追加 さ れま
し た。
armlink のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (4-3 ページ)
リ ン カのエ ラ ー L6224E お よ び L6469E の相互
参照が追加 さ れま し た。
armlink のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (4-3 ページ)
fromelf のエ ラ ー Q0122E、 Q0128E、 お よ び
Q0147E の詳細が追加 さ れま し た。
fromelf のエ ラ ーお よ び警告 メ ッ セージの リ ス
ト (5-2 ページ)
Copyright © 2010-2012 ARM. All rights reserved.
Non-Confidential
A-4