// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -verify -fexceptions -fcxx-exceptions %s -std=c++14
void ;
//expected-error@+2 {{function declaration is missing 'target' attribute in a multiversioned function}}
//expected-warning@+1 {{unsupported 'hello_world' in the 'target' attribute string; 'target' attribute ignored}}
void ;
//expected-error@+1 {{function multiversioning doesn't support feature 'no-sse4.2'}}
void ;
void ;
void ;
void
constexpr int
constexpr int ;
//expected-error@+1 {{multiversioned function declaration has a different constexpr specification}}
int
constexpr int
int
//expected-error@+1 {{multiversioned function declaration has a different constexpr specification}}
constexpr int ;
int
int
static int
static int ;
//expected-error@+1 {{multiversioned function declaration has a different linkage}}
int
static int
int
//expected-error@+1 {{multiversioned function declaration has a different linkage}}
static int ;
int
int
// no diagnostic, since this doesn't change the linkage.
int
extern int ;
inline int
inline int ;
//expected-error@+1 {{multiversioned function declaration has a different inline specification}}
int
inline int
int
//expected-error@+1 {{multiversioned function declaration has a different inline specification}}
inline int ;
int
int
float
//expected-error@+1 {{multiversioned function declaration has a different return type}}
int ;
//expected-error@+1 {{multiversioned function declaration has a different return type}}
int
//expected-error@+1 {{multiversioned function declaration has a different return type}}
int
int
//expected-error@+1 {{multiversioned function declaration has a different return type}}
float ;
int
int
auto int
//expected-error@+1 {{multiversioned function declaration has a different return type}}
auto short
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!
int
// 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
// expected-error@+1 {{multiversioned functions do not yet support deduced return types}}
auto
auto int
void ;
// namespace N
;
;
int
int
int
constexpr int
constexpr int ;
constexpr int
constexpr int
void
;
int
int
// expected-error@+3 {{out-of-line definition of 'foo' does not match any declaration in 'BadOutOfLine'}}
// expected-note@-3 {{member declaration nearly matches}}
// expected-note@-3 {{member declaration nearly matches}}
int