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
libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git]
/
gcc
/
testsuite
/
gcc.dg
/
torture
/
pr57488.c
blob
7eda36476e7b538dafd5ec8e2f221c1c059d3801
1
/* { dg-do run } */
2
3
extern
void
abort
(
void
);
4
5
int
i
,
j
, *
pj
= &
j
, **
ppj
= &
pj
;
6
int
x
, *
px
= &
x
;
7
8
short
s
, *
ps
= &
s
,
k
;
9
10
unsigned short
u
, *
pu
= &
u
, **
ppu
= &
pu
;
11
12
char
c
, *
pc
= &
c
;
13
14
unsigned char
v
=
48
;
15
16
static int
17
bar
(
int
p
)
18
{
19
p
=
k
;
20
*
px
= **
ppu
=
i
;
21
*
ppj
= &
p
;
22
if
(**
ppj
)
23
*
pj
=
p
;
24
return
p
;
25
}
26
27
void
__attribute__
((
noinline
))
28
foo
()
29
{
30
for
(;
i
<=
3
;
i
++)
31
for
(;
j
;
j
--);
32
33
u
^=
bar
(*
pj
);
34
35
for
(
k
=
1
;
k
>=
0
;
k
--)
36
{
37
int
l
;
38
bar
(
0
);
39
for
(
l
=
1
;
l
<
5
;
l
++)
40
{
41
int
m
;
42
for
(
m
=
6
;
m
;
m
--)
43
{
44
v
--;
45
*
ps
= *
pc
;
46
}
47
}
48
}
49
}
50
51
int
52
main
()
53
{
54
foo
();
55
if
(
v
!=
0
)
56
abort
();
57
return
0
;
58
}