// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -verify -fexceptions -fcxx-exceptions %s -std=c++14
// expected-error@+1{{invalid option 'invalid' for cpu_dispatch}}
void ;
void ;
void ;
;
void
//expected-error@+1 {{attribute 'cpu_specific' multiversioned functions do not yet support constexpr functions}}
constexpr int ;
int ;
//expected-error@+1 {{attribute 'cpu_specific' multiversioned functions do not yet support constexpr functions}}
constexpr int ;
static int ;
//expected-error@+1 {{multiversioned function declaration has a different linkage}}
int
// OK
extern int ;
int
inline int ;
//expected-error@+1 {{multiversioned function declaration has a different inline specification}}
int
void ;
//expected-error@+1 {{multiversioned function declaration has a different return type}}
int ;
int ;
//expected-error@+2 {{exception specification in declaration does not match previous declaration}}
//expected-note@-2 {{previous declaration is here}}
int ;
// FIXME: Add support for templates and virtual functions!
// expected-error@+2 {{multiversioned functions do not yet support function templates}}
int
// expected-error@+2 {{multiversioned functions do not yet support function templates}}
int ;
;
extern "C"
//expected-error@+1 {{multiversioned function declaration has a different language linkage}}
int
void ;
// namespace N
;
;
int
int
// Ensure Cpp Spelling works.
int
// expected-error@+1 {{lambda cannot be declared 'cpu_dispatch'}}
auto x = ;