// RUN: %clang_cc1 -fsyntax-only -verify %s
int ;
float test2_x; // expected-error {{declaration of 'test2_x' in global scope conflicts with declaration with C language linkage}}
static float test4_b; // expected-error {{declaration of 'test4_b' in global scope conflicts with declaration with C language linkage}}
extern "C"
static float test4_c; // expected-error {{redefinition of 'test4_c' with a different type: 'float' vs 'int'}}
extern "C"
extern "C"
extern "C"
extern "C"
int lookup_in_global_f; // expected-note {{here}}
int lookup_in_global_g; // expected-error {{conflicts with declaration with C language linkage}}
// We allow all these even though the standard says they are ill-formed.
extern "C"
int ;
void ;
void ;
void ;
void ;
extern "C" void ;
using using_decl::name_with_using_decl_1;
using using_decl::name_with_using_decl_2;
extern "C" void ;
extern "C" void ;
using using_decl::name_with_using_decl_3;
// We do not allow a global variable and an extern "C" function to have the same
// name, because such entities may have the same mangled name.
int global_var_vs_extern_c_fn_1; // expected-note {{here}}
int global_var_vs_extern_c_fn_2; // expected-error {{conflicts with declaration with C language linkage}}
int global_var_vs_extern_c_var_1; // expected-note {{here}}
int global_var_vs_extern_c_var_2; // expected-error {{conflicts with declaration with C language linkage}}
;
extern "C"
;