#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ sigs;

/* Variables and functions */
int /*<<< orphan*/ SIGABRT;
int /*<<< orphan*/ SIGALRM;
int /*<<< orphan*/ SIGBUS;
int /*<<< orphan*/ SIGCHLD;
int /*<<< orphan*/ SIGCONT;
int /*<<< orphan*/ SIGFPE;
int /*<<< orphan*/ SIGHUP;
int /*<<< orphan*/ SIGILL;
int /*<<< orphan*/ SIGINT;
int /*<<< orphan*/ SIGKILL;
int /*<<< orphan*/ SIGPIPE;
int /*<<< orphan*/ SIGPOLL;
int /*<<< orphan*/ SIGPROF;
int /*<<< orphan*/ SIGPWR;
int /*<<< orphan*/ SIGQUIT;
int /*<<< orphan*/ SIGSEGV;
int /*<<< orphan*/ SIGSTKFLT;
int /*<<< orphan*/ SIGSTOP;
int /*<<< orphan*/ SIGSYS;
int /*<<< orphan*/ SIGTERM;
int /*<<< orphan*/ SIGTRAP;
int /*<<< orphan*/ SIGTSTP;
int /*<<< orphan*/ SIGTTIN;
int /*<<< orphan*/ SIGTTOU;
int /*<<< orphan*/ SIGURG;
int /*<<< orphan*/ SIGUSR1;
int /*<<< orphan*/ SIGUSR2;
int /*<<< orphan*/ SIGVTALRM;
int /*<<< orphan*/ SIGWINCH;
int /*<<< orphan*/ SIGXCPU;
int /*<<< orphan*/ SIGXFSZ;
int /*<<< orphan*/ strcmp(char const *, char const *);
int str_to_sig(const char *s) {
  struct {
    const char *nam;
    int sig;
  } sigs[] = {
      {"HUP", SIGHUP},       {"INT", SIGINT},     {"QUIT", SIGQUIT},
      {"ILL", SIGILL},       {"ABRT", SIGABRT},   {"FPE", SIGFPE},
      {"KILL", SIGKILL},     {"USR1", SIGUSR1},   {"SEGV", SIGSEGV},
      {"USR2", SIGUSR2},     {"PIPE", SIGPIPE},   {"ALRM", SIGALRM},
      {"TERM", SIGTERM},     {"CHLD", SIGCHLD},   {"CONT", SIGCONT},
      {"STOP", SIGSTOP},     {"TSTP", SIGTSTP},   {"TTIN", SIGTTIN},
      {"TTOU", SIGTTOU},     {"PWR", SIGPWR},     {"SYS", SIGSYS},
      {"POLL", SIGPOLL},     {"WINCH", SIGWINCH}, {"PROF", SIGPROF},
      {"TRAP", SIGTRAP},     {"BUS", SIGBUS},     {"STKFLT", SIGSTKFLT},
      {"URG", SIGURG},       {"XCPU", SIGXCPU},   {"XFSZ", SIGXFSZ},
      {"VTALRM", SIGVTALRM},
  };
  unsigned int i;
  for (i = 0; i < sizeof(sigs) / sizeof(sigs[0]); i++)
    if (!strcmp(sigs[i].nam, s))
      return sigs[i].sig;
  return -1;
}


x86 assembly (clang, -O0):
<str_to_sig>:
push   %rbp
mov    %rsp,%rbp
sub    $0x210,%rsp
mov    %rdi,-0x10(%rbp)
lea    0xeda(%rip),%rax
mov    %rax,-0x200(%rbp)
mov    0x2ebc(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x1f8(%rbp)
lea    0xec1(%rip),%rax
mov    %rax,-0x1f0(%rbp)
mov    0x2e5f(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x1e8(%rbp)
lea    0xea8(%rip),%rax
mov    %rax,-0x1e0(%rbp)
mov    0x2e32(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x1d8(%rbp)
lea    0xe9a(%rip),%rax
mov    %rax,-0x1d0(%rbp)
mov    0x2dcd(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x1c8(%rbp)
lea    0xe73(%rip),%rax
mov    %rax,-0x1c0(%rbp)
mov    0x2d60(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x1b8(%rbp)
lea    0xe5b(%rip),%rax
mov    %rax,-0x1b0(%rbp)
mov    0x2dc3(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x1a8(%rbp)
lea    0xe42(%rip),%rax
mov    %rax,-0x1a0(%rbp)
mov    0x2d2e(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x198(%rbp)
lea    0xe2a(%rip),%rax
mov    %rax,-0x190(%rbp)
mov    0x2dd1(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x188(%rbp)
lea    0xe12(%rip),%rax
mov    %rax,-0x180(%rbp)
mov    0x2da4(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x178(%rbp)
lea    0xdfa(%rip),%rax
mov    %rax,-0x170(%rbp)
mov    0x2cff(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x168(%rbp)
lea    0xde2(%rip),%rax
mov    %rax,-0x160(%rbp)
mov    0x2cda(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x158(%rbp)
lea    0xe25(%rip),%rax
mov    %rax,-0x150(%rbp)
mov    0x2d45(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x148(%rbp)
lea    0xdad(%rip),%rax
mov    %rax,-0x140(%rbp)
mov    0x2d18(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x138(%rbp)
lea    0xd95(%rip),%rax
mov    %rax,-0x130(%rbp)
mov    0x2ccb(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x128(%rbp)
lea    0xd7d(%rip),%rax
mov    %rax,-0x120(%rbp)
mov    0x2cfe(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x118(%rbp)
lea    0xd65(%rip),%rax
mov    %rax,-0x110(%rbp)
mov    0x2c09(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x108(%rbp)
lea    0xd4d(%rip),%rax
mov    %rax,-0x100(%rbp)
mov    0x2c6c(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0xf8(%rbp)
lea    0xd35(%rip),%rax
mov    %rax,-0xf0(%rbp)
mov    0x2c3f(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0xe8(%rbp)
lea    0xd1d(%rip),%rax
mov    %rax,-0xe0(%rbp)
mov    0x2c9a(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0xd8(%rbp)
lea    0xd05(%rip),%rax
mov    %rax,-0xd0(%rbp)
mov    0x2bed(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0xc8(%rbp)
lea    0xcec(%rip),%rax
mov    %rax,-0xc0(%rbp)
mov    0x2bb0(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0xb8(%rbp)
lea    0xcd3(%rip),%rax
mov    %rax,-0xb0(%rbp)
mov    0x2b6b(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0xa8(%rbp)
lea    0xcbb(%rip),%rax
mov    %rax,-0xa0(%rbp)
mov    0x2bb6(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x98(%rbp)
lea    0xca4(%rip),%rax
mov    %rax,-0x90(%rbp)
mov    0x2bc1(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x88(%rbp)
lea    0xc8c(%rip),%rax
mov    %rax,-0x80(%rbp)
mov    0x2b0f(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x78(%rbp)
lea    0xc7a(%rip),%rax
mov    %rax,-0x70(%rbp)
mov    0x2be8(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x68(%rbp)
lea    0xc67(%rip),%rax
mov    %rax,-0x60(%rbp)
mov    0x2b81(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x58(%rbp)
lea    0xc57(%rip),%rax
mov    %rax,-0x50(%rbp)
mov    0x2af2(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x48(%rbp)
lea    0xc44(%rip),%rax
mov    %rax,-0x40(%rbp)
mov    0x2ad3(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x38(%rbp)
lea    0xc32(%rip),%rax
mov    %rax,-0x30(%rbp)
mov    0x2b24(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x28(%rbp)
lea    0xc20(%rip),%rax
mov    %rax,-0x20(%rbp)
mov    0x2acd(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x18(%rbp)
movl   $0x0,-0x204(%rbp)
mov    -0x204(%rbp),%eax
cmp    $0x1f,%rax
jae    14f7 <str_to_sig+0x3e7>
mov    -0x204(%rbp),%eax
mov    %eax,%ecx
lea    -0x200(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
mov    (%rax),%rdi
mov    -0x10(%rbp),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    14de <str_to_sig+0x3ce>
mov    -0x204(%rbp),%eax
mov    %eax,%ecx
lea    -0x200(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
mov    0x8(%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    14fe <str_to_sig+0x3ee>
jmp    14e3 <str_to_sig+0x3d3>
mov    -0x204(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x204(%rbp)
jmp    1482 <str_to_sig+0x372>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x210,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<str_to_sig>:
push   %r14
push   %rbx
sub    $0x1f8,%rsp
mov    %rdi,%r14
lea    0xedc(%rip),%rax
mov    %rax,(%rsp)
mov    0x2ec1(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x8(%rsp)
lea    0xec8(%rip),%rax
mov    %rax,0x10(%rsp)
mov    0x2e68(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x18(%rsp)
lea    0xeb3(%rip),%rax
mov    %rax,0x20(%rsp)
mov    0x2e3f(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x28(%rsp)
lea    0xea9(%rip),%rax
mov    %rax,0x30(%rsp)
mov    0x2dde(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x38(%rsp)
lea    0xe86(%rip),%rax
mov    %rax,0x40(%rsp)
mov    0x2d75(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x48(%rsp)
lea    0xe72(%rip),%rax
mov    %rax,0x50(%rsp)
mov    0x2ddc(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x58(%rsp)
lea    0xe5d(%rip),%rax
mov    %rax,0x60(%rsp)
mov    0x2d4b(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x68(%rsp)
lea    0xe49(%rip),%rax
mov    %rax,0x70(%rsp)
mov    0x2df2(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x78(%rsp)
lea    0xe35(%rip),%rax
mov    %rax,0x80(%rsp)
mov    0x2dc6(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x88(%rsp)
lea    0xe1b(%rip),%rax
mov    %rax,0x90(%rsp)
mov    0x2d1f(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x98(%rsp)
lea    0xe01(%rip),%rax
mov    %rax,0xa0(%rsp)
mov    0x2cf8(%rip),%rax
mov    (%rax),%eax
mov    %eax,0xa8(%rsp)
lea    0xe42(%rip),%rax
mov    %rax,0xb0(%rsp)
mov    0x2d61(%rip),%rax
mov    (%rax),%eax
mov    %eax,0xb8(%rsp)
lea    0xdc8(%rip),%rax
mov    %rax,0xc0(%rsp)
mov    0x2d32(%rip),%rax
mov    (%rax),%eax
mov    %eax,0xc8(%rsp)
lea    0xdae(%rip),%rax
mov    %rax,0xd0(%rsp)
mov    0x2ce3(%rip),%rax
mov    (%rax),%eax
mov    %eax,0xd8(%rsp)
lea    0xd94(%rip),%rax
mov    %rax,0xe0(%rsp)
mov    0x2d14(%rip),%rax
mov    (%rax),%eax
mov    %eax,0xe8(%rsp)
lea    0xd7a(%rip),%rax
mov    %rax,0xf0(%rsp)
mov    0x2c1d(%rip),%rax
mov    (%rax),%eax
mov    %eax,0xf8(%rsp)
lea    0xd60(%rip),%rax
mov    %rax,0x100(%rsp)
mov    0x2c7e(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x108(%rsp)
lea    0xd46(%rip),%rax
mov    %rax,0x110(%rsp)
mov    0x2c4f(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x118(%rsp)
lea    0xd2c(%rip),%rax
mov    %rax,0x120(%rsp)
mov    0x2ca8(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x128(%rsp)
lea    0xd12(%rip),%rax
mov    %rax,0x130(%rsp)
mov    0x2bf9(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x138(%rsp)
lea    0xcf7(%rip),%rax
mov    %rax,0x140(%rsp)
mov    0x2bba(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x148(%rsp)
lea    0xcdc(%rip),%rax
mov    %rax,0x150(%rsp)
mov    0x2b73(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x158(%rsp)
lea    0xcc2(%rip),%rax
mov    %rax,0x160(%rsp)
mov    0x2bbc(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x168(%rsp)
lea    0xca9(%rip),%rax
mov    %rax,0x170(%rsp)
mov    0x2bc5(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x178(%rsp)
lea    0xc8f(%rip),%rax
mov    %rax,0x180(%rsp)
mov    0x2b0e(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x188(%rsp)
lea    0xc75(%rip),%rax
mov    %rax,0x190(%rsp)
mov    0x2bdf(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x198(%rsp)
lea    0xc5a(%rip),%rax
mov    %rax,0x1a0(%rsp)
mov    0x2b70(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x1a8(%rsp)
lea    0xc42(%rip),%rax
mov    %rax,0x1b0(%rsp)
mov    0x2ad9(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x1b8(%rsp)
lea    0xc27(%rip),%rax
mov    %rax,0x1c0(%rsp)
mov    0x2ab2(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x1c8(%rsp)
lea    0xc0d(%rip),%rax
mov    %rax,0x1d0(%rsp)
mov    0x2afb(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x1d8(%rsp)
lea    0xbf3(%rip),%rax
mov    %rax,0x1e0(%rsp)
mov    0x2a9c(%rip),%rax
mov    (%rax),%eax
mov    %eax,0x1e8(%rsp)
mov    $0x8,%ebx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    -0x8(%rsp,%rbx,1),%rdi
mov    %r14,%rsi
call   1030 <strcmp@plt>
test   %eax,%eax
je     14e5 <str_to_sig+0x3d5>
add    $0x10,%rbx
cmp    $0x1f8,%rbx
jne    14c0 <str_to_sig+0x3b0>
mov    $0xffffffff,%eax
jmp    14e8 <str_to_sig+0x3d8>
mov    (%rsp,%rbx,1),%eax
add    $0x1f8,%rsp
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
%struct.anon = type { i8*, i32 }
@.str = [4 x i8] c"HUP\00"
@SIGHUP = global i32 0
@.str.1 = [4 x i8] c"INT\00"
@SIGINT = global i32 0
@.str.2 = [5 x i8] c"QUIT\00"
@SIGQUIT = global i32 0
@.str.3 = [4 x i8] c"ILL\00"
@SIGILL = global i32 0
@.str.4 = [5 x i8] c"ABRT\00"
@SIGABRT = global i32 0
@.str.5 = [4 x i8] c"FPE\00"
@SIGFPE = global i32 0
@.str.6 = [5 x i8] c"KILL\00"
@SIGKILL = global i32 0
@.str.7 = [5 x i8] c"USR1\00"
@SIGUSR1 = global i32 0
@.str.8 = [5 x i8] c"SEGV\00"
@SIGSEGV = global i32 0
@.str.9 = [5 x i8] c"USR2\00"
@SIGUSR2 = global i32 0
@.str.10 = [5 x i8] c"PIPE\00"
@SIGPIPE = global i32 0
@.str.11 = [5 x i8] c"ALRM\00"
@SIGALRM = global i32 0
@.str.12 = [5 x i8] c"TERM\00"
@SIGTERM = global i32 0
@.str.13 = [5 x i8] c"CHLD\00"
@SIGCHLD = global i32 0
@.str.14 = [5 x i8] c"CONT\00"
@SIGCONT = global i32 0
@.str.15 = [5 x i8] c"STOP\00"
@SIGSTOP = global i32 0
@.str.16 = [5 x i8] c"TSTP\00"
@SIGTSTP = global i32 0
@.str.17 = [5 x i8] c"TTIN\00"
@SIGTTIN = global i32 0
@.str.18 = [5 x i8] c"TTOU\00"
@SIGTTOU = global i32 0
@.str.19 = [4 x i8] c"PWR\00"
@SIGPWR = global i32 0
@.str.20 = [4 x i8] c"SYS\00"
@SIGSYS = global i32 0
@.str.21 = [5 x i8] c"POLL\00"
@SIGPOLL = global i32 0
@.str.22 = [6 x i8] c"WINCH\00"
@SIGWINCH = global i32 0
@.str.23 = [5 x i8] c"PROF\00"
@SIGPROF = global i32 0
@.str.24 = [5 x i8] c"TRAP\00"
@SIGTRAP = global i32 0
@.str.25 = [4 x i8] c"BUS\00"
@SIGBUS = global i32 0
@.str.26 = [7 x i8] c"STKFLT\00"
@SIGSTKFLT = global i32 0
@.str.27 = [4 x i8] c"URG\00"
@SIGURG = global i32 0
@.str.28 = [5 x i8] c"XCPU\00"
@SIGXCPU = global i32 0
@.str.29 = [5 x i8] c"XFSZ\00"
@SIGXFSZ = global i32 0
@.str.30 = [7 x i8] c"VTALRM\00"
@SIGVTALRM = global i32 0
define i32 @str_to_sig(i8* %0) {
%2 = alloca i32
%3 = alloca i8*
%4 = alloca [31 x %struct.anon]
%5 = alloca i32
store i8* %0, i8** %3
%6 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %4, i64 0, i64 0
%7 = getelementptr inbounds %struct.anon, %struct.anon* %6, i32 0, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8** %7
%8 = getelementptr inbounds %struct.anon, %struct.anon* %6, i32 0, i32 1
%9 = load i32, i32* @SIGHUP
store i32 %9, i32* %8
%10 = getelementptr inbounds %struct.anon, %struct.anon* %6, i64 1
%11 = getelementptr inbounds %struct.anon, %struct.anon* %10, i32 0, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i8** %11
%12 = getelementptr inbounds %struct.anon, %struct.anon* %10, i32 0, i32 1
%13 = load i32, i32* @SIGINT
store i32 %13, i32* %12
%14 = getelementptr inbounds %struct.anon, %struct.anon* %10, i64 1
%15 = getelementptr inbounds %struct.anon, %struct.anon* %14, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i8** %15
%16 = getelementptr inbounds %struct.anon, %struct.anon* %14, i32 0, i32 1
%17 = load i32, i32* @SIGQUIT
store i32 %17, i32* %16
%18 = getelementptr inbounds %struct.anon, %struct.anon* %14, i64 1
%19 = getelementptr inbounds %struct.anon, %struct.anon* %18, i32 0, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), i8** %19
%20 = getelementptr inbounds %struct.anon, %struct.anon* %18, i32 0, i32 1
%21 = load i32, i32* @SIGILL
store i32 %21, i32* %20
%22 = getelementptr inbounds %struct.anon, %struct.anon* %18, i64 1
%23 = getelementptr inbounds %struct.anon, %struct.anon* %22, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i8** %23
%24 = getelementptr inbounds %struct.anon, %struct.anon* %22, i32 0, i32 1
%25 = load i32, i32* @SIGABRT
store i32 %25, i32* %24
%26 = getelementptr inbounds %struct.anon, %struct.anon* %22, i64 1
%27 = getelementptr inbounds %struct.anon, %struct.anon* %26, i32 0, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0), i8** %27
%28 = getelementptr inbounds %struct.anon, %struct.anon* %26, i32 0, i32 1
%29 = load i32, i32* @SIGFPE
store i32 %29, i32* %28
%30 = getelementptr inbounds %struct.anon, %struct.anon* %26, i64 1
%31 = getelementptr inbounds %struct.anon, %struct.anon* %30, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8** %31
%32 = getelementptr inbounds %struct.anon, %struct.anon* %30, i32 0, i32 1
%33 = load i32, i32* @SIGKILL
store i32 %33, i32* %32
%34 = getelementptr inbounds %struct.anon, %struct.anon* %30, i64 1
%35 = getelementptr inbounds %struct.anon, %struct.anon* %34, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0), i8** %35
%36 = getelementptr inbounds %struct.anon, %struct.anon* %34, i32 0, i32 1
%37 = load i32, i32* @SIGUSR1
store i32 %37, i32* %36
%38 = getelementptr inbounds %struct.anon, %struct.anon* %34, i64 1
%39 = getelementptr inbounds %struct.anon, %struct.anon* %38, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0), i8** %39
%40 = getelementptr inbounds %struct.anon, %struct.anon* %38, i32 0, i32 1
%41 = load i32, i32* @SIGSEGV
store i32 %41, i32* %40
%42 = getelementptr inbounds %struct.anon, %struct.anon* %38, i64 1
%43 = getelementptr inbounds %struct.anon, %struct.anon* %42, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8** %43
%44 = getelementptr inbounds %struct.anon, %struct.anon* %42, i32 0, i32 1
%45 = load i32, i32* @SIGUSR2
store i32 %45, i32* %44
%46 = getelementptr inbounds %struct.anon, %struct.anon* %42, i64 1
%47 = getelementptr inbounds %struct.anon, %struct.anon* %46, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8** %47
%48 = getelementptr inbounds %struct.anon, %struct.anon* %46, i32 0, i32 1
%49 = load i32, i32* @SIGPIPE
store i32 %49, i32* %48
%50 = getelementptr inbounds %struct.anon, %struct.anon* %46, i64 1
%51 = getelementptr inbounds %struct.anon, %struct.anon* %50, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0), i8** %51
%52 = getelementptr inbounds %struct.anon, %struct.anon* %50, i32 0, i32 1
%53 = load i32, i32* @SIGALRM
store i32 %53, i32* %52
%54 = getelementptr inbounds %struct.anon, %struct.anon* %50, i64 1
%55 = getelementptr inbounds %struct.anon, %struct.anon* %54, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0), i8** %55
%56 = getelementptr inbounds %struct.anon, %struct.anon* %54, i32 0, i32 1
%57 = load i32, i32* @SIGTERM
store i32 %57, i32* %56
%58 = getelementptr inbounds %struct.anon, %struct.anon* %54, i64 1
%59 = getelementptr inbounds %struct.anon, %struct.anon* %58, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i8** %59
%60 = getelementptr inbounds %struct.anon, %struct.anon* %58, i32 0, i32 1
%61 = load i32, i32* @SIGCHLD
store i32 %61, i32* %60
%62 = getelementptr inbounds %struct.anon, %struct.anon* %58, i64 1
%63 = getelementptr inbounds %struct.anon, %struct.anon* %62, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0), i8** %63
%64 = getelementptr inbounds %struct.anon, %struct.anon* %62, i32 0, i32 1
%65 = load i32, i32* @SIGCONT
store i32 %65, i32* %64
%66 = getelementptr inbounds %struct.anon, %struct.anon* %62, i64 1
%67 = getelementptr inbounds %struct.anon, %struct.anon* %66, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i8** %67
%68 = getelementptr inbounds %struct.anon, %struct.anon* %66, i32 0, i32 1
%69 = load i32, i32* @SIGSTOP
store i32 %69, i32* %68
%70 = getelementptr inbounds %struct.anon, %struct.anon* %66, i64 1
%71 = getelementptr inbounds %struct.anon, %struct.anon* %70, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0), i8** %71
%72 = getelementptr inbounds %struct.anon, %struct.anon* %70, i32 0, i32 1
%73 = load i32, i32* @SIGTSTP
store i32 %73, i32* %72
%74 = getelementptr inbounds %struct.anon, %struct.anon* %70, i64 1
%75 = getelementptr inbounds %struct.anon, %struct.anon* %74, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0), i8** %75
%76 = getelementptr inbounds %struct.anon, %struct.anon* %74, i32 0, i32 1
%77 = load i32, i32* @SIGTTIN
store i32 %77, i32* %76
%78 = getelementptr inbounds %struct.anon, %struct.anon* %74, i64 1
%79 = getelementptr inbounds %struct.anon, %struct.anon* %78, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0), i8** %79
%80 = getelementptr inbounds %struct.anon, %struct.anon* %78, i32 0, i32 1
%81 = load i32, i32* @SIGTTOU
store i32 %81, i32* %80
%82 = getelementptr inbounds %struct.anon, %struct.anon* %78, i64 1
%83 = getelementptr inbounds %struct.anon, %struct.anon* %82, i32 0, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0), i8** %83
%84 = getelementptr inbounds %struct.anon, %struct.anon* %82, i32 0, i32 1
%85 = load i32, i32* @SIGPWR
store i32 %85, i32* %84
%86 = getelementptr inbounds %struct.anon, %struct.anon* %82, i64 1
%87 = getelementptr inbounds %struct.anon, %struct.anon* %86, i32 0, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i8** %87
%88 = getelementptr inbounds %struct.anon, %struct.anon* %86, i32 0, i32 1
%89 = load i32, i32* @SIGSYS
store i32 %89, i32* %88
%90 = getelementptr inbounds %struct.anon, %struct.anon* %86, i64 1
%91 = getelementptr inbounds %struct.anon, %struct.anon* %90, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.21, i64 0, i64 0), i8** %91
%92 = getelementptr inbounds %struct.anon, %struct.anon* %90, i32 0, i32 1
%93 = load i32, i32* @SIGPOLL
store i32 %93, i32* %92
%94 = getelementptr inbounds %struct.anon, %struct.anon* %90, i64 1
%95 = getelementptr inbounds %struct.anon, %struct.anon* %94, i32 0, i32 0
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i64 0, i64 0), i8** %95
%96 = getelementptr inbounds %struct.anon, %struct.anon* %94, i32 0, i32 1
%97 = load i32, i32* @SIGWINCH
store i32 %97, i32* %96
%98 = getelementptr inbounds %struct.anon, %struct.anon* %94, i64 1
%99 = getelementptr inbounds %struct.anon, %struct.anon* %98, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0), i8** %99
%100 = getelementptr inbounds %struct.anon, %struct.anon* %98, i32 0, i32 1
%101 = load i32, i32* @SIGPROF
store i32 %101, i32* %100
%102 = getelementptr inbounds %struct.anon, %struct.anon* %98, i64 1
%103 = getelementptr inbounds %struct.anon, %struct.anon* %102, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i64 0, i64 0), i8** %103
%104 = getelementptr inbounds %struct.anon, %struct.anon* %102, i32 0, i32 1
%105 = load i32, i32* @SIGTRAP
store i32 %105, i32* %104
%106 = getelementptr inbounds %struct.anon, %struct.anon* %102, i64 1
%107 = getelementptr inbounds %struct.anon, %struct.anon* %106, i32 0, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0), i8** %107
%108 = getelementptr inbounds %struct.anon, %struct.anon* %106, i32 0, i32 1
%109 = load i32, i32* @SIGBUS
store i32 %109, i32* %108
%110 = getelementptr inbounds %struct.anon, %struct.anon* %106, i64 1
%111 = getelementptr inbounds %struct.anon, %struct.anon* %110, i32 0, i32 0
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.26, i64 0, i64 0), i8** %111
%112 = getelementptr inbounds %struct.anon, %struct.anon* %110, i32 0, i32 1
%113 = load i32, i32* @SIGSTKFLT
store i32 %113, i32* %112
%114 = getelementptr inbounds %struct.anon, %struct.anon* %110, i64 1
%115 = getelementptr inbounds %struct.anon, %struct.anon* %114, i32 0, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0), i8** %115
%116 = getelementptr inbounds %struct.anon, %struct.anon* %114, i32 0, i32 1
%117 = load i32, i32* @SIGURG
store i32 %117, i32* %116
%118 = getelementptr inbounds %struct.anon, %struct.anon* %114, i64 1
%119 = getelementptr inbounds %struct.anon, %struct.anon* %118, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0), i8** %119
%120 = getelementptr inbounds %struct.anon, %struct.anon* %118, i32 0, i32 1
%121 = load i32, i32* @SIGXCPU
store i32 %121, i32* %120
%122 = getelementptr inbounds %struct.anon, %struct.anon* %118, i64 1
%123 = getelementptr inbounds %struct.anon, %struct.anon* %122, i32 0, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.29, i64 0, i64 0), i8** %123
%124 = getelementptr inbounds %struct.anon, %struct.anon* %122, i32 0, i32 1
%125 = load i32, i32* @SIGXFSZ
store i32 %125, i32* %124
%126 = getelementptr inbounds %struct.anon, %struct.anon* %122, i64 1
%127 = getelementptr inbounds %struct.anon, %struct.anon* %126, i32 0, i32 0
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0), i8** %127
%128 = getelementptr inbounds %struct.anon, %struct.anon* %126, i32 0, i32 1
%129 = load i32, i32* @SIGVTALRM
store i32 %129, i32* %128
store i32 0, i32* %5
br label %130
130: ; preds = %150, %1
%131 = load i32, i32* %5
%132 = zext i32 %131 to i64
%133 = icmp ult i64 %132, 31
br i1 %133, label %134, label %153
134: ; preds = %130
%135 = load i32, i32* %5
%136 = zext i32 %135 to i64
%137 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %4, i64 0, i64 %136
%138 = getelementptr inbounds %struct.anon, %struct.anon* %137, i32 0, i32 0
%139 = load i8*, i8** %138
%140 = load i8*, i8** %3
%141 = call i32 @strcmp(i8* %139, i8* %140)
%142 = icmp ne i32 %141, 0
br i1 %142, label %149, label %143
143: ; preds = %134
%144 = load i32, i32* %5
%145 = zext i32 %144 to i64
%146 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %4, i64 0, i64 %145
%147 = getelementptr inbounds %struct.anon, %struct.anon* %146, i32 0, i32 1
%148 = load i32, i32* %147
store i32 %148, i32* %2
br label %154
149: ; preds = %134
br label %150
150: ; preds = %149
%151 = load i32, i32* %5
%152 = add i32 %151, 1
store i32 %152, i32* %5
br label %130
153: ; preds = %130
store i32 -1, i32* %2
br label %154
154: ; preds = %153, %143
%155 = load i32, i32* %2
ret i32 %155
}

LLVM IR (-O2):
%struct.anon = type { i8*, i32 }
@.str = [4 x i8] c"HUP\00"
@SIGHUP = global i32 0
@.str.1 = [4 x i8] c"INT\00"
@SIGINT = global i32 0
@.str.2 = [5 x i8] c"QUIT\00"
@SIGQUIT = global i32 0
@.str.3 = [4 x i8] c"ILL\00"
@SIGILL = global i32 0
@.str.4 = [5 x i8] c"ABRT\00"
@SIGABRT = global i32 0
@.str.5 = [4 x i8] c"FPE\00"
@SIGFPE = global i32 0
@.str.6 = [5 x i8] c"KILL\00"
@SIGKILL = global i32 0
@.str.7 = [5 x i8] c"USR1\00"
@SIGUSR1 = global i32 0
@.str.8 = [5 x i8] c"SEGV\00"
@SIGSEGV = global i32 0
@.str.9 = [5 x i8] c"USR2\00"
@SIGUSR2 = global i32 0
@.str.10 = [5 x i8] c"PIPE\00"
@SIGPIPE = global i32 0
@.str.11 = [5 x i8] c"ALRM\00"
@SIGALRM = global i32 0
@.str.12 = [5 x i8] c"TERM\00"
@SIGTERM = global i32 0
@.str.13 = [5 x i8] c"CHLD\00"
@SIGCHLD = global i32 0
@.str.14 = [5 x i8] c"CONT\00"
@SIGCONT = global i32 0
@.str.15 = [5 x i8] c"STOP\00"
@SIGSTOP = global i32 0
@.str.16 = [5 x i8] c"TSTP\00"
@SIGTSTP = global i32 0
@.str.17 = [5 x i8] c"TTIN\00"
@SIGTTIN = global i32 0
@.str.18 = [5 x i8] c"TTOU\00"
@SIGTTOU = global i32 0
@.str.19 = [4 x i8] c"PWR\00"
@SIGPWR = global i32 0
@.str.20 = [4 x i8] c"SYS\00"
@SIGSYS = global i32 0
@.str.21 = [5 x i8] c"POLL\00"
@SIGPOLL = global i32 0
@.str.22 = [6 x i8] c"WINCH\00"
@SIGWINCH = global i32 0
@.str.23 = [5 x i8] c"PROF\00"
@SIGPROF = global i32 0
@.str.24 = [5 x i8] c"TRAP\00"
@SIGTRAP = global i32 0
@.str.25 = [4 x i8] c"BUS\00"
@SIGBUS = global i32 0
@.str.26 = [7 x i8] c"STKFLT\00"
@SIGSTKFLT = global i32 0
@.str.27 = [4 x i8] c"URG\00"
@SIGURG = global i32 0
@.str.28 = [5 x i8] c"XCPU\00"
@SIGXCPU = global i32 0
@.str.29 = [5 x i8] c"XFSZ\00"
@SIGXFSZ = global i32 0
@.str.30 = [7 x i8] c"VTALRM\00"
@SIGVTALRM = global i32 0
define i32 @str_to_sig(i8* nocapture %0) {
%2 = alloca [31 x %struct.anon]
%3 = bitcast [31 x %struct.anon]* %2 to i8*
%4 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 0, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8** %4
%5 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 0, i32 1
%6 = load i32, i32* @SIGHUP
store i32 %6, i32* %5
%7 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 1, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i8** %7
%8 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 1, i32 1
%9 = load i32, i32* @SIGINT
store i32 %9, i32* %8
%10 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 2, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i8** %10
%11 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 2, i32 1
%12 = load i32, i32* @SIGQUIT
store i32 %12, i32* %11
%13 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 3, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), i8** %13
%14 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 3, i32 1
%15 = load i32, i32* @SIGILL
store i32 %15, i32* %14
%16 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 4, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i8** %16
%17 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 4, i32 1
%18 = load i32, i32* @SIGABRT
store i32 %18, i32* %17
%19 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 5, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0), i8** %19
%20 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 5, i32 1
%21 = load i32, i32* @SIGFPE
store i32 %21, i32* %20
%22 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 6, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8** %22
%23 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 6, i32 1
%24 = load i32, i32* @SIGKILL
store i32 %24, i32* %23
%25 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 7, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0), i8** %25
%26 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 7, i32 1
%27 = load i32, i32* @SIGUSR1
store i32 %27, i32* %26
%28 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 8, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0), i8** %28
%29 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 8, i32 1
%30 = load i32, i32* @SIGSEGV
store i32 %30, i32* %29
%31 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 9, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8** %31
%32 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 9, i32 1
%33 = load i32, i32* @SIGUSR2
store i32 %33, i32* %32
%34 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 10, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8** %34
%35 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 10, i32 1
%36 = load i32, i32* @SIGPIPE
store i32 %36, i32* %35
%37 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 11, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0), i8** %37
%38 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 11, i32 1
%39 = load i32, i32* @SIGALRM
store i32 %39, i32* %38
%40 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 12, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0), i8** %40
%41 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 12, i32 1
%42 = load i32, i32* @SIGTERM
store i32 %42, i32* %41
%43 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 13, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i8** %43
%44 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 13, i32 1
%45 = load i32, i32* @SIGCHLD
store i32 %45, i32* %44
%46 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 14, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0), i8** %46
%47 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 14, i32 1
%48 = load i32, i32* @SIGCONT
store i32 %48, i32* %47
%49 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 15, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i8** %49
%50 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 15, i32 1
%51 = load i32, i32* @SIGSTOP
store i32 %51, i32* %50
%52 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 16, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0), i8** %52
%53 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 16, i32 1
%54 = load i32, i32* @SIGTSTP
store i32 %54, i32* %53
%55 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 17, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0), i8** %55
%56 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 17, i32 1
%57 = load i32, i32* @SIGTTIN
store i32 %57, i32* %56
%58 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 18, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0), i8** %58
%59 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 18, i32 1
%60 = load i32, i32* @SIGTTOU
store i32 %60, i32* %59
%61 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 19, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0), i8** %61
%62 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 19, i32 1
%63 = load i32, i32* @SIGPWR
store i32 %63, i32* %62
%64 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 20, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i8** %64
%65 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 20, i32 1
%66 = load i32, i32* @SIGSYS
store i32 %66, i32* %65
%67 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 21, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.21, i64 0, i64 0), i8** %67
%68 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 21, i32 1
%69 = load i32, i32* @SIGPOLL
store i32 %69, i32* %68
%70 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 22, i32 0
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i64 0, i64 0), i8** %70
%71 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 22, i32 1
%72 = load i32, i32* @SIGWINCH
store i32 %72, i32* %71
%73 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 23, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0), i8** %73
%74 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 23, i32 1
%75 = load i32, i32* @SIGPROF
store i32 %75, i32* %74
%76 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 24, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i64 0, i64 0), i8** %76
%77 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 24, i32 1
%78 = load i32, i32* @SIGTRAP
store i32 %78, i32* %77
%79 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 25, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0), i8** %79
%80 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 25, i32 1
%81 = load i32, i32* @SIGBUS
store i32 %81, i32* %80
%82 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 26, i32 0
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.26, i64 0, i64 0), i8** %82
%83 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 26, i32 1
%84 = load i32, i32* @SIGSTKFLT
store i32 %84, i32* %83
%85 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 27, i32 0
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0), i8** %85
%86 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 27, i32 1
%87 = load i32, i32* @SIGURG
store i32 %87, i32* %86
%88 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 28, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0), i8** %88
%89 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 28, i32 1
%90 = load i32, i32* @SIGXCPU
store i32 %90, i32* %89
%91 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 29, i32 0
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.29, i64 0, i64 0), i8** %91
%92 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 29, i32 1
%93 = load i32, i32* @SIGXFSZ
store i32 %93, i32* %92
%94 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 30, i32 0
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0), i8** %94
%95 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 30, i32 1
%96 = load i32, i32* @SIGVTALRM
store i32 %96, i32* %95
br label %97
97: ; preds = %1, %107
%98 = phi i64 [ 0, %1 ], [ %108, %107 ]
%99 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 %98, i32 0
%100 = load i8*, i8** %99
%101 = tail call i32 @strcmp(i8* dereferenceable(1) %100, i8* dereferenceable(1) %0)
%102 = icmp eq i32 %101, 0
br i1 %102, label %103, label %107
103: ; preds = %97
%104 = and i64 %98, 4294967295
%105 = getelementptr inbounds [31 x %struct.anon], [31 x %struct.anon]* %2, i64 0, i64 %104, i32 1
%106 = load i32, i32* %105
br label %110
107: ; preds = %97
%108 = add nuw nsw i64 %98, 1
%109 = icmp eq i64 %108, 31
br i1 %109, label %110, label %97
110: ; preds = %107, %103
%111 = phi i32 [ %106, %103 ], [ -1, %107 ]
ret i32 %111
}