(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
ext/
flexary.h
       1  // Definitions of helper macros for tests of flexible array members.
       2  
       3  #if __cplusplus < 201102L
       4  #  define _CAT(x, y)  x ## y
       5  #  define CAT(x, y)  _CAT (x, y)
       6  
       7  // Generate a struct with a unique name containing a bitfield
       8  // of size that must evaluate to a non-zero value, otherwise
       9  // generate a compiler error.
      10  #  define ASSERT(expr)                                                  \
      11    struct CAT (FAM_Assert, __LINE__) { unsigned asrt: 0 != (expr); }
      12  #else
      13  // In C++ 11 and beyond, use static_assert.
      14  # define ASSERT(expr) static_assert (expr, #expr)
      15  #endif
      16  
      17  // Macro to verify that a flexible array member is allocated
      18  // at the very end of the containing struct.
      19  #define ASSERT_AT_END(T, m)                             \
      20    ASSERT (__builtin_offsetof (T, m) == sizeof (T))
      21  
      22  typedef __SIZE_TYPE__ size_t;