summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/comp-return-1.c
blob: 82c398355d0f472e1c3262e8e4c5ec520c2dd45e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* 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" } */
}