OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
testsuite/
[pf3gnuchains/gcc-fork.git]
/
gcc
/
testsuite
/
gcc.c-torture
/
execute
/
pr24716.c
1
/* PR24716, scalar evolution returning the wrong result
2
for pdest. */
3
4
int Link[] = { -1 };
5
int W[] = { 2 };
6
7
extern void abort (void);
8
9
int f (int k, int p)
10
{
11
int pdest, j, D1361;
12
j = 0;
13
pdest = 0;
14
for (;;) {
15
if (pdest > 2)
16
do
17
j--, pdest++;
18
while (j > 2);
19
20
if (j == 1)
21
break;
22
23
while (pdest > p)
24
if (j == p)
25
pdest++;
26
27
do
28
{
29
D1361 = W[k];
30
do
31
if (D1361 != 0)
32
pdest = 1, W[k] = D1361 = 0;
33
while (p < 1);
34
} while (k > 0);
35
36
do
37
{
38
p = 0;
39
k = Link[k];
40
while (p < j)
41
if (k != -1)
42
pdest++, p++;
43
}
44
while (k != -1);
45
j = 1;
46
}
47
48
/* The correct return value should be pdest (1 in the call from main).
49
DOM3 is mistaken and propagates a 0 here. */
50
return pdest;
51
}
52
53
int main ()
54
{
55
if (!f (0, 2))
56
abort ();
57
return 0;
58
}
59