#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 */
struct sigaction {
  int dummy;
};

/* Variables and functions */
int /*<<< orphan*/ SIGABRT;
int /*<<< orphan*/ SIGALRM;
int /*<<< orphan*/ SIGBUS;
int /*<<< orphan*/ SIGCHLD;
int /*<<< orphan*/ SIGCONT;
int /*<<< orphan*/ SIGHUP;
int /*<<< orphan*/ SIGINT;
int /*<<< orphan*/ SIGIO;
int /*<<< orphan*/ SIGIOT;
int /*<<< orphan*/ SIGPIPE;
int /*<<< orphan*/ SIGPROF;
int /*<<< orphan*/ SIGPWR;
int /*<<< orphan*/ SIGQUIT;
int /*<<< orphan*/ SIGSEGV;
int /*<<< orphan*/ SIGSYS;
int /*<<< orphan*/ SIGTERM;
int /*<<< orphan*/ SIGTRAP;
int /*<<< orphan*/ SIGTSTP;
int /*<<< orphan*/ SIGTTIN;
int /*<<< orphan*/ SIGTTOU;
int /*<<< orphan*/ SIGUSR1;
int /*<<< orphan*/ SIGUSR2;
int /*<<< orphan*/ SIGVTALRM;
int /*<<< orphan*/ SIGWINCH;
int /*<<< orphan*/ SIGXCPU;
int /*<<< orphan*/ SIGXFSZ;
int /*<<< orphan*/ sigaction(int /*<<< orphan*/, struct sigaction *,
                             int /*<<< orphan*/ *);
void sigs_set(struct sigaction *sig) {
  sigaction(SIGABRT, sig, NULL);
  sigaction(SIGALRM, sig, NULL);
  sigaction(SIGBUS, sig, NULL);
  sigaction(SIGCHLD, sig, NULL);
  sigaction(SIGCONT, sig, NULL);
  sigaction(SIGHUP, sig, NULL);
  sigaction(SIGINT, sig, NULL);
  sigaction(SIGIO, sig, NULL);
  sigaction(SIGIOT, sig, NULL);
  sigaction(SIGPIPE, sig, NULL);
  sigaction(SIGPROF, sig, NULL);
  sigaction(SIGPWR, sig, NULL);
  sigaction(SIGQUIT, sig, NULL);
  sigaction(SIGSEGV, sig, NULL);
  sigaction(SIGSYS, sig, NULL);
  sigaction(SIGTERM, sig, NULL);
  sigaction(SIGTRAP, sig, NULL);
  sigaction(SIGTSTP, sig, NULL);
  sigaction(SIGTTIN, sig, NULL);
  sigaction(SIGTTOU, sig, NULL);
  sigaction(SIGUSR1, sig, NULL);
  sigaction(SIGUSR2, sig, NULL);
  sigaction(SIGVTALRM, sig, NULL);
  sigaction(SIGWINCH, sig, NULL);
  sigaction(SIGXCPU, sig, NULL);
  sigaction(SIGXFSZ, sig, NULL);
}


