gcc/gcc/testsuite/gcc.dg/Wreturn-type3.c

55 lines
811 B
C

/* Verify that attribute noreturn on global and local function declarations
is merged.
{ dg-do compile }
{ dg-options "-Wall" } */
int fnr_local_local (void)
{
__attribute__ ((noreturn)) void fnr1 (void);
fnr1 ();
// no return, no warning (good)
}
int gnr_local_local (void)
{
void fnr1 (void);
fnr1 ();
// no return, no warning (good)
}
int fnr_local_global (void)
{
__attribute__ ((noreturn)) void fnr2 (void);
fnr2 ();
// no return, no warning (good)
}
void fnr2 (void);
int gnr_local_global (void)
{
fnr2 ();
// no return, no warning (good)
}
__attribute__ ((noreturn)) void fnr3 (void);
int fnr_global_local (void)
{
fnr3 ();
// no return, no warning (good)
}
int gnr_global_local (void)
{
void fnr3 (void);
fnr3 ();
// no return, no warning (good)
}