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
2018-06-05 Richard Biener <rguenther@suse.de>
[official-gcc.git]
/
gcc
/
testsuite
/
gcc.dg
/
setjmp-3.c
blob
75222420811899db426145ff9650d275ba2367c8
1
/* { dg-do run } */
2
/* { dg-options "-O" } */
3
/* { dg-require-effective-target indirect_jumps } */
4
5
#include <setjmp.h>
6
7
extern
void
abort
(
void
);
8
9
jmp_buf
buf
;
10
11
void
raise0
(
void
)
12
{
13
__builtin_longjmp
(
buf
,
1
);
14
}
15
16
int
execute
(
int
cmd
)
17
{
18
int
last
=
0
;
19
20
if
(
__builtin_setjmp
(
buf
) ==
0
)
21
while
(
1
)
22
{
23
last
=
1
;
24
raise0
();
25
}
26
27
if
(
last
==
0
)
28
return
0
;
29
else
30
return
cmd
;
31
}
32
33
int
main
(
void
)
34
{
35
if
(
execute
(
1
) ==
0
)
36
abort
();
37
38
return
0
;
39
}