OSDN Git Service

PR target/43603
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / opt / pr46640.C
1 // { dg-do compile { target x86_64-*-* } }
2 // { dg-options "-fschedule-insns2 -fsel-sched-pipelining -fselective-scheduling2 -fno-exceptions -O" }
3
4 struct QBasicAtomicInt
5 {
6   int i, j;
7   bool deref ()
8   {
9     asm volatile ("":"=m" (i), "=qm" (j));
10   }
11 };
12
13 struct Data
14 {
15   QBasicAtomicInt ref;
16   void *data;
17 };
18
19 struct QByteArray
20 {
21   Data * d;
22   ~QByteArray ()
23   {
24     d->ref.deref ();
25   }
26 };
27
28 int indexOf (unsigned);
29 int stat (void *, int *);
30 QByteArray encodeName ();
31
32 bool makeDir (unsigned len)
33 {
34   unsigned i = 0;
35   while (len)
36     {
37       int st;
38       int pos = indexOf (i);
39       QByteArray baseEncoded = encodeName ();
40       if (stat (baseEncoded.d->data, &st) && stat (baseEncoded.d, &st))
41         return false;
42       i = pos;
43     }
44 }