// RUN: %clang_cc1 -std=c++2a -verify %s -pedantic
;
;
typedef struct Linkage2;
typedef struct const NoLinkage1;
auto x = ;
typedef decltype NoLinkage2;
auto
typedef decltype NoLinkage3;
inline auto
typedef decltype VisibleNoLinkage1;
inline auto y = ;
typedef decltype VisibleNoLinkage2;
inline auto
typedef decltype VisibleNoLinkage3;
extern Linkage1 linkage1v;
extern Linkage1::Inner linkage1iv;
extern Linkage2 linkage2v;
extern Linkage2::Inner linkage2iv;
extern Template<Linkage1> linkaget1v;
extern Linkage1 ;
void ;
void
extern NoLinkage1 ; // expected-error {{function 'no_linkage1' is used but not defined in this translation unit}}
extern NoLinkage2 ; // expected-error {{function 'no_linkage2' is used but not defined in this translation unit}}
extern NoLinkage3 ; // expected-error {{function 'no_linkage3' is used but not defined in this translation unit}}
void
extern VisibleNoLinkage1 ; // expected-warning {{ISO C++ requires a definition}}
extern VisibleNoLinkage2 ; // expected-warning {{ISO C++ requires a definition}}
extern VisibleNoLinkage3 ; // expected-warning {{ISO C++ requires a definition}}
void
InternalLinkage ; // expected-error {{used but not defined}}
void
extern inline int not_defined; // expected-error {{not defined}}
extern inline int defined_after_use;
void
inline int defined_after_use;