x86 assembly (clang, -O0):
<sigs_set>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    0x2dfd(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2e7f(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2e99(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2e23(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2e4d(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2e5f(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2e09(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2d6b(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2da5(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2d57(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2d99(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2d43(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2d75(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2d7f(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2ce1(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2d3b(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2c95(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2ce7(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2cb9(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2d13(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2cf5(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2c57(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2c49(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2c53(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2bfd(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
mov    0x2c47(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rsi
xor    %eax,%eax
mov    %eax,%edx
call   1030 <sigaction@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<sigs_set>:
push   %rbx
mov    %rdi,%rbx
mov    0x2e05(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2e8a(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2ea7(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2e34(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2e61(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2e76(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2e23(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2d88(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2dc5(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2d7a(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2dbf(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2d6c(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2da1(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2dae(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2d13(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2d70(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2ccd(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2d22(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2cf7(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2d54(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2d39(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2c9e(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2c93(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2ca0(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2c4d(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
call   1030 <sigaction@plt>
mov    0x2c9a(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
xor    %edx,%edx
pop    %rbx
jmp    1030 <sigaction@plt>

LLVM IR (-O0):
%struct.sigaction = type { i32 }
@SIGABRT = global i32 0
@SIGALRM = global i32 0
@SIGBUS = global i32 0
@SIGCHLD = global i32 0
@SIGCONT = global i32 0
@SIGHUP = global i32 0
@SIGINT = global i32 0
@SIGIO = global i32 0
@SIGIOT = global i32 0
@SIGPIPE = global i32 0
@SIGPROF = global i32 0
@SIGPWR = global i32 0
@SIGQUIT = global i32 0
@SIGSEGV = global i32 0
@SIGSYS = global i32 0
@SIGTERM = global i32 0
@SIGTRAP = global i32 0
@SIGTSTP = global i32 0
@SIGTTIN = global i32 0
@SIGTTOU = global i32 0
@SIGUSR1 = global i32 0
@SIGUSR2 = global i32 0
@SIGVTALRM = global i32 0
@SIGWINCH = global i32 0
@SIGXCPU = global i32 0
@SIGXFSZ = global i32 0
define void @sigs_set(%struct.sigaction* %0) {
%2 = alloca %struct.sigaction*
store %struct.sigaction* %0, %struct.sigaction** %2
%3 = load i32, i32* @SIGABRT
%4 = load %struct.sigaction*, %struct.sigaction** %2
%5 = call i32 @sigaction(i32 %3, %struct.sigaction* %4, i32* null)
%6 = load i32, i32* @SIGALRM
%7 = load %struct.sigaction*, %struct.sigaction** %2
%8 = call i32 @sigaction(i32 %6, %struct.sigaction* %7, i32* null)
%9 = load i32, i32* @SIGBUS
%10 = load %struct.sigaction*, %struct.sigaction** %2
%11 = call i32 @sigaction(i32 %9, %struct.sigaction* %10, i32* null)
%12 = load i32, i32* @SIGCHLD
%13 = load %struct.sigaction*, %struct.sigaction** %2
%14 = call i32 @sigaction(i32 %12, %struct.sigaction* %13, i32* null)
%15 = load i32, i32* @SIGCONT
%16 = load %struct.sigaction*, %struct.sigaction** %2
%17 = call i32 @sigaction(i32 %15, %struct.sigaction* %16, i32* null)
%18 = load i32, i32* @SIGHUP
%19 = load %struct.sigaction*, %struct.sigaction** %2
%20 = call i32 @sigaction(i32 %18, %struct.sigaction* %19, i32* null)
%21 = load i32, i32* @SIGINT
%22 = load %struct.sigaction*, %struct.sigaction** %2
%23 = call i32 @sigaction(i32 %21, %struct.sigaction* %22, i32* null)
%24 = load i32, i32* @SIGIO
%25 = load %struct.sigaction*, %struct.sigaction** %2
%26 = call i32 @sigaction(i32 %24, %struct.sigaction* %25, i32* null)
%27 = load i32, i32* @SIGIOT
%28 = load %struct.sigaction*, %struct.sigaction** %2
%29 = call i32 @sigaction(i32 %27, %struct.sigaction* %28, i32* null)
%30 = load i32, i32* @SIGPIPE
%31 = load %struct.sigaction*, %struct.sigaction** %2
%32 = call i32 @sigaction(i32 %30, %struct.sigaction* %31, i32* null)
%33 = load i32, i32* @SIGPROF
%34 = load %struct.sigaction*, %struct.sigaction** %2
%35 = call i32 @sigaction(i32 %33, %struct.sigaction* %34, i32* null)
%36 = load i32, i32* @SIGPWR
%37 = load %struct.sigaction*, %struct.sigaction** %2
%38 = call i32 @sigaction(i32 %36, %struct.sigaction* %37, i32* null)
%39 = load i32, i32* @SIGQUIT
%40 = load %struct.sigaction*, %struct.sigaction** %2
%41 = call i32 @sigaction(i32 %39, %struct.sigaction* %40, i32* null)
%42 = load i32, i32* @SIGSEGV
%43 = load %struct.sigaction*, %struct.sigaction** %2
%44 = call i32 @sigaction(i32 %42, %struct.sigaction* %43, i32* null)
%45 = load i32, i32* @SIGSYS
%46 = load %struct.sigaction*, %struct.sigaction** %2
%47 = call i32 @sigaction(i32 %45, %struct.sigaction* %46, i32* null)
%48 = load i32, i32* @SIGTERM
%49 = load %struct.sigaction*, %struct.sigaction** %2
%50 = call i32 @sigaction(i32 %48, %struct.sigaction* %49, i32* null)
%51 = load i32, i32* @SIGTRAP
%52 = load %struct.sigaction*, %struct.sigaction** %2
%53 = call i32 @sigaction(i32 %51, %struct.sigaction* %52, i32* null)
%54 = load i32, i32* @SIGTSTP
%55 = load %struct.sigaction*, %struct.sigaction** %2
%56 = call i32 @sigaction(i32 %54, %struct.sigaction* %55, i32* null)
%57 = load i32, i32* @SIGTTIN
%58 = load %struct.sigaction*, %struct.sigaction** %2
%59 = call i32 @sigaction(i32 %57, %struct.sigaction* %58, i32* null)
%60 = load i32, i32* @SIGTTOU
%61 = load %struct.sigaction*, %struct.sigaction** %2
%62 = call i32 @sigaction(i32 %60, %struct.sigaction* %61, i32* null)
%63 = load i32, i32* @SIGUSR1
%64 = load %struct.sigaction*, %struct.sigaction** %2
%65 = call i32 @sigaction(i32 %63, %struct.sigaction* %64, i32* null)
%66 = load i32, i32* @SIGUSR2
%67 = load %struct.sigaction*, %struct.sigaction** %2
%68 = call i32 @sigaction(i32 %66, %struct.sigaction* %67, i32* null)
%69 = load i32, i32* @SIGVTALRM
%70 = load %struct.sigaction*, %struct.sigaction** %2
%71 = call i32 @sigaction(i32 %69, %struct.sigaction* %70, i32* null)
%72 = load i32, i32* @SIGWINCH
%73 = load %struct.sigaction*, %struct.sigaction** %2
%74 = call i32 @sigaction(i32 %72, %struct.sigaction* %73, i32* null)
%75 = load i32, i32* @SIGXCPU
%76 = load %struct.sigaction*, %struct.sigaction** %2
%77 = call i32 @sigaction(i32 %75, %struct.sigaction* %76, i32* null)
%78 = load i32, i32* @SIGXFSZ
%79 = load %struct.sigaction*, %struct.sigaction** %2
%80 = call i32 @sigaction(i32 %78, %struct.sigaction* %79, i32* null)
ret void
}

LLVM IR (-O2):
%struct.sigaction = type { i32 }
@SIGABRT = global i32 0
@SIGALRM = global i32 0
@SIGBUS = global i32 0
@SIGCHLD = global i32 0
@SIGCONT = global i32 0
@SIGHUP = global i32 0
@SIGINT = global i32 0
@SIGIO = global i32 0
@SIGIOT = global i32 0
@SIGPIPE = global i32 0
@SIGPROF = global i32 0
@SIGPWR = global i32 0
@SIGQUIT = global i32 0
@SIGSEGV = global i32 0
@SIGSYS = global i32 0
@SIGTERM = global i32 0
@SIGTRAP = global i32 0
@SIGTSTP = global i32 0
@SIGTTIN = global i32 0
@SIGTTOU = global i32 0
@SIGUSR1 = global i32 0
@SIGUSR2 = global i32 0
@SIGVTALRM = global i32 0
@SIGWINCH = global i32 0
@SIGXCPU = global i32 0
@SIGXFSZ = global i32 0
define void @sigs_set(%struct.sigaction* %0) {
%2 = load i32, i32* @SIGABRT
%3 = tail call i32 @sigaction(i32 %2, %struct.sigaction* %0, i32* null)
%4 = load i32, i32* @SIGALRM
%5 = tail call i32 @sigaction(i32 %4, %struct.sigaction* %0, i32* null)
%6 = load i32, i32* @SIGBUS
%7 = tail call i32 @sigaction(i32 %6, %struct.sigaction* %0, i32* null)
%8 = load i32, i32* @SIGCHLD
%9 = tail call i32 @sigaction(i32 %8, %struct.sigaction* %0, i32* null)
%10 = load i32, i32* @SIGCONT
%11 = tail call i32 @sigaction(i32 %10, %struct.sigaction* %0, i32* null)
%12 = load i32, i32* @SIGHUP
%13 = tail call i32 @sigaction(i32 %12, %struct.sigaction* %0, i32* null)
%14 = load i32, i32* @SIGINT
%15 = tail call i32 @sigaction(i32 %14, %struct.sigaction* %0, i32* null)
%16 = load i32, i32* @SIGIO
%17 = tail call i32 @sigaction(i32 %16, %struct.sigaction* %0, i32* null)
%18 = load i32, i32* @SIGIOT
%19 = tail call i32 @sigaction(i32 %18, %struct.sigaction* %0, i32* null)
%20 = load i32, i32* @SIGPIPE
%21 = tail call i32 @sigaction(i32 %20, %struct.sigaction* %0, i32* null)
%22 = load i32, i32* @SIGPROF
%23 = tail call i32 @sigaction(i32 %22, %struct.sigaction* %0, i32* null)
%24 = load i32, i32* @SIGPWR
%25 = tail call i32 @sigaction(i32 %24, %struct.sigaction* %0, i32* null)
%26 = load i32, i32* @SIGQUIT
%27 = tail call i32 @sigaction(i32 %26, %struct.sigaction* %0, i32* null)
%28 = load i32, i32* @SIGSEGV
%29 = tail call i32 @sigaction(i32 %28, %struct.sigaction* %0, i32* null)
%30 = load i32, i32* @SIGSYS
%31 = tail call i32 @sigaction(i32 %30, %struct.sigaction* %0, i32* null)
%32 = load i32, i32* @SIGTERM
%33 = tail call i32 @sigaction(i32 %32, %struct.sigaction* %0, i32* null)
%34 = load i32, i32* @SIGTRAP
%35 = tail call i32 @sigaction(i32 %34, %struct.sigaction* %0, i32* null)
%36 = load i32, i32* @SIGTSTP
%37 = tail call i32 @sigaction(i32 %36, %struct.sigaction* %0, i32* null)
%38 = load i32, i32* @SIGTTIN
%39 = tail call i32 @sigaction(i32 %38, %struct.sigaction* %0, i32* null)
%40 = load i32, i32* @SIGTTOU
%41 = tail call i32 @sigaction(i32 %40, %struct.sigaction* %0, i32* null)
%42 = load i32, i32* @SIGUSR1
%43 = tail call i32 @sigaction(i32 %42, %struct.sigaction* %0, i32* null)
%44 = load i32, i32* @SIGUSR2
%45 = tail call i32 @sigaction(i32 %44, %struct.sigaction* %0, i32* null)
%46 = load i32, i32* @SIGVTALRM
%47 = tail call i32 @sigaction(i32 %46, %struct.sigaction* %0, i32* null)
%48 = load i32, i32* @SIGWINCH
%49 = tail call i32 @sigaction(i32 %48, %struct.sigaction* %0, i32* null)
%50 = load i32, i32* @SIGXCPU
%51 = tail call i32 @sigaction(i32 %50, %struct.sigaction* %0, i32* null)
%52 = load i32, i32* @SIGXFSZ
%53 = tail call i32 @sigaction(i32 %52, %struct.sigaction* %0, i32* null)
ret void
}