#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 */

/* Variables and functions */
int /*<<< orphan*/ printf(char *);
void usage(void) {
  printf(
      "Usage: start-stop-daemon [<option> ...] <command>\n"
      "\n"
      "Commands:\n"
      "  -S|--start -- <argument> ...  start a program and pass <arguments> to "
      "it\n"
      "  -K|--stop                     stop a program\n"
      "  -T|--status                   get the program status\n"
      "  -H|--help                     print help information\n"
      "  -V|--version                  print version\n"
      "\n"
      "Matching options (at least one is required):\n"
      "  -p|--pidfile <pid-file>       pid file to check\n"
      "  -x|--exec <executable>        program to start/check if it is "
      "running\n"
      "  -n|--name <process-name>      process name to check\n"
      "  -u|--user <username|uid>      process owner to check\n"
      "\n"
      "Options:\n"
      "  -g|--group <group|gid>        run process as this group\n"
      "  -c|--chuid <name|uid[:group|gid]>\n"
      "                                change to this user/group before "
      "starting\n"
      "                                  process\n"
      "  -s|--signal <signal>          signal to send (default TERM)\n"
      "  -a|--startas <pathname>       program to start (default is "
      "<executable>)\n"
      "  -r|--chroot <directory>       chroot to <directory> before starting\n"
      "  -d|--chdir <directory>        change to <directory> (default is /)\n"
      "  -N|--nicelevel <incr>         add incr to the process' nice level\n"
      "  -P|--procsched <policy[:prio]>\n"
      "                                use <policy> with <prio> for the "
      "kernel\n"
      "                                  process scheduler (default prio is "
      "0)\n"
      "  -I|--iosched <class[:prio]>   use <class> with <prio> to set the IO\n"
      "                                  scheduler (default prio is 4)\n"
      "  -k|--umask <mask>             change the umask to <mask> before "
      "starting\n"
      "  -b|--background               force the process to detach\n"
      "  -C|--no-close                 do not close any file descriptor\n"
      "  -m|--make-pidfile             create the pidfile before starting\n"
      "  -R|--retry <schedule>         check whether processes die, and retry\n"
      "  -t|--test                     test mode, don't do anything\n"
      "  -o|--oknodo                   exit status 0 (not 1) if nothing done\n"
      "  -q|--quiet                    be more quiet\n"
      "  -v|--verbose                  be more verbose\n"
      "\n"
      "Retry <schedule> is <item>|/<item>/... where <item> is one of\n"
      " -<signal-num>|[-]<signal-name>  send that signal\n"
      " <timeout>                       wait that many seconds\n"
      " forever                         repeat remainder forever\n"
      "or <schedule> may be just <timeout>, meaning "
      "<signal>/<timeout>/KILL/<timeout>\n"
      "\n"
      "The process scheduler <policy> can be one of:\n"
      "  other, fifo or rr\n"
      "\n"
      "The IO scheduler <class> can be one of:\n"
      "  real-time, best-effort or idle\n"
      "\n"
      "Exit status:\n"
      "  0 = done\n"
      "  1 = nothing done (=> 0 if --oknodo)\n"
      "  2 = with --retry, processes would not die\n"
      "  3 = trouble\n"
      "Exit status with --status:\n"
      "  0 = program is running\n"
      "  1 = program is not running and the pid file exists\n"
      "  3 = program is not running\n"
      "  4 = unable to determine status\n");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [2790 x i8] c"Usage: start-stop-daemon [<option> ...] <command>\0A\0ACommands:\0A -S|--start -- <argument> ... start a program and pass <arguments> to it\0A -K|--stop stop a program\0A -T|--status get the program status\0A -H|--help print help information\0A -V|--version print version\0A\0AMatching options (at least one is required):\0A -p|--pidfile <pid-file> pid file to check\0A -x|--exec <executable> program to start/check if it is running\0A -n|--name <process-name> process name to check\0A -u|--user <username|uid> process owner to check\0A\0AOptions:\0A -g|--group <group|gid> run process as this group\0A -c|--chuid <name|uid[:group|gid]>\0A change to this user/group before starting\0A process\0A -s|--signal <signal> signal to send (default TERM)\0A -a|--startas <pathname> program to start (default is <executable>)\0A -r|--chroot <directory> chroot to <directory> before starting\0A -d|--chdir <directory> change to <directory> (default is /)\0A -N|--nicelevel <incr> add incr to the process' nice level\0A -P|--procsched <policy[:prio]>\0A use <policy> with <prio> for the kernel\0A process scheduler (default prio is 0)\0A -I|--iosched <class[:prio]> use <class> with <prio> to set the IO\0A scheduler (default prio is 4)\0A -k|--umask <mask> change the umask to <mask> before starting\0A -b|--background force the process to detach\0A -C|--no-close do not close any file descriptor\0A -m|--make-pidfile create the pidfile before starting\0A -R|--retry <schedule> check whether processes die, and retry\0A -t|--test test mode, don't do anything\0A -o|--oknodo exit status 0 (not 1) if nothing done\0A -q|--quiet be more quiet\0A -v|--verbose be more verbose\0A\0ARetry <schedule> is <item>|/<item>/... where <item> is one of\0A -<signal-num>|[-]<signal-name> send that signal\0A <timeout> wait that many seconds\0A forever repeat remainder forever\0Aor <schedule> may be just <timeout>, meaning <signal>/<timeout>/KILL/<timeout>\0A\0AThe process scheduler <policy> can be one of:\0A other, fifo or rr\0A\0AThe IO scheduler <class> can be one of:\0A real-time, best-effort or idle\0A\0AExit status:\0A 0 = done\0A 1 = nothing done (=> 0 if --oknodo)\0A 2 = with --retry, processes would not die\0A 3 = trouble\0AExit status with --status:\0A 0 = program is running\0A 1 = program is not running and the pid file exists\0A 3 = program is not running\0A 4 = unable to determine status\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([2790 x i8], [2790 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [2789 x i8] c"Usage: start-stop-daemon [<option> ...] <command>\0A\0ACommands:\0A -S|--start -- <argument> ... start a program and pass <arguments> to it\0A -K|--stop stop a program\0A -T|--status get the program status\0A -H|--help print help information\0A -V|--version print version\0A\0AMatching options (at least one is required):\0A -p|--pidfile <pid-file> pid file to check\0A -x|--exec <executable> program to start/check if it is running\0A -n|--name <process-name> process name to check\0A -u|--user <username|uid> process owner to check\0A\0AOptions:\0A -g|--group <group|gid> run process as this group\0A -c|--chuid <name|uid[:group|gid]>\0A change to this user/group before starting\0A process\0A -s|--signal <signal> signal to send (default TERM)\0A -a|--startas <pathname> program to start (default is <executable>)\0A -r|--chroot <directory> chroot to <directory> before starting\0A -d|--chdir <directory> change to <directory> (default is /)\0A -N|--nicelevel <incr> add incr to the process' nice level\0A -P|--procsched <policy[:prio]>\0A use <policy> with <prio> for the kernel\0A process scheduler (default prio is 0)\0A -I|--iosched <class[:prio]> use <class> with <prio> to set the IO\0A scheduler (default prio is 4)\0A -k|--umask <mask> change the umask to <mask> before starting\0A -b|--background force the process to detach\0A -C|--no-close do not close any file descriptor\0A -m|--make-pidfile create the pidfile before starting\0A -R|--retry <schedule> check whether processes die, and retry\0A -t|--test test mode, don't do anything\0A -o|--oknodo exit status 0 (not 1) if nothing done\0A -q|--quiet be more quiet\0A -v|--verbose be more verbose\0A\0ARetry <schedule> is <item>|/<item>/... where <item> is one of\0A -<signal-num>|[-]<signal-name> send that signal\0A <timeout> wait that many seconds\0A forever repeat remainder forever\0Aor <schedule> may be just <timeout>, meaning <signal>/<timeout>/KILL/<timeout>\0A\0AThe process scheduler <policy> can be one of:\0A other, fifo or rr\0A\0AThe IO scheduler <class> can be one of:\0A real-time, best-effort or idle\0A\0AExit status:\0A 0 = done\0A 1 = nothing done (=> 0 if --oknodo)\0A 2 = with --retry, processes would not die\0A 3 = trouble\0AExit status with --status:\0A 0 = program is running\0A 1 = program is not running and the pid file exists\0A 3 = program is not running\0A 4 = unable to determine status\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2789 x i8], [2789 x i8]* @str, i64 0, i64 0))
ret void
}