OSDN Git Service

PR c/20740
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / 20020206-1.c
1 /* This code is from the beginning of combine_reloads in reload.c in
2    GCC 3.1-20020117, with simplifications.  It compiled incorrectly
3    for -O2 -fprefetch-loop-arrays for ix86 targets.  */
4
5 /* { dg-do run } */
6 /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
7 /* { dg-options "-O2 -fprefetch-loop-arrays -mtune=pentium3 -w" { target i?86-*-* } } */
8 /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
9
10 struct reload
11 {
12   int first_member;
13   int out;
14   int final_member;
15 };
16
17 int n_reloads;
18 struct reload rld[10];
19
20 static int
21 combine_reloads ()
22 {
23   int i;
24   int output_reload = -1;
25   int secondary_out = -1;
26
27   for (i = 0; i < n_reloads; i++)
28     if (rld[i].out != 0)
29       {
30         if (output_reload >= 0)
31           return output_reload;
32         output_reload = i;
33       }
34   return output_reload;
35 }
36
37 int
38 main ()
39 {
40   n_reloads = 4;
41   rld[2].out = 2;
42   if (combine_reloads () != 2)
43     abort ();
44   exit (0);
45 }