#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 *toolname) {
  fprintf(stderr,
          "spill version %s - segregated package install logical linker\n"
          "Copyright (C) Richard P. Curnow  2003-2006\n"
          "\n"
          "spill comes with ABSOLUTELY NO WARRANTY.\n"
          "This is free software, and you are welcome to redistribute it\n"
          "under certain conditions; see the GNU General Public License for "
          "details.\n",
          "dev");
  fprintf(
      stderr,
      "\n"
      "Printing this help\n"
      "Syntax : spill -h\n"
      "  -h,  --help             Show this help message then exit\n"
      "Showing just the version\n"
      "Syntax : spill -V\n"
      "  -V,  --version          Show the program version then exit\n"
      "\n"
      "---------------------------\n"
      "Options for package install (default operation)\n"
      "---------------------------\n"
      "Syntax : spill [-f] [-n] [-q] [-x]\n"
      "               [-l <file> | --conflict-list=<file>\n"
      "               <tool_install_path> [<link_install_path>] "
      "[<ignore_path>...]\n"
      "  -f,  --force            Attempt install even if expected "
      "subdirectories (bin,sbin,lib) are missing\n"
      "  -r,  --retain           Don't clean out links to older version of the "
      "same package first\n"
      "  -n,  --dry_run          Don't do install, just report potential link "
      "conflicts\n"
      "  -q,  --quiet            Be quiet when installing, only show errors\n"
      "  -x,  --expand           Expand any existing links to directories when "
      "needed\n"
      "  -o,  --override         Override any existing links that conflict "
      "with the new package\n"
      "  -l <conflict_file>\n"
      "  --conflict-list=<file>  Filename to which conflicting destination "
      "paths are written\n"
      "\n"
      "<tool_install_path>       Directory specified as --prefix when package "
      "was built\n"
      "                          (relative links are created if this is given "
      "as a relative path)\n"
      "<link_install_path>       Base directory where links are created (e.g. "
      "/usr) (default is \".\")\n"
      "<ignore_path>...          Space-separated list of relative paths not to "
      "be linked\n"
      "\n"
      "---------------------------\n"
      "Options for package removal\n"
      "---------------------------\n"
      "Syntax : spill -d [-q] <tool_install_path> [<link_install_path>]\n"
      "  -q,  --quiet            Be quiet, only show errors\n"
      "<tool_install_path> and <link_install_path> as above.\n"
      "\n"
      "\n"
      "Syntax : spill -D [-q] <package_name> <link_install_path>\n"
      "  -q,  --quiet            Be quiet, only show errors\n"
      "<link_install_path> as above.\n"
      "<package_name> is the name of package already symlinked.\n"
      "\n");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    0x2ebd(%rip),%rax
mov    (%rax),%edi
lea    0xed4(%rip),%rsi
lea    0xfe8(%rip),%rdx
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2e9f(%rip),%rax
mov    (%rax),%edi
lea    0xfd5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
push   %rbx
mov    0x2ec8(%rip),%rbx
mov    (%rbx),%edi
lea    0xedf(%rip),%rsi
lea    0xff3(%rip),%rdx
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xfe7(%rip),%rsi
xor    %eax,%eax
pop    %rbx
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [283 x i8] c"spill version %s - segregated package install logical linker\0ACopyright (C) Richard P. Curnow 2003-2006\0A\0Aspill comes with ABSOLUTELY NO WARRANTY.\0AThis is free software, and you are welcome to redistribute it\0Aunder certain conditions; see the GNU General Public License for details.\0A\00"
@.str.1 = [4 x i8] c"dev\00"
@.str.2 = [1893 x i8] c"\0APrinting this help\0ASyntax : spill -h\0A -h, --help Show this help message then exit\0AShowing just the version\0ASyntax : spill -V\0A -V, --version Show the program version then exit\0A\0A---------------------------\0AOptions for package install (default operation)\0A---------------------------\0ASyntax : spill [-f] [-n] [-q] [-x]\0A [-l <file> | --conflict-list=<file>\0A <tool_install_path> [<link_install_path>] [<ignore_path>...]\0A -f, --force Attempt install even if expected subdirectories (bin,sbin,lib) are missing\0A -r, --retain Don't clean out links to older version of the same package first\0A -n, --dry_run Don't do install, just report potential link conflicts\0A -q, --quiet Be quiet when installing, only show errors\0A -x, --expand Expand any existing links to directories when needed\0A -o, --override Override any existing links that conflict with the new package\0A -l <conflict_file>\0A --conflict-list=<file> Filename to which conflicting destination paths are written\0A\0A<tool_install_path> Directory specified as --prefix when package was built\0A (relative links are created if this is given as a relative path)\0A<link_install_path> Base directory where links are created (e.g. /usr) (default is \22.\22)\0A<ignore_path>... Space-separated list of relative paths not to be linked\0A\0A---------------------------\0AOptions for package removal\0A---------------------------\0ASyntax : spill -d [-q] <tool_install_path> [<link_install_path>]\0A -q, --quiet Be quiet, only show errors\0A<tool_install_path> and <link_install_path> as above.\0A\0A\0ASyntax : spill -D [-q] <package_name> <link_install_path>\0A -q, --quiet Be quiet, only show errors\0A<link_install_path> as above.\0A<package_name> is the name of package already symlinked.\0A\0A\00"
define void @usage(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i32, i32* @stderr
%4 = call i32 (i32, i8*, ...) @fprintf(i32 %3, i8* getelementptr inbounds ([283 x i8], [283 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%5 = load i32, i32* @stderr
%6 = call i32 (i32, i8*, ...) @fprintf(i32 %5, i8* getelementptr inbounds ([1893 x i8], [1893 x i8]* @.str.2, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [283 x i8] c"spill version %s - segregated package install logical linker\0ACopyright (C) Richard P. Curnow 2003-2006\0A\0Aspill comes with ABSOLUTELY NO WARRANTY.\0AThis is free software, and you are welcome to redistribute it\0Aunder certain conditions; see the GNU General Public License for details.\0A\00"
@.str.1 = [4 x i8] c"dev\00"
@.str.2 = [1893 x i8] c"\0APrinting this help\0ASyntax : spill -h\0A -h, --help Show this help message then exit\0AShowing just the version\0ASyntax : spill -V\0A -V, --version Show the program version then exit\0A\0A---------------------------\0AOptions for package install (default operation)\0A---------------------------\0ASyntax : spill [-f] [-n] [-q] [-x]\0A [-l <file> | --conflict-list=<file>\0A <tool_install_path> [<link_install_path>] [<ignore_path>...]\0A -f, --force Attempt install even if expected subdirectories (bin,sbin,lib) are missing\0A -r, --retain Don't clean out links to older version of the same package first\0A -n, --dry_run Don't do install, just report potential link conflicts\0A -q, --quiet Be quiet when installing, only show errors\0A -x, --expand Expand any existing links to directories when needed\0A -o, --override Override any existing links that conflict with the new package\0A -l <conflict_file>\0A --conflict-list=<file> Filename to which conflicting destination paths are written\0A\0A<tool_install_path> Directory specified as --prefix when package was built\0A (relative links are created if this is given as a relative path)\0A<link_install_path> Base directory where links are created (e.g. /usr) (default is \22.\22)\0A<ignore_path>... Space-separated list of relative paths not to be linked\0A\0A---------------------------\0AOptions for package removal\0A---------------------------\0ASyntax : spill -d [-q] <tool_install_path> [<link_install_path>]\0A -q, --quiet Be quiet, only show errors\0A<tool_install_path> and <link_install_path> as above.\0A\0A\0ASyntax : spill -D [-q] <package_name> <link_install_path>\0A -q, --quiet Be quiet, only show errors\0A<link_install_path> as above.\0A<package_name> is the name of package already symlinked.\0A\0A\00"
define void @usage(i8* nocapture readnone %0) {
%2 = load i32, i32* @stderr
%3 = tail call i32 (i32, i8*, ...) @fprintf(i32 %2, i8* getelementptr inbounds ([283 x i8], [283 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%4 = load i32, i32* @stderr
%5 = tail call i32 (i32, i8*, ...) @fprintf(i32 %4, i8* getelementptr inbounds ([1893 x i8], [1893 x i8]* @.str.2, i64 0, i64 0))
ret void
}