// RUN: %clang_cc1 -triple %itanium_abi_triple -fsyntax-only -Wno-strict-prototypes -verify %s
// PR3588
void ;
void ; // expected-note{{previous declaration is here}} expected-note{{'g0' declared here}}
void
void ; // expected-error{{conflicting types for 'g0'}}
int ;
typedef int INT;
INT int x;
int y;
int ; // expected-note{{previous declaration is here}}
INT int x;
void
extern void ; // expected-note{{previous declaration is here}}
static void // expected-error{{static declaration of 'g3' follows non-static declaration}}
void
// <rdar://problem/6127293>
int ; // expected-note{{previous declaration is here}}
;
int ; // expected-note{{previous declaration is here}}
int outer5; // expected-note{{previous definition is here}}
int *;
void
int ; // expected-error{{conflicting types for 'outer2'}}
int ; // expected-error{{conflicting types for 'outer3'}}
int ; // expected-error{{conflicting types for 'outer4'}}
void
void
;
// GNU extension: prototypes and K&R function definitions
int ;
int short x; // expected-warning{{promoted type 'int' of K&R function parameter is not compatible with the parameter type 'short' declared in a previous prototype}}
unsigned int y;
// PR3817
void *;
extern h1 ;
extern h1 ;
// PR3840
void ;
extern i1;
extern i1;
typedef int ;
typedef int ;
a x;
a2 x2; // expected-note{{passing argument to parameter here}}
void
;
void ;
void
;
void ; // expected-note {{previous declaration is here}}
void ; // expected-error {{conflicting types for 'f4'}}