#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*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void usage() {
  fprintf(
      stderr,
      "Usage: run-parts [OPTION]... DIRECTORY\n"
      "      --test          print script names which would run, but don't run "
      "them.\n"
      "      --list          print names of all valid files (can not be used "
      "with\n"
      "                      --test)\n"
      "  -v, --verbose       print script names before running them.\n"
      "      --report        print script names if they produce output.\n"
      "      --reverse       reverse execution order of scripts.\n"
      "      --exit-on-error exit as soon as a script returns with a non-zero "
      "exit\n"
      "                      code.\n"
      "      --lsbsysinit    validate filenames based on LSB sysinit specs.\n"
      "      --new-session   run each script in a separate process session\n"
      "      --regex=PATTERN validate filenames based on POSIX ERE pattern "
      "PATTERN.\n"
      "  -u, --umask=UMASK   sets umask to UMASK (octal), default is 022.\n"
      "  -a, --arg=ARGUMENT  pass ARGUMENT to scripts, use once for each "
      "argument.\n"
      "  -V, --version       output version information and exit.\n"
      "  -h, --help          display this help and exit.\n");
  exit(0);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2eb5(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
call   1030 <fprintf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
mov    0x2eb8(%rip),%rax
mov    (%rax),%edi
lea    0xecf(%rip),%rsi
call   1030 <fprintf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [978 x i8] c"Usage: run-parts [OPTION]... DIRECTORY\0A --test print script names which would run, but don't run them.\0A --list print names of all valid files (can not be used with\0A --test)\0A -v, --verbose print script names before running them.\0A --report print script names if they produce output.\0A --reverse reverse execution order of scripts.\0A --exit-on-error exit as soon as a script returns with a non-zero exit\0A code.\0A --lsbsysinit validate filenames based on LSB sysinit specs.\0A --new-session run each script in a separate process session\0A --regex=PATTERN validate filenames based on POSIX ERE pattern PATTERN.\0A -u, --umask=UMASK sets umask to UMASK (octal), default is 022.\0A -a, --arg=ARGUMENT pass ARGUMENT to scripts, use once for each argument.\0A -V, --version output version information and exit.\0A -h, --help display this help and exit.\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([978 x i8], [978 x i8]* @.str, i64 0, i64 0))
%3 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [978 x i8] c"Usage: run-parts [OPTION]... DIRECTORY\0A --test print script names which would run, but don't run them.\0A --list print names of all valid files (can not be used with\0A --test)\0A -v, --verbose print script names before running them.\0A --report print script names if they produce output.\0A --reverse reverse execution order of scripts.\0A --exit-on-error exit as soon as a script returns with a non-zero exit\0A code.\0A --lsbsysinit validate filenames based on LSB sysinit specs.\0A --new-session run each script in a separate process session\0A --regex=PATTERN validate filenames based on POSIX ERE pattern PATTERN.\0A -u, --umask=UMASK sets umask to UMASK (octal), default is 022.\0A -a, --arg=ARGUMENT pass ARGUMENT to scripts, use once for each argument.\0A -V, --version output version information and exit.\0A -h, --help display this help and exit.\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([978 x i8], [978 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 @exit(i32 0)
unreachable
}