// RUN: %clang_cc1 -fsyntax-only -std=c++20 -verify -Wreserved-identifier %s
int // expected-warning {{identifier 'foo__bar' is reserved because it contains '__'}}
static int // expected-warning {{identifier '_bar' is reserved because it starts with '_' at global scope}}
static int // expected-warning {{identifier '_Bar' is reserved because it starts with '_' followed by a capital letter}}
int // expected-warning {{identifier '_barbouille' is reserved because it starts with '_' at global scope}}
void
// This one is explicitly skipped by -Wreserved-identifier
void *_; // no-warning
constexpr bool __toucan = true; // expected-warning {{identifier '__toucan' is reserved because it starts with '__'}}
concept _Barbotine = __toucan<T>; // expected-warning {{identifier '_Barbotine' is reserved because it starts with '_' followed by a capital letter}}
// expected-warning {{'__' is reserved because it starts with '__'}}
;
// no-warning
;
// expected-warning {{'__' is reserved because it starts with '__'}}
void
// namespace _Barbidur
;
;
;
;
static ;
using _Barbamama = __barbapapa; // expected-warning {{identifier '_Barbamama' is reserved because it starts with '_' followed by a capital letter}}
int
long double
long double
long double sacrebleu = operator"" ; // expected-warning {{identifier '_SacreBleu' is reserved because it starts with '_' followed by a capital letter}}
long double sangbleu = operator""; // no-warning
void ; // no-warning
void ; // no-warning
p;
* q;
;