// RUN: %clang_cc1 -std=c++2a -verify %s
N::Q q;
int ;
int ;
int ;
int ;
// OK, these find the above functions by ADL.
int a = f<int>;
int ;
int ;
int d = g<int>;
int e = h<0>; // ok, found by unqualified lookup
void
void
bool
// Ensure that treating undeclared identifiers as template names doesn't cause
// problems.
; // expected-error {{undeclared template struct 'W'}}
X<int>::Y xy; // expected-error {{no template named 'X'}}
void ; // expected-error {{no template named 'X'}}
;
// Similarly for treating overload sets of functions as template names.
; // expected-error {{'g' refers to a function template}}
g<int>::Y xy; // expected-error {{no template named 'g'}} FIXME lies
void ; // expected-error {{variable has incomplete type 'void'}} expected-error 1+{{}} expected-note {{}}
;