#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 printUsage(void) {
  fprintf(stderr, "Usage: xcode-select [options]\n\n");
  fprintf(
      stderr,
      "xcode-select is used to set up path to the active developer directory.\n"
      "This affects both toolchain commands (such as clang or make) and "
      "Xcode-specific\n"
      "tools (such as xcodebuild).\n\n");
  fprintf(stderr,
          "Options:\n"
          "  -h, --help                  print this help message\n"
          "  -p, --print-path            print the path of the active "
          "developer directory\n"
          "  -s <path>, --switch <path>  change the path of the active "
          "developer directory\n"
          "  --install                   trigger the installation of command "
          "line developer tools\n"
          "  -v, --version               print the version of this tool\n"
          "  -r, --reset                 reset to the default developer "
          "directory\n");
}


x86 assembly (clang, -O0):
<printUsage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x2eb0(%rip),%rax
mov    (%rax),%edi
lea    0xee7(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x2e9b(%rip),%rax
mov    (%rax),%edi
lea    0xf87(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<printUsage>:
push   %rbx
mov    0x2ec8(%rip),%rbx
mov    (%rbx),%edi
lea    0xedf(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xef1(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf98(%rip),%rsi
pop    %rbx
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [32 x i8] c"Usage: xcode-select [options]\0A\0A\00"
@.str.1 = [181 x i8] c"xcode-select is used to set up path to the active developer directory.\0AThis affects both toolchain commands (such as clang or make) and Xcode-specific\0Atools (such as xcodebuild).\0A\0A\00"
@.str.2 = [442 x i8] c"Options:\0A -h, --help print this help message\0A -p, --print-path print the path of the active developer directory\0A -s <path>, --switch <path> change the path of the active developer directory\0A --install trigger the installation of command line developer tools\0A -v, --version print the version of this tool\0A -r, --reset reset to the default developer directory\0A\00"
define void @printUsage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stderr
%4 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([181 x i8], [181 x i8]* @.str.1, i64 0, i64 0))
%5 = load i32, i32* @stderr
%6 = call i32 @fprintf(i32 %5, i8* getelementptr inbounds ([442 x i8], [442 x i8]* @.str.2, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [32 x i8] c"Usage: xcode-select [options]\0A\0A\00"
@.str.1 = [181 x i8] c"xcode-select is used to set up path to the active developer directory.\0AThis affects both toolchain commands (such as clang or make) and Xcode-specific\0Atools (such as xcodebuild).\0A\0A\00"
@.str.2 = [442 x i8] c"Options:\0A -h, --help print this help message\0A -p, --print-path print the path of the active developer directory\0A -s <path>, --switch <path> change the path of the active developer directory\0A --install trigger the installation of command line developer tools\0A -v, --version print the version of this tool\0A -r, --reset reset to the default developer directory\0A\00"
define void @printUsage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stderr
%4 = tail call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([181 x i8], [181 x i8]* @.str.1, i64 0, i64 0))
%5 = load i32, i32* @stderr
%6 = tail call i32 @fprintf(i32 %5, i8* getelementptr inbounds ([442 x i8], [442 x i8]* @.str.2, i64 0, i64 0))
ret void
}