aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.misc-tests/gcov-31.c
blob: 5f060e980261ffe5b6dfe09992ab5a6ec2230954 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* { dg-options "--coverage -fpath-coverage" } */
/* { dg-do compile } */
/* { dg-require-effective-target sigsetjmp } */

/* A collection of odd crashes and regressions observed when building arbitrary
   programs.  */

#include <setjmp.h>

/* Based on bash-5.2/trap.c run_pending_traps.  This revealed a case where
   adding IOR failed because there was no to replace in the phi.  */
extern void jump_to_top_level (int) __attribute__((__noreturn__));
extern sigjmp_buf return_catch;
extern int running_trap;
void
run_pending_traps ()
{
  int sig;
  if (running_trap > 0)
    jump_to_top_level (2);

  for (sig = 1; sig < (64 + 1) ; sig++)
    sigsetjmp ((return_catch), 0);
}

/* Distilled from alsalib-1.2.11 pcm/pcm_route.c.  */
void
snd_pcm_route_convert1_many()
{
  void *top = &&fst;
  void *mid = &&snd;
  int sample = 0;
 fst:
 snd:
    goto *mid;
}