// RUN: %clang_cc1 -triple i386-pc-unknown -Wconversion -Wliteral-conversion -fsyntax-only -verify %s
// C DR #316, PR 3626.
void int a,b,c,d; // expected-warning {{a function definition without a prototype is deprecated in all versions of C and is not supported in C2x}}
void
void int a, b; // expected-warning {{a function definition without a prototype is deprecated in all versions of C and is not supported in C2x}}
void
void ; // expected-note{{previous declaration is here}}
void float x; // expected-warning{{promoted type 'double' of K&R function parameter is not compatible with the parameter type 'float' declared in a previous prototype}} \
expected-warning {{a function definition without a prototype is deprecated in all versions of C and is not supported in C2x}}
typedef void ;
f3 // okay
// <rdar://problem/8193107>
void
// FIXME: we should diagnose this case, but when merging function declarations,
// we don't diagnose it because the function is a builtin.
char *register char *s, c; // expected-warning{{promoted type 'char *' of K&R function parameter is not compatible with the parameter type 'const char *' declared in a previous prototype}}
// PR8314
void ;
void int x;
void
// PR31020
void ; // expected-note{{previous declaration is here}}
void short d; // expected-warning{{promoted type 'int' of K&R function parameter is not compatible with the parameter type 'short' declared in a previous prototype}}