/* Test C23 digit separators.  Invalid usages.  */
/* { dg-do compile } */
/* { dg-options "-std=c23 -pedantic-errors" } */

void
tf (void)
{
  int i;
  i = 1''2; /* { dg-error "adjacent digit separators" } */
  i = 0x'0; /* { dg-error "digit separator after base indicator" } */
  i = 0X'1; /* { dg-error "digit separator after base indicator" } */
  i = 0b'0; /* { dg-error "digit separator after base indicator" } */
  i = 0B'1; /* { dg-error "digit separator after base indicator" } */
  i = 1'u; /* { dg-error "digit separator outside digit sequence" } */
  float f = 1.2e-3'f; /* { dg-error "digit separator outside digit sequence" } */
  i = 1'2'3'; /* { dg-error "12:missing terminating" } */
  ;
  double d;
  d = 1'.2'3e-4; /* { dg-warning "multi-character" } */
  /* { dg-error "expected" "parse error" { target *-*-* } .-1 } */
  d = 1.2''3; /* { dg-error "adjacent digit separators" } */
  d = 1.23e-4''5; /* { dg-error "adjacent digit separators" } */
  d = 1.2'3e-4'5'; /* { dg-error "17:missing terminating" } */
  /* { dg-error "expected" "parse error" { target *-*-* } .-1 } */
}
