[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

17.16.9 例外領域用のアセンブラコマンド

この節では、例外領域の開始地点、終了地点をマークするコマンドに ついて説明する。

ASM_OUTPUT_EH_REGION_BEG ()

例外領域の開始地点をマークするテキストを出力する C の式である。

多くのプラットフォームではこのマクロは定義する必要がない。

ASM_OUTPUT_EH_REGION_END ()

例外領域の終了地点をマークするテキストを出力する C の式である。

多くのプラットフォームではこのマクロは定義する必要がない。

EXCEPTION_SECTION ()

一個の C の式。この式は、主となる例外テーブルを置くべきセクション (see section 出力をセクション(text, data, …)に分割する)への切替えを行なう。 デフォルトは、ASM_OUTPUT_SECTION_NAME により名前付可能な セクションをサポートしている機種では、.gcc_except_table という 名前のセクションになる。サポートしていない機種では、 ‘-fpic’ か ‘-fPIC’ が有効な場合は data_section、 有効でなければ readonly_data_section になる。

EH_FRAME_SECTION_ASM_OP

一個の C の文字列定数。これが定義されていれば、例外処理フレームの 巻き戻し情報用のセクションに切り替えるアセンブラの命令を表す。 定義されていないと、ターゲットが名前付きセクションをサポートしていれば GNU CC がデフォルトの定義を提供する。‘crtstuff.c’ では、 このマクロを使って適切なセクションへの切替えを行なっている。

ターゲットが DWARF 2 のフレームの巻き戻し情報をサポートしていて、かつ、 デフォルトの定義では正しく動作しない場合は、このシンボルを定義 しなければならない。

OMIT_EH_TABLE ()

一個の C の式。この式は、通常の例外テーブル出力を省くべきなら ゼロでない値となる。

ほとんどのプラットフォームでは、このマクロを定義する必要はない。

EH_TABLE_LOOKUP ()

実行時の例外の検索と対応するハンドラを探す実行時サポートの、 デフォルトの方法がうまく行かない場合の別の選択肢である。

ほとんどのプラットフォームでは、このマクロを定義する必要はない。

DOESNT_NEED_UNWINDER

一個の C の式。この式は、現在の関数が、それ用に生成された関数の巻き戻しを 必要とするかどうかを決定する。 いつ、どのようにこれを定義したら良いか、詳細については except.c を参照すること。

MASK_RETURN_ADDR

RETURN_ADDR_RTX’ を経由して見つかった戻りアドレスをマスクするのに 使われる RTX である。このため、なんら余分なビットは立っていない。

DWARF2_UNWIND_INFO

ターゲットが DWARF 2 のフレーム巻き戻し情報をサポートしているが、 例外処理と一緒には動作していない場合には、このマクロを 0 に定義する。 それ以外の場合、ターゲットがこの情報をサポートしていれば (‘INCOMING_RETURN_ADDR_RTX’と‘UNALIGNED_INT_ASM_OP’ か ‘OBJECT_FORMAT_ELF’ のどちらかを定義している場合)、GCC は デフォルトの定義 1 を提供する。

このマクロが 1 に定義されていれば、DWARF 2 の巻き戻しは、デフォルトの 例外処理機構になる。それ以外の場合は、setjmp/longjmp が デフォルトで使われる。

このマクロが何かに定義されていれば、DWARF 2 の巻き戻しが、 インライン巻き戻しと非 setjmp の場合の __unwind_function の 代わりに使われる。


This document was generated using texi2html 1.78.