repo.or.cz
/
official-gcc.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
x86: Tune Skylake, Cannonlake and Icelake as Haswell
[official-gcc.git]
/
gcc
/
testsuite
/
gcc.c-torture
/
execute
/
pr24716.c
blob
c2473f84c3155c581b86f0e21ab9f37873d8e96a
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