*参照元 [#z4cfeae2] #backlinks *説明 [#mb4395c1] -パス: [[gcc-8.3/gcc/rtl.h]] -FIXME: これは何? --N 番目のオペランド(u.fld[N])を返す。 --引数 N の正当性はチェックしない --RTX の N 番目のオペランドの型が引数 C と一致するかチェックする **引数 [#x78ee428] -RTX -- -int N --何番目のオペランドを返すか -char C --オペランドの型 **返り値 [#y942fd0a] -rtunion --rtx_def の u.fld[] の型と同じ --[[gcc-8.3/gcc/rtx_def]] --[[gcc-8.3/gcc/rtunion]] **参考 [#f7ca6b36] -N の範囲チェックする場合はこっち --[[gcc-8.3/gcc/RTL_CHECK1()]] *実装 [#c4caefc8] #if defined ENABLE_RTL_CHECKING && (GCC_VERSION >= 2007) #define RTL_CHECKC1(RTX, N, C) __extension__ \ (*({ __typeof (RTX) const _rtx = (RTX); const int _n = (N); \ if (GET_CODE (_rtx) != (C)) \ rtl_check_failed_code1 (_rtx, (C), __FILE__, __LINE__, \ __FUNCTION__); \ &_rtx->u.fld[_n]; })) - --[[gcc-8.3/gcc/GET_CODE()]] --[[gcc-8.3/gcc/rtl_check_failed_code1()]] #else /* not ENABLE_RTL_CHECKING */ #define RTL_CHECKC1(RTX, N, C) ((RTX)->u.fld[N]) #endif *コメント [#ld82d191]