#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*/ fprintf(int /*<<< orphan*/, char *, ...);
int /*<<< orphan*/ stderr;
void usage(char *progname) {
  (void)fprintf(
      stderr,
      ("Usage: %s[ -w <AFD working dir>][ -p <role>][ -u[ <user>]] [option]\n"),
      progname);
  (void)fprintf(stderr, ("\n   Other possible options:\n"));
  (void)fprintf(stderr, ("    -a                        only start AFD\n"));
  (void)fprintf(stderr, ("    -A                        only start AFD, but do "
                         "not scan directories\n"));
  (void)fprintf(stderr,
                ("    -b                        blocks starting of AFD\n"));
  (void)fprintf(
      stderr, ("    -c[ <timeout in seconds>] only check if AFD is active\n"));
  (void)fprintf(stderr, ("    -C[ <timeout in seconds>] check if AFD is "
                         "active, if not start it\n"));
  (void)fprintf(stderr,
                ("    -d                        only start afd_ctrl dialog\n"));
  (void)fprintf(stderr,
                ("    -h[ <timeout in seconds>] only check for heartbeat\n"));
  (void)fprintf(stderr, ("    -H[ <timeout in seconds>] check if heartbeat is "
                         "active, if not start AFD\n"));
  (void)fprintf(stderr, ("    -i[1-9]                   initialize AFD, the "
                         "optional number is the\n"));
  (void)fprintf(stderr, ("                              level of "
                         "initialization. The higher the number\n"));
  (void)fprintf(stderr, ("                              the more data will be "
                         "deleted. If no number is\n"));
  (void)fprintf(stderr, ("                              specified the level "
                         "will be 5. 9 is the same\n"));
  (void)fprintf(stderr, ("                              as -I below.\n"));
  (void)fprintf(stderr, ("    -I                        initialize AFD, by "
                         "deleting everything\n"));
  (void)fprintf(stderr,
                ("                              except for etc directory\n"));
  (void)fprintf(stderr, ("    -n                        in combination with -i "
                         "or -I just print\n"));
  (void)fprintf(stderr,
                ("                              and do not execute.\n"));
  (void)fprintf(
      stderr,
      ("    -r                        removes blocking startup of AFD\n"));
  (void)fprintf(stderr, ("    -s                        shutdown AFD\n"));
  (void)fprintf(stderr,
                ("    -S                        silent AFD shutdown\n"));
  (void)fprintf(stderr,
                ("    -sn <name>                Provide a service name.\n"));
  (void)fprintf(stderr, ("    -T                        check if data types "
                         "match current binary\n"));
  (void)fprintf(stderr, ("    -z                        set shutdown bit\n"));
  (void)fprintf(stderr,
                ("    --help                    prints out this syntax\n"));
  (void)fprintf(stderr,
                ("    -v                        just print version number\n"));
  (void)fprintf(stderr,
                ("    --version                 show current version\n"));
  (void)fprintf(stderr, ("\n   Possible return values:\n"));
  (void)fprintf(stderr, ("    %d                       No DIR_CONFIG.\n"), -2);
  (void)fprintf(stderr, ("    %d                        Success.\n"), 0);
  (void)fprintf(stderr, ("    %d                        AFD is active.\n"), 5);
  (void)fprintf(stderr,
                ("    %d                        AFD is disabled by sysadm.\n"),
                6);
  (void)fprintf(stderr, ("    %d                        AFD not responding.\n"),
                9);
  (void)fprintf(stderr, ("    %d                       AFD not active.\n"), 10);
  (void)fprintf(stderr, ("    %d                       Not on correct host.\n"),
                11);
  return;
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    0x2ebd(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rdx
lea    0xed0(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2ea2(%rip),%rax
mov    (%rax),%edi
lea    0xefe(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2e8b(%rip),%rax
mov    (%rax),%edi
lea    0xf04(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2e74(%rip),%rax
mov    (%rax),%edi
lea    0xf1b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2e5d(%rip),%rax
mov    (%rax),%edi
lea    0xf4f(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2e46(%rip),%rax
mov    (%rax),%edi
lea    0xf6e(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2e2f(%rip),%rax
mov    (%rax),%edi
lea    0xf92(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2e18(%rip),%rax
mov    (%rax),%edi
lea    0xfc2(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2e01(%rip),%rax
mov    (%rax),%edi
lea    0xfe5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2dea(%rip),%rax
mov    (%rax),%edi
lea    0x1006(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2dd3(%rip),%rax
mov    (%rax),%edi
lea    0x103d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2dbc(%rip),%rax
mov    (%rax),%edi
lea    0x1070(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2da5(%rip),%rax
mov    (%rax),%edi
lea    0x10a7(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2d8e(%rip),%rax
mov    (%rax),%edi
lea    0x10de(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2d77(%rip),%rax
mov    (%rax),%edi
lea    0x1113(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2d60(%rip),%rax
mov    (%rax),%edi
lea    0x1128(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2d49(%rip),%rax
mov    (%rax),%edi
lea    0x1157(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2d32(%rip),%rax
mov    (%rax),%edi
lea    0x1178(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2d1b(%rip),%rax
mov    (%rax),%edi
lea    0x11a8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2d04(%rip),%rax
mov    (%rax),%edi
lea    0x11c4(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2ced(%rip),%rax
mov    (%rax),%edi
lea    0x11ec(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2cd6(%rip),%rax
mov    (%rax),%edi
lea    0x1201(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2cbf(%rip),%rax
mov    (%rax),%edi
lea    0x121d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2ca8(%rip),%rax
mov    (%rax),%edi
lea    0x123d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2c91(%rip),%rax
mov    (%rax),%edi
lea    0x126e(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2c7a(%rip),%rax
mov    (%rax),%edi
lea    0x1287(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2c63(%rip),%rax
mov    (%rax),%edi
lea    0x12a6(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2c4c(%rip),%rax
mov    (%rax),%edi
lea    0x12c8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2c35(%rip),%rax
mov    (%rax),%edi
lea    0x12e5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2c1e(%rip),%rax
mov    (%rax),%edi
lea    0x12eb(%rip),%rsi
mov    $0xfffffffe,%edx
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2c02(%rip),%rax
mov    (%rax),%edi
lea    0x12fc(%rip),%rsi
xor    %edx,%edx
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2be9(%rip),%rax
mov    (%rax),%edi
lea    0x130b(%rip),%rsi
mov    $0x5,%edx
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2bcd(%rip),%rax
mov    (%rax),%edi
lea    0x131d(%rip),%rsi
mov    $0x6,%edx
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2bb1(%rip),%rax
mov    (%rax),%edi
lea    0x133b(%rip),%rsi
mov    $0x9,%edx
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2b95(%rip),%rax
mov    (%rax),%edi
lea    0x1352(%rip),%rsi
mov    $0xa,%edx
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2b79(%rip),%rax
mov    (%rax),%edi
lea    0x1364(%rip),%rsi
mov    $0xb,%edx
mov    $0x0,%al
call   1030 <fprintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
push   %rbx
mov    %rdi,%rdx
mov    0x2ec5(%rip),%rbx
mov    (%rbx),%edi
lea    0xedc(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf11(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf1e(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf3c(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf77(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf9d(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xfc8(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xfff(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1029(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1051(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x108f(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x10c9(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1107(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1145(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1181(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x119d(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x11d3(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x11fb(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1232(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1255(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1284(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x12a0(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x12c3(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x12ea(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1322(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1342(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1368(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1391(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x13b5(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x13c2(%rip),%rsi
mov    $0xfffffffe,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x13da(%rip),%rsi
xor    %edx,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x13f0(%rip),%rsi
mov    $0x5,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1409(%rip),%rsi
mov    $0x6,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x142e(%rip),%rsi
mov    $0x9,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x144c(%rip),%rsi
mov    $0xa,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1465(%rip),%rsi
mov    $0xb,%edx
xor    %eax,%eax
pop    %rbx
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [69 x i8] c"Usage: %s[ -w <AFD working dir>][ -p <role>][ -u[ <user>]] [option]\0A\00"
@.str.1 = [29 x i8] c"\0A Other possible options:\0A\00"
@.str.2 = [46 x i8] c" -a only start AFD\0A\00"
@.str.3 = [75 x i8] c" -A only start AFD, but do not scan directories\0A\00"
@.str.4 = [54 x i8] c" -b blocks starting of AFD\0A\00"
@.str.5 = [59 x i8] c" -c[ <timeout in seconds>] only check if AFD is active\0A\00"
@.str.6 = [71 x i8] c" -C[ <timeout in seconds>] check if AFD is active, if not start it\0A\00"
@.str.7 = [58 x i8] c" -d only start afd_ctrl dialog\0A\00"
@.str.8 = [56 x i8] c" -h[ <timeout in seconds>] only check for heartbeat\0A\00"
@.str.9 = [78 x i8] c" -H[ <timeout in seconds>] check if heartbeat is active, if not start AFD\0A\00"
@.str.10 = [74 x i8] c" -i[1-9] initialize AFD, the optional number is the\0A\00"
@.str.11 = [78 x i8] c" level of initialization. The higher the number\0A\00"
@.str.12 = [78 x i8] c" the more data will be deleted. If no number is\0A\00"
@.str.13 = [76 x i8] c" specified the level will be 5. 9 is the same\0A\00"
@.str.14 = [44 x i8] c" as -I below.\0A\00"
@.str.15 = [70 x i8] c" -I initialize AFD, by deleting everything\0A\00"
@.str.16 = [56 x i8] c" except for etc directory\0A\00"
@.str.17 = [71 x i8] c" -n in combination with -i or -I just print\0A\00"
@.str.18 = [51 x i8] c" and do not execute.\0A\00"
@.str.19 = [63 x i8] c" -r removes blocking startup of AFD\0A\00"
@.str.20 = [44 x i8] c" -s shutdown AFD\0A\00"
@.str.21 = [51 x i8] c" -S silent AFD shutdown\0A\00"
@.str.22 = [55 x i8] c" -sn <name> Provide a service name.\0A\00"
@.str.23 = [72 x i8] c" -T check if data types match current binary\0A\00"
@.str.24 = [48 x i8] c" -z set shutdown bit\0A\00"
@.str.25 = [54 x i8] c" --help prints out this syntax\0A\00"
@.str.26 = [57 x i8] c" -v just print version number\0A\00"
@.str.27 = [52 x i8] c" --version show current version\0A\00"
@.str.28 = [29 x i8] c"\0A Possible return values:\0A\00"
@.str.29 = [45 x i8] c" %d No DIR_CONFIG.\0A\00"
@.str.30 = [40 x i8] c" %d Success.\0A\00"
@.str.31 = [46 x i8] c" %d AFD is active.\0A\00"
@.str.32 = [58 x i8] c" %d AFD is disabled by sysadm.\0A\00"
@.str.33 = [51 x i8] c" %d AFD not responding.\0A\00"
@.str.34 = [46 x i8] c" %d AFD not active.\0A\00"
@.str.35 = [51 x i8] c" %d Not on correct host.\0A\00"
define void @usage(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i32, i32* @stderr
%4 = load i8*, i8** %2
%5 = call i32 (i32, i8*, ...) @fprintf(i32 %3, i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str, i64 0, i64 0), i8* %4)
%6 = load i32, i32* @stderr
%7 = call i32 (i32, i8*, ...) @fprintf(i32 %6, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.1, i64 0, i64 0))
%8 = load i32, i32* @stderr
%9 = call i32 (i32, i8*, ...) @fprintf(i32 %8, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.2, i64 0, i64 0))
%10 = load i32, i32* @stderr
%11 = call i32 (i32, i8*, ...) @fprintf(i32 %10, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.3, i64 0, i64 0))
%12 = load i32, i32* @stderr
%13 = call i32 (i32, i8*, ...) @fprintf(i32 %12, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.4, i64 0, i64 0))
%14 = load i32, i32* @stderr
%15 = call i32 (i32, i8*, ...) @fprintf(i32 %14, i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.5, i64 0, i64 0))
%16 = load i32, i32* @stderr
%17 = call i32 (i32, i8*, ...) @fprintf(i32 %16, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.6, i64 0, i64 0))
%18 = load i32, i32* @stderr
%19 = call i32 (i32, i8*, ...) @fprintf(i32 %18, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.7, i64 0, i64 0))
%20 = load i32, i32* @stderr
%21 = call i32 (i32, i8*, ...) @fprintf(i32 %20, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.8, i64 0, i64 0))
%22 = load i32, i32* @stderr
%23 = call i32 (i32, i8*, ...) @fprintf(i32 %22, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.9, i64 0, i64 0))
%24 = load i32, i32* @stderr
%25 = call i32 (i32, i8*, ...) @fprintf(i32 %24, i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.10, i64 0, i64 0))
%26 = load i32, i32* @stderr
%27 = call i32 (i32, i8*, ...) @fprintf(i32 %26, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.11, i64 0, i64 0))
%28 = load i32, i32* @stderr
%29 = call i32 (i32, i8*, ...) @fprintf(i32 %28, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.12, i64 0, i64 0))
%30 = load i32, i32* @stderr
%31 = call i32 (i32, i8*, ...) @fprintf(i32 %30, i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.13, i64 0, i64 0))
%32 = load i32, i32* @stderr
%33 = call i32 (i32, i8*, ...) @fprintf(i32 %32, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.14, i64 0, i64 0))
%34 = load i32, i32* @stderr
%35 = call i32 (i32, i8*, ...) @fprintf(i32 %34, i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.15, i64 0, i64 0))
%36 = load i32, i32* @stderr
%37 = call i32 (i32, i8*, ...) @fprintf(i32 %36, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.16, i64 0, i64 0))
%38 = load i32, i32* @stderr
%39 = call i32 (i32, i8*, ...) @fprintf(i32 %38, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.17, i64 0, i64 0))
%40 = load i32, i32* @stderr
%41 = call i32 (i32, i8*, ...) @fprintf(i32 %40, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.18, i64 0, i64 0))
%42 = load i32, i32* @stderr
%43 = call i32 (i32, i8*, ...) @fprintf(i32 %42, i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.19, i64 0, i64 0))
%44 = load i32, i32* @stderr
%45 = call i32 (i32, i8*, ...) @fprintf(i32 %44, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.20, i64 0, i64 0))
%46 = load i32, i32* @stderr
%47 = call i32 (i32, i8*, ...) @fprintf(i32 %46, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.21, i64 0, i64 0))
%48 = load i32, i32* @stderr
%49 = call i32 (i32, i8*, ...) @fprintf(i32 %48, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.22, i64 0, i64 0))
%50 = load i32, i32* @stderr
%51 = call i32 (i32, i8*, ...) @fprintf(i32 %50, i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.23, i64 0, i64 0))
%52 = load i32, i32* @stderr
%53 = call i32 (i32, i8*, ...) @fprintf(i32 %52, i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.24, i64 0, i64 0))
%54 = load i32, i32* @stderr
%55 = call i32 (i32, i8*, ...) @fprintf(i32 %54, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.25, i64 0, i64 0))
%56 = load i32, i32* @stderr
%57 = call i32 (i32, i8*, ...) @fprintf(i32 %56, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.26, i64 0, i64 0))
%58 = load i32, i32* @stderr
%59 = call i32 (i32, i8*, ...) @fprintf(i32 %58, i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.27, i64 0, i64 0))
%60 = load i32, i32* @stderr
%61 = call i32 (i32, i8*, ...) @fprintf(i32 %60, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.28, i64 0, i64 0))
%62 = load i32, i32* @stderr
%63 = call i32 (i32, i8*, ...) @fprintf(i32 %62, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.29, i64 0, i64 0), i32 -2)
%64 = load i32, i32* @stderr
%65 = call i32 (i32, i8*, ...) @fprintf(i32 %64, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.30, i64 0, i64 0), i32 0)
%66 = load i32, i32* @stderr
%67 = call i32 (i32, i8*, ...) @fprintf(i32 %66, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.31, i64 0, i64 0), i32 5)
%68 = load i32, i32* @stderr
%69 = call i32 (i32, i8*, ...) @fprintf(i32 %68, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.32, i64 0, i64 0), i32 6)
%70 = load i32, i32* @stderr
%71 = call i32 (i32, i8*, ...) @fprintf(i32 %70, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.33, i64 0, i64 0), i32 9)
%72 = load i32, i32* @stderr
%73 = call i32 (i32, i8*, ...) @fprintf(i32 %72, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.34, i64 0, i64 0), i32 10)
%74 = load i32, i32* @stderr
%75 = call i32 (i32, i8*, ...) @fprintf(i32 %74, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.35, i64 0, i64 0), i32 11)
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [69 x i8] c"Usage: %s[ -w <AFD working dir>][ -p <role>][ -u[ <user>]] [option]\0A\00"
@.str.1 = [29 x i8] c"\0A Other possible options:\0A\00"
@.str.2 = [46 x i8] c" -a only start AFD\0A\00"
@.str.3 = [75 x i8] c" -A only start AFD, but do not scan directories\0A\00"
@.str.4 = [54 x i8] c" -b blocks starting of AFD\0A\00"
@.str.5 = [59 x i8] c" -c[ <timeout in seconds>] only check if AFD is active\0A\00"
@.str.6 = [71 x i8] c" -C[ <timeout in seconds>] check if AFD is active, if not start it\0A\00"
@.str.7 = [58 x i8] c" -d only start afd_ctrl dialog\0A\00"
@.str.8 = [56 x i8] c" -h[ <timeout in seconds>] only check for heartbeat\0A\00"
@.str.9 = [78 x i8] c" -H[ <timeout in seconds>] check if heartbeat is active, if not start AFD\0A\00"
@.str.10 = [74 x i8] c" -i[1-9] initialize AFD, the optional number is the\0A\00"
@.str.11 = [78 x i8] c" level of initialization. The higher the number\0A\00"
@.str.12 = [78 x i8] c" the more data will be deleted. If no number is\0A\00"
@.str.13 = [76 x i8] c" specified the level will be 5. 9 is the same\0A\00"
@.str.14 = [44 x i8] c" as -I below.\0A\00"
@.str.15 = [70 x i8] c" -I initialize AFD, by deleting everything\0A\00"
@.str.16 = [56 x i8] c" except for etc directory\0A\00"
@.str.17 = [71 x i8] c" -n in combination with -i or -I just print\0A\00"
@.str.18 = [51 x i8] c" and do not execute.\0A\00"
@.str.19 = [63 x i8] c" -r removes blocking startup of AFD\0A\00"
@.str.20 = [44 x i8] c" -s shutdown AFD\0A\00"
@.str.21 = [51 x i8] c" -S silent AFD shutdown\0A\00"
@.str.22 = [55 x i8] c" -sn <name> Provide a service name.\0A\00"
@.str.23 = [72 x i8] c" -T check if data types match current binary\0A\00"
@.str.24 = [48 x i8] c" -z set shutdown bit\0A\00"
@.str.25 = [54 x i8] c" --help prints out this syntax\0A\00"
@.str.26 = [57 x i8] c" -v just print version number\0A\00"
@.str.27 = [52 x i8] c" --version show current version\0A\00"
@.str.28 = [29 x i8] c"\0A Possible return values:\0A\00"
@.str.29 = [45 x i8] c" %d No DIR_CONFIG.\0A\00"
@.str.30 = [40 x i8] c" %d Success.\0A\00"
@.str.31 = [46 x i8] c" %d AFD is active.\0A\00"
@.str.32 = [58 x i8] c" %d AFD is disabled by sysadm.\0A\00"
@.str.33 = [51 x i8] c" %d AFD not responding.\0A\00"
@.str.34 = [46 x i8] c" %d AFD not active.\0A\00"
@.str.35 = [51 x i8] c" %d Not on correct host.\0A\00"
define void @usage(i8* %0) {
%2 = load i32, i32* @stderr
%3 = tail call i32 (i32, i8*, ...) @fprintf(i32 %2, i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str, i64 0, i64 0), i8* %0)
%4 = load i32, i32* @stderr
%5 = tail call i32 (i32, i8*, ...) @fprintf(i32 %4, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.1, i64 0, i64 0))
%6 = load i32, i32* @stderr
%7 = tail call i32 (i32, i8*, ...) @fprintf(i32 %6, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.2, i64 0, i64 0))
%8 = load i32, i32* @stderr
%9 = tail call i32 (i32, i8*, ...) @fprintf(i32 %8, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.3, i64 0, i64 0))
%10 = load i32, i32* @stderr
%11 = tail call i32 (i32, i8*, ...) @fprintf(i32 %10, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.4, i64 0, i64 0))
%12 = load i32, i32* @stderr
%13 = tail call i32 (i32, i8*, ...) @fprintf(i32 %12, i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.5, i64 0, i64 0))
%14 = load i32, i32* @stderr
%15 = tail call i32 (i32, i8*, ...) @fprintf(i32 %14, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.6, i64 0, i64 0))
%16 = load i32, i32* @stderr
%17 = tail call i32 (i32, i8*, ...) @fprintf(i32 %16, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.7, i64 0, i64 0))
%18 = load i32, i32* @stderr
%19 = tail call i32 (i32, i8*, ...) @fprintf(i32 %18, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.8, i64 0, i64 0))
%20 = load i32, i32* @stderr
%21 = tail call i32 (i32, i8*, ...) @fprintf(i32 %20, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.9, i64 0, i64 0))
%22 = load i32, i32* @stderr
%23 = tail call i32 (i32, i8*, ...) @fprintf(i32 %22, i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.10, i64 0, i64 0))
%24 = load i32, i32* @stderr
%25 = tail call i32 (i32, i8*, ...) @fprintf(i32 %24, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.11, i64 0, i64 0))
%26 = load i32, i32* @stderr
%27 = tail call i32 (i32, i8*, ...) @fprintf(i32 %26, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.12, i64 0, i64 0))
%28 = load i32, i32* @stderr
%29 = tail call i32 (i32, i8*, ...) @fprintf(i32 %28, i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.13, i64 0, i64 0))
%30 = load i32, i32* @stderr
%31 = tail call i32 (i32, i8*, ...) @fprintf(i32 %30, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.14, i64 0, i64 0))
%32 = load i32, i32* @stderr
%33 = tail call i32 (i32, i8*, ...) @fprintf(i32 %32, i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.15, i64 0, i64 0))
%34 = load i32, i32* @stderr
%35 = tail call i32 (i32, i8*, ...) @fprintf(i32 %34, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.16, i64 0, i64 0))
%36 = load i32, i32* @stderr
%37 = tail call i32 (i32, i8*, ...) @fprintf(i32 %36, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.17, i64 0, i64 0))
%38 = load i32, i32* @stderr
%39 = tail call i32 (i32, i8*, ...) @fprintf(i32 %38, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.18, i64 0, i64 0))
%40 = load i32, i32* @stderr
%41 = tail call i32 (i32, i8*, ...) @fprintf(i32 %40, i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.19, i64 0, i64 0))
%42 = load i32, i32* @stderr
%43 = tail call i32 (i32, i8*, ...) @fprintf(i32 %42, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.20, i64 0, i64 0))
%44 = load i32, i32* @stderr
%45 = tail call i32 (i32, i8*, ...) @fprintf(i32 %44, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.21, i64 0, i64 0))
%46 = load i32, i32* @stderr
%47 = tail call i32 (i32, i8*, ...) @fprintf(i32 %46, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.22, i64 0, i64 0))
%48 = load i32, i32* @stderr
%49 = tail call i32 (i32, i8*, ...) @fprintf(i32 %48, i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.23, i64 0, i64 0))
%50 = load i32, i32* @stderr
%51 = tail call i32 (i32, i8*, ...) @fprintf(i32 %50, i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.24, i64 0, i64 0))
%52 = load i32, i32* @stderr
%53 = tail call i32 (i32, i8*, ...) @fprintf(i32 %52, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.25, i64 0, i64 0))
%54 = load i32, i32* @stderr
%55 = tail call i32 (i32, i8*, ...) @fprintf(i32 %54, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.26, i64 0, i64 0))
%56 = load i32, i32* @stderr
%57 = tail call i32 (i32, i8*, ...) @fprintf(i32 %56, i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.27, i64 0, i64 0))
%58 = load i32, i32* @stderr
%59 = tail call i32 (i32, i8*, ...) @fprintf(i32 %58, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.28, i64 0, i64 0))
%60 = load i32, i32* @stderr
%61 = tail call i32 (i32, i8*, ...) @fprintf(i32 %60, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.29, i64 0, i64 0), i32 -2)
%62 = load i32, i32* @stderr
%63 = tail call i32 (i32, i8*, ...) @fprintf(i32 %62, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.30, i64 0, i64 0), i32 0)
%64 = load i32, i32* @stderr
%65 = tail call i32 (i32, i8*, ...) @fprintf(i32 %64, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.31, i64 0, i64 0), i32 5)
%66 = load i32, i32* @stderr
%67 = tail call i32 (i32, i8*, ...) @fprintf(i32 %66, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.32, i64 0, i64 0), i32 6)
%68 = load i32, i32* @stderr
%69 = tail call i32 (i32, i8*, ...) @fprintf(i32 %68, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.33, i64 0, i64 0), i32 9)
%70 = load i32, i32* @stderr
%71 = tail call i32 (i32, i8*, ...) @fprintf(i32 %70, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.34, i64 0, i64 0), i32 10)
%72 = load i32, i32* @stderr
%73 = tail call i32 (i32, i8*, ...) @fprintf(i32 %72, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.35, i64 0, i64 0), i32 11)
ret void
}