1 // PR target/70245
2 // { dg-do compile }
3 // { dg-options "" }
4
5 #include "pr70245.h"
6
7 D m;
8 A n, o;
9 int p, q;
10
11 int *
fn1(char * x,int * y)12 fn1 (char *x, int *y)
13 {
14 *y = 0;
15 return &p;
16 }
17
18 void
fn2()19 fn2 ()
20 {
21 __builtin_abort ();
22 }
23
24 void *
fn3(int * x)25 fn3 (int *x)
26 {
27 *x = 0;
28 return (void *) &m;
29 }
30
31 void *
fn4()32 fn4 ()
33 {
34 a = &o;
35 o.a1.d = 9;
36 m.d = sizeof (D);
37 __builtin_memcpy (o.a2.c, "abcdefghijklmnop", 16);
38 return (void *) &n;
39 }
40
41 void
fn5(A * x,B * y,unsigned char * z,int * w)42 fn5 (A *x, B *y, unsigned char *z, int *w)
43 {
44 if (x != &n || y != &k || z != (unsigned char *) (&m + 1))
45 __builtin_abort ();
46 q++;
47 }
48
49 int
main()50 main ()
51 {
52 d = fn5;
53 baz (0);
54 if (q != 1)
55 __builtin_abort ();
56 }
57