‑‑function_sections
このセクションの内容:
構文
--function_sections
説明
このオプションを使用して、ソースファイルの各関数を、結果のオブジェクトファイルの個別のセクションに配置します。セクションの名前には、文字列 .text. の後に関数の名前が付いています。C++ では、オーバーロードのため、マングル化された関数名がセクション名として使用されます。
このオプションは配置の柔軟性——個々の関数をモジュール内の他のすべての関数から独立して配置できる——を提供しますが、いくつかの最適化の機会が失われる代償があります。生成されるコードサイズも増加する可能性があります。これらの理由から、このオプションを使用せず、代わりに#pragma locationを使用して個々の関数を独自のセクションに配置する方が良い場合がよくあります。これにより、実際に柔軟性が必要な関数には柔軟性を提供し、残りの関数にはより良い最適化の機会を提供できるためです。‑‑function_sectionsオプションは、IARツールチェーンではサイズ上の利点をもたらしません—オブジェクトファイルがIARコンパイラでビルドされる場合、このオプションに関係なく未使用関数は常に破棄されるためです。
このオプションは GNU C コンパイルオプション ‑ffunction-sections に対応します。
例
int func1() { return 0; }
int func2() { return 1; }C モードでコンパイルした場合、 func1 関数と func2 関数は、 .text.func1 と .text.func2 という 2 つのセクションに配置されます。
関連項目
データと関数のメモリ配置制御 および セクションリファレンス。
注意
このオプションを設定するには、[プロジェクト]>[オプション]>[C/C++コンパイラ]>[追加オプション]を選択します。