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
© Copyright 2024 Paperzz