// RUN: %clang_cc1 -triple x86_64-linux-gnu -Wno-strict-prototypes -fsyntax-only -verify %s -Wnonnull
void ;
void ;
void
int ;
int ;
int ;
void
// expected-error@+1 {{multiversioned function must have a prototype}}
int ;
int ;
int
int ;
int
// expected-error@+2 {{redefinition of 'redecl2'}}
// expected-note@-2 {{previous definition is here}}
int
int ;
int
int ;
void
// expected-error@+1 {{function declaration cannot become a multiversioned function after first usage}}
int
int ;
// expected-error@+1 {{function declaration is missing 'cpu_specific' or 'cpu_dispatch' attribute in a multiversioned function}}
int ;
// expected-warning@+1 {{CPU list contains duplicate entries; attribute ignored}}
int ;
int ;
// expected-error@+2 {{multiple 'cpu_specific' functions cannot specify the same CPU: 'atom'}}
// expected-note@-2 {{previous declaration is here}}
int ;
int ;
// expected-error@+2 {{multiple 'cpu_specific' functions cannot specify the same CPU: 'ivybridge'}}
// expected-note@-2 {{previous declaration is here}}
int ;
int
// expected-error@+2 {{redefinition of 'redef'}}
// expected-note@-2 {{previous definition is here}}
int
int
// expected-error@+2 {{'cpu_dispatch' function redeclared with different CPUs}}
// expected-note@-2 {{previous declaration is here}}
int
// expected-error@+1 {{'cpu_dispatch' attribute takes at least 1 argument}}
int
// expected-error@+1 {{'cpu_specific' attribute takes at least 1 argument}}
int
//expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'used'}}
void ;
void ;
// expected-error@+2 {{multiversioning attributes cannot be combined}}
// expected-note@-2 {{previous declaration is here}}
void ;
// expected-error@+2 {{'cpu_dispatch' and 'cpu_specific' attributes are not compatible}}
// expected-note@+1 {{conflicting attribute is here}}
void ;
int
// expected-error@+1 {{multiversioned function declaration has a different calling convention}}
__vectorcall int ;
// expected-warning@+2 {{body of cpu_dispatch function will be ignored}}
int
// expected-error@+1 {{invalid option 'INVALID'}}
int
// expected-warning@+3 {{attribute declaration must precede definition}}
// expected-note@-2 2 {{previous definition is here}}
// expected-error@+1 {{redefinition of}}
int
int
int
// expected-warning@+1 {{CPU list contains duplicate entries; attribute ignored}}
int ;
void ;
int ;
int ;
// expected-error@+1 {{function declaration is missing 'cpu_specific' or 'cpu_dispatch' attribute in a multiversioned function}}
int ;
int ;
// expected-error@+2 {{conflicting types for 'bad_overload2'}}
// expected-note@-2 {{previous declaration is here}}
int ;
int ;
int ;
int ;
// expected-error@+1 {{function declaration is missing 'cpu_specific' or 'cpu_dispatch' attribute in a multiversioned function}}
int ;
int ;
// expected-error@+2 {{conflicting types for 'bad_overload4'}}
// expected-note@-2 {{previous declaration is here}}
int ;
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
int ;
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
int ;
int ;
int ;
int ;
int ;
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
int ;
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
// expected-error@+1 {{attribute 'cpu_specific' multiversioning cannot be combined with attribute 'overloadable'}}
int ;
int ;