FANDOM


このページを編集する際は,編集に関する方針に従ってください. 編集

概要 編集

引数 編集

実装 編集

495 /* Returns the narrowest C-visible unsigned type, starting with the
496    minimum specified by FLAGS, that can fit HIGH:LOW, or itk_none if
497    there isn't one.  */
498 
499 static enum integer_type_kind
500 narrowest_unsigned_type (unsigned HOST_WIDE_INT low,
501                          unsigned HOST_WIDE_INT high,
502                          unsigned int flags)
503 {
504   enum integer_type_kind itk;
505 

  • flagを元に型を求める

506   if ((flags & CPP_N_WIDTH) == CPP_N_SMALL)
507     itk = itk_unsigned_int;
508   else if ((flags & CPP_N_WIDTH) == CPP_N_MEDIUM)
509     itk = itk_unsigned_long;
510   else
511     itk = itk_unsigned_long_long;
512 

  • 先ほど決めたものを元に型の調整

513   for (; itk < itk_none; itk += 2 /* skip unsigned types */)
514     {
515       tree upper = TYPE_MAX_VALUE (integer_types[itk]);
516 
517       if ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (upper) > high
518           || ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (upper) == high
519               && TREE_INT_CST_LOW (upper) >= low))
520         return itk;
521     }
522 

  • 当てはまるものがなかった

523   return itk_none;
524 }



リンク元

広告ブロッカーが検出されました。


広告収入で運営されている無料サイトWikiaでは、このたび広告ブロッカーをご利用の方向けの変更が加わりました。

広告ブロッカーが改変されている場合、Wikiaにアクセスしていただくことができなくなっています。カスタム広告ブロッカーを解除してご利用ください。

FANDOMでも見てみる

おまかせWiki