/* Test for -Wtraditional warnings on ISO C function definitions.
|
/* Test for -Wtraditional warnings on ISO C function definitions.
|
Note, gcc should omit these warnings in system header files.
|
Note, gcc should omit these warnings in system header files.
|
Origin: Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6/30/2002. */
|
Origin: Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6/30/2002. */
|
/* { dg-do compile } */
|
/* { dg-do compile } */
|
/* { dg-options "-Wtraditional" } */
|
/* { dg-options "-Wtraditional" } */
|
|
|
/* Test some simple cases. */
|
/* Test some simple cases. */
|
|
|
void f_void1 (void)
|
void f_void1 (void)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return;
|
return;
|
}
|
}
|
|
|
void f_void2 ()
|
void f_void2 ()
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|
void f_int1 (int f)
|
void f_int1 (int f)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return;
|
return;
|
}
|
}
|
|
|
void f_int2 (f)
|
void f_int2 (f)
|
int f;
|
int f;
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|
/* Test that we don't ever warn about nested functions. */
|
/* Test that we don't ever warn about nested functions. */
|
|
|
void f_int3 (int f)
|
void f_int3 (int f)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
void f3a (void) { return; }
|
void f3a (void) { return; }
|
void f3b () { return; }
|
void f3b () { return; }
|
void f3c (int f) { return; }
|
void f3c (int f) { return; }
|
void f3d (f) int f; { return; }
|
void f3d (f) int f; { return; }
|
void f3e (const char *f, ...) { return; }
|
void f3e (const char *f, ...) { return; }
|
return;
|
return;
|
}
|
}
|
|
|
void f_int4 (int f)
|
void f_int4 (int f)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
void f4a (void) { return; }
|
void f4a (void) { return; }
|
void f4b () { return; }
|
void f4b () { return; }
|
void f4c (int f) { return; }
|
void f4c (int f) { return; }
|
void f4d (f) int f; { return; }
|
void f4d (f) int f; { return; }
|
void f4e (const char *f, ...) { return; }
|
void f4e (const char *f, ...) { return; }
|
auto f4f (void) { return 0; }
|
auto f4f (void) { return 0; }
|
return;
|
return;
|
}
|
}
|
|
|
void f_int5 (f)
|
void f_int5 (f)
|
int f;
|
int f;
|
{
|
{
|
void f5a (void) { return; }
|
void f5a (void) { return; }
|
void f5b () { return; }
|
void f5b () { return; }
|
void f5c (int f) { return; }
|
void f5c (int f) { return; }
|
void f5d (f) int f; { return; }
|
void f5d (f) int f; { return; }
|
void f5e (const char *f, ...) { return; }
|
void f5e (const char *f, ...) { return; }
|
return;
|
return;
|
}
|
}
|
|
|
void f_int6 (f)
|
void f_int6 (f)
|
int f;
|
int f;
|
{
|
{
|
void f6a (void) { return; }
|
void f6a (void) { return; }
|
void f6b () { return; }
|
void f6b () { return; }
|
void f6c (int f) { return; }
|
void f6c (int f) { return; }
|
void f6d (f) int f; { return; }
|
void f6d (f) int f; { return; }
|
void f6e (const char *f, ...) { return; }
|
void f6e (const char *f, ...) { return; }
|
auto f6f (void) { return 0; }
|
auto f6f (void) { return 0; }
|
return;
|
return;
|
}
|
}
|
|
|
/* Test that prototypes are silently accepted and function definitions
|
/* Test that prototypes are silently accepted and function definitions
|
are still warned about. */
|
are still warned about. */
|
|
|
extern void f_int_p1 (int);
|
extern void f_int_p1 (int);
|
void f_int_p1 (int f)
|
void f_int_p1 (int f)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return;
|
return;
|
}
|
}
|
|
|
extern void f_int_p2 (int f);
|
extern void f_int_p2 (int f);
|
void f_int_p2 (int f)
|
void f_int_p2 (int f)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return;
|
return;
|
}
|
}
|
|
|
extern void f_int_p3 (int);
|
extern void f_int_p3 (int);
|
void f_int_p3 (f)
|
void f_int_p3 (f)
|
int f;
|
int f;
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|
extern void f_int_p4 (int f);
|
extern void f_int_p4 (int f);
|
void f_int_p4 (f)
|
void f_int_p4 (f)
|
int f;
|
int f;
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|
extern void f_void_p1 ();
|
extern void f_void_p1 ();
|
void f_void_p1 (void)
|
void f_void_p1 (void)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return;
|
return;
|
}
|
}
|
|
|
extern void f_void_p2 (void);
|
extern void f_void_p2 (void);
|
void f_void_p2 (void)
|
void f_void_p2 (void)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return;
|
return;
|
}
|
}
|
|
|
extern void f_blank_p1 ();
|
extern void f_blank_p1 ();
|
void f_blank_p1 ()
|
void f_blank_p1 ()
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|
extern void f_blank_p2 (void);
|
extern void f_blank_p2 (void);
|
void f_blank_p2 ()
|
void f_blank_p2 ()
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|
/* Test some implicit int functions. */
|
/* Test some implicit int functions. */
|
|
|
f_impl1()
|
f_impl1()
|
{
|
{
|
return 0;
|
return 0;
|
}
|
}
|
|
|
f_impl2(void)
|
f_impl2(void)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return 0;
|
return 0;
|
}
|
}
|
|
|
f_impl3(int f)
|
f_impl3(int f)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return 0;
|
return 0;
|
}
|
}
|
|
|
/* Test stdarg functions. */
|
/* Test stdarg functions. */
|
|
|
f_stdarg1(const char *s, ...)
|
f_stdarg1(const char *s, ...)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return 0;
|
return 0;
|
}
|
}
|
|
|
void f_stdarg2(const char *s, ...)
|
void f_stdarg2(const char *s, ...)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return;
|
return;
|
}
|
}
|
|
|
extern void f_stdarg3(const char *, ...);
|
extern void f_stdarg3(const char *, ...);
|
void f_stdarg3(const char *s, ...)
|
void f_stdarg3(const char *s, ...)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return;
|
return;
|
}
|
}
|
|
|
/* Test handling function pointer parameters. */
|
/* Test handling function pointer parameters. */
|
|
|
void f_fnptr1 (int f, int (*fp)(int));
|
void f_fnptr1 (int f, int (*fp)(int));
|
void f_fnptr1 (int f, int (*fp)(int))
|
void f_fnptr1 (int f, int (*fp)(int))
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return;
|
return;
|
}
|
}
|
|
|
void f_fnptr2 (int f, int (*fp)(int));
|
void f_fnptr2 (int f, int (*fp)(int));
|
void f_fnptr2 (f, fp)
|
void f_fnptr2 (f, fp)
|
int f;
|
int f;
|
int (*fp)(int);
|
int (*fp)(int);
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|
/* Test for main. */
|
/* Test for main. */
|
|
|
int
|
int
|
main (int argc, char **argv)
|
main (int argc, char **argv)
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
{ /* { dg-warning "traditional C rejects ISO C style" } */
|
return 0;
|
return 0;
|
}
|
}
|
|
|
# 182 "sys-header.h" 3
|
# 182 "sys-header.h" 3
|
/* We are in system headers now, no -Wtraditional warnings should issue. */
|
/* We are in system headers now, no -Wtraditional warnings should issue. */
|
|
|
void fsys1 (void)
|
void fsys1 (void)
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|
void fsys2 (int f)
|
void fsys2 (int f)
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|
void fsys3 (const char *f, ...)
|
void fsys3 (const char *f, ...)
|
{
|
{
|
return;
|
return;
|
}
|
}
|
|
|