blob: 48f09da996f3b5d356e67c400d146cd5c4f395af [file] [log] [blame]
/* Verify that attribute nonnull on global and local function declarations
or those to pointers to functions is merged.
{ dg-do compile }
{ dg-options "-Wall" } */
void fnonnull_local_local (void)
{
extern __attribute__ ((nonnull)) void fnonnull1 (void*);
fnonnull1 (0); // { dg-warning "\\\[-Wnonnull" }
}
void gnonnull_local_local (void)
{
extern void fnonnull1 (void*);
fnonnull1 (0); // { dg-warning "\\\[-Wnonnull" }
}
void fnonnull_local_global (void)
{
extern __attribute__ ((nonnull)) void fnonnull2 (void*);
fnonnull2 (0); // { dg-warning "\\\[-Wnonnull" }
}
extern void fnonnull2 (void*);
void gnonnull_local_global (void)
{
fnonnull2 (0); // { dg-warning "\\\[-Wnonnull" }
}
extern __attribute__ ((nonnull)) void fnonnull3 (void*);
void fnonnull_global_local (void)
{
fnonnull3 (0); // { dg-warning "\\\[-Wnonnull" }
}
void gnonnull_global_local (void)
{
extern void fnonnull3 (void*);
fnonnull3 (0); // { dg-warning "\\\[-Wnonnull" }
}
void pfnonnull_local_local (void)
{
extern __attribute__ ((nonnull)) void (*pfnonnull1) (void*);
pfnonnull1 (0); // { dg-warning "\\\[-Wnonnull" }
}
void gpnonnull_local_local (void)
{
extern void (*pfnonnull1) (void*);
pfnonnull1 (0); // { dg-warning "\\\[-Wnonnull" "pr?????" { xfail *-*-* } }
}
void pfnonnull_local_global (void)
{
extern __attribute__ ((nonnull)) void (*pfnonnull2) (void*);
pfnonnull2 (0); // { dg-warning "\\\[-Wnonnull" }
}
extern void (*pfnonnull2) (void*);
void gpnonnull_local_global (void)
{
pfnonnull2 (0); // { dg-warning "\\\[-Wnonnull" "pr?????" { xfail *-*-* } }
}
extern __attribute__ ((nonnull)) void (*pfnonnull3) (void*);
void pfnonnull_global_local (void)
{
pfnonnull3 (0); // { dg-warning "\\\[-Wnonnull" }
}
void gpnonnull_global_local (void)
{
extern void (*pfnonnull3) (void*);
pfnonnull3 (0); // { dg-warning "\\\[-Wnonnull" }
}