32 lines
725 B
C
32 lines
725 B
C
/* When merging a nonprototype definition of a function with a prior
|
|
prototype declaration, the composite type of the return types must
|
|
be formed rather than just copying the function type. */
|
|
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
|
|
/* { dg-do compile } */
|
|
|
|
typedef int a[];
|
|
typedef int a5[5];
|
|
typedef int a10[10];
|
|
|
|
a *f1 ();
|
|
a5 *f1 () { return 0; }
|
|
|
|
a *f2 (void);
|
|
a5 *f2 () { return 0; }
|
|
|
|
a *f3 ();
|
|
a5 *f3 (void) { return 0; }
|
|
|
|
a *f4 (void);
|
|
a5 *f4 (void) { return 0; }
|
|
|
|
void
|
|
g (void)
|
|
{
|
|
a10 *x;
|
|
x = f1 (); /* { dg-error "incompatible" "f1" } */
|
|
x = f2 (); /* { dg-error "incompatible" "f2" } */
|
|
x = f3 (); /* { dg-error "incompatible" "f3" } */
|
|
x = f4 (); /* { dg-error "incompatible" "f4" } */
|
|
}
|