(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
ubsan/
float-cast.h
       1  /* Various macros for -fsanitize=float-cast-overflow testing.  */
       2  
       3  /* E.g. on CentOS 5 these aren't defined in limits.h.  */
       4  #ifndef LLONG_MAX
       5  # define LLONG_MAX __LONG_LONG_MAX__
       6  #endif
       7  #ifndef LLONG_MIN
       8  # define LLONG_MIN (-__LONG_LONG_MAX__ - 1LL)
       9  #endif
      10  #ifndef ULLONG_MAX
      11  # define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL)
      12  #endif
      13  
      14  #define INT128_MAX (__int128) (((unsigned __int128) 1 << ((__SIZEOF_INT128__ * __CHAR_BIT__) - 1)) - 1)
      15  #define INT128_MIN (-INT128_MAX - 1)
      16  #define UINT128_MAX ((2 * (unsigned __int128) INT128_MAX) + 1)
      17  
      18  #define CHECK_BOUNDARY(VAR, VAL)	\
      19    (VAR) = (VAL) - 5.0;			\
      20    (VAR) = (VAL) - 1.5;			\
      21    (VAR) = (VAL) - 1.0;			\
      22    (VAR) = (VAL) - 0.75;			\
      23    (VAR) = (VAL) - 0.5;			\
      24    (VAR) = (VAL) - 0.0000001;		\
      25    (VAR) = (VAL) - 0.0;			\
      26    (VAR) = (VAL);			\
      27    (VAR) = (VAL) + 0.0;			\
      28    (VAR) = (VAL) + 0.0000001;		\
      29    (VAR) = (VAL) + 0.5;			\
      30    (VAR) = (VAL) + 0.75;			\
      31    (VAR) = (VAL) + 1.0;			\
      32    (VAR) = (VAL) + 1.5;			\
      33    (VAR) = (VAL) + 5.0;
      34  
      35  #define CHECK_NONNUMBERS(VAR)		\
      36    (VAR) = nan;				\
      37    (VAR) = -nan;				\
      38    (VAR) = inf;				\
      39    (VAR) = -inf;