参照元†
- FIXME: これは何?
- N 番目のオペランド(u.fld[N])を返す。
- 引数 N が範囲内に収まっているかチェックする
- RTX の N 番目のオペランドの型が引数 C1 または C2 と一致するかチェックする
- RTX
- int N
- char C1
- char C2
返り値†
#if defined ENABLE_RTL_CHECKING && (GCC_VERSION >= 2007)
#define RTL_CHECK2(RTX, N, C1, C2) __extension__ \
(*({ __typeof (RTX) const _rtx = (RTX); const int _n = (N); \
const enum rtx_code _code = GET_CODE (_rtx); \
if (_n < 0 || _n >= GET_RTX_LENGTH (_code)) \
rtl_check_failed_bounds (_rtx, _n, __FILE__, __LINE__, \
__FUNCTION__); \
if (GET_RTX_FORMAT (_code)[_n] != C1 \
&& GET_RTX_FORMAT (_code)[_n] != C2) \
rtl_check_failed_type2 (_rtx, _n, C1, C2, __FILE__, __LINE__, \
__FUNCTION__); \
&_rtx->u.fld[_n]; }))
#else /* not ENABLE_RTL_CHECKING */
#define RTL_CHECK2(RTX, N, C1, C2) ((RTX)->u.fld[N])
#endif
コメント†