(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
c2x-utf8char-1.c
       1  /* Test C2x UTF-8 characters.  Test valid usages.  */
       2  /* { dg-do compile } */
       3  /* { dg-options "-std=c2x -pedantic-errors" } */
       4  
       5  unsigned char a = u8'a';
       6  _Static_assert (u8'a' == 97);
       7  
       8  unsigned char b = u8'\0';
       9  _Static_assert (u8'\0' == 0);
      10  
      11  unsigned char c = u8'\xff';
      12  _Static_assert (u8'\xff' == 255);
      13  
      14  unsigned char d = u8'\377';
      15  _Static_assert (u8'\377' == 255);
      16  
      17  _Static_assert (sizeof (u8'a') == 1);
      18  _Static_assert (sizeof (u8'\0') == 1);
      19  _Static_assert (sizeof (u8'\xff') == 1);
      20  _Static_assert (sizeof (u8'\377') == 1);
      21  
      22  _Static_assert (_Generic (u8'a', unsigned char: 1, default: 2) == 1);
      23  _Static_assert (_Generic (u8'\0', unsigned char: 1, default: 2) == 1);
      24  _Static_assert (_Generic (u8'\xff', unsigned char: 1, default: 2) == 1);
      25  _Static_assert (_Generic (u8'\377', unsigned char: 1, default: 2) == 1);
      26  
      27  #if u8'\0' - 1 < 0
      28  #error "UTF-8 constants not unsigned in preprocessor"
      29  #endif