// Test lexing of pp-numbers does not allow digit separators that do
// not form part of the pp-number syntax, when the code is valid with
// correct lexing but not with too many characters accepted in the
// pp-number (bug 97604).
// { dg-do compile { target c++14 } }

static_assert (0x0'e-0xe == 0, "signs");

#define a0 '.' -
#define acat(x) a ## x
static_assert (acat (0'.') == 0, ".");

// This case was not actually buggy.
#define c0(x) 0
#define b0 c0 (
#define bcat(x) b ## x
static_assert (bcat (0'\u00c0')) == 0, "identifier-nondigit");