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
PR inline-asm/84742
[official-gcc.git]
/
gcc
/
testsuite
/
gcc.c-torture
/
execute
/
pr44575.c
blob
62a7d7800b0f85f2be8451116c5dda76286f16b9
1
/* PR target/44575 */
2
3
#include <stdarg.h>
4
5
int
fails
=
0
;
6
struct
S
{
float
a
[
3
]; };
7
struct
S a
[
5
];
8
9
void
10
check
(
int
z
, ...)
11
{
12
struct
S arg
, *
p
;
13
va_list
ap
;
14
int
j
=
0
,
k
=
0
;
15
int
i
;
16
va_start
(
ap
,
z
);
17
for
(
i
=
2
;
i
<
4
; ++
i
)
18
{
19
p
=
0
;
20
j
++;
21
k
+=
2
;
22
switch
((
z
<<
4
) |
i
)
23
{
24
case
0x12
:
25
case
0x13
:
26
p
= &
a
[
2
];
27
arg
=
va_arg
(
ap
,
struct
S
);
28
break
;
29
default
:
30
++
fails
;
31
break
;
32
}
33
if
(
p
&&
p
->
a
[
2
] !=
arg
.
a
[
2
])
34
++
fails
;
35
if
(
fails
)
36
break
;
37
}
38
va_end
(
ap
);
39
}
40
41
int
42
main
()
43
{
44
a
[
2
].
a
[
2
] = -
49026
;
45
check
(
1
,
a
[
2
],
a
[
2
]);
46
if
(
fails
)
47
abort
();
48
return
0
;
49
}