PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr64291-1.c
blob1d3a3809242832ddc21f9bdececa988ded5ccd5f
1 /* { dg-options "-O2" } */
2 /* { dg-additional-sources pr64291-2.c } */
3 /* { dg-do run { target lp64 } } */
4 void f(void*,...);
5 void g(void*,long,long);
6 int nnn=0;
7 long test=0;
9 typedef struct
11 int _mp_size;
12 unsigned long *_mp_d;
13 } __mpz_struct;
14 typedef __mpz_struct mpz_t[1];
15 void h(mpz_t);
17 int main ()
19 mpz_t n, d;
20 long nn, dn;
21 unsigned long *np, *dup, *dnp, *qp;
22 long alloc, itch;
24 f (n);
25 h (d);
26 qp = (unsigned long*)__builtin_alloca(4099*8) + 1;
27 dnp = (unsigned long*)__builtin_alloca (2049*8);
28 alloc = 1;
29 for (test = 0; test < 1; test++)
31 dn = d->_mp_size;
32 dup = d->_mp_d;
33 f (dnp, dup, dn);
34 dnp[dn - 1] |= 1UL<<63;
35 f (0);
36 nn = nnn;
37 np = n->_mp_d;
38 qp[-1] = -757136820;
39 qp[nn - dn + 1] = 14883681;
40 f (0);
41 if (dn >= 6)
42 f (0);
43 itch = nn + 1;
44 if (itch + 1> alloc)
46 g(0,alloc*8,(itch+1)*8);
47 alloc = itch + 1;
49 f (np, nn);
51 return 0;