blob: f92de7c1f2e2465d238d75e5d74f059b9a0b1ecc (
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
32
33
|
/* { dg-do run } */
#include <stdlib.h>
struct P {
long v;
struct P *n;
};
struct F {
long x;
struct P fam[];
};
int __attribute__((noipa))
f(struct F *f, int i)
{
struct P *p = f->fam;
asm("" : "+r"(f): "r"(p));
p->v = 0;
p->n = 0;
return f->fam->n != 0;
}
int
main()
{
struct F *m = malloc (sizeof (long) + 2 * sizeof (struct P));
m->fam[0].n = &m->fam[1];
if (f (m, 0))
abort ();
return 0;
}
|