#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);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void usage(int status) {
  fprintf(
      stderr,
      "Usage: lc-compile [OPTION ...] --output OUTFILE [--] LCBFILE\n"
      "       lc-compile [OPTION ...] --outputc OUTFILE [--] LCBFILE\n"
      "       lc-compile [OPTION ...] --deps DEPTYPE [--] LCBFILE ... LCBFILE\n"
      "\n"
      "Compile a LiveCode Builder source file.\n"
      "\n"
      "Options:\n"
      "      --modulepath PATH    Search PATH for module interface files.\n"
      "      --output OUTFILE     Filename for bytecode output.\n"
      "      --outputc OUTFILE    Filename for C source code output.\n"
      "      --deps make          Generate lci file dependencies in make "
      "format for\n"
      "                           the input source files.\n"
      "      --deps order         Generate the order the input source files "
      "should be\n"
      "                           compiled in.\n"
      "      --deps changed-order Generate the order the input source files "
      "should be\n"
      "                           compiled in, but only if they need "
      "recompiling.\n"
      "      --manifest MANIFEST  Filename for generated manifest.\n"
      "  -v, --verbose            Output extra debugging information.\n"
      "  -h, --help               Print this message.\n"
      "  --                       Treat all remaining arguments as filenames.\n"
      "\n"
      "More than one `--modulepath' option may be specified.  The PATHs are\n"
      "searched in the order they appear.  An interface file may be generated "
      "in\n"
      "the first PATH specified.\n"
      "\n"
      "Report bugs to <http://quality.runrev.com/>\n");
  exit(status);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
mov    0x2eae(%rip),%rax
mov    (%rax),%edi
lea    0xec5(%rip),%rsi
call   1030 <fprintf@plt>
mov    -0x4(%rbp),%edi
call   1040 <exit@plt>

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

LLVM IR (-O0):
@stderr = global i32 0
@.str = [1289 x i8] c"Usage: lc-compile [OPTION ...] --output OUTFILE [--] LCBFILE\0A lc-compile [OPTION ...] --outputc OUTFILE [--] LCBFILE\0A lc-compile [OPTION ...] --deps DEPTYPE [--] LCBFILE ... LCBFILE\0A\0ACompile a LiveCode Builder source file.\0A\0AOptions:\0A --modulepath PATH Search PATH for module interface files.\0A --output OUTFILE Filename for bytecode output.\0A --outputc OUTFILE Filename for C source code output.\0A --deps make Generate lci file dependencies in make format for\0A the input source files.\0A --deps order Generate the order the input source files should be\0A compiled in.\0A --deps changed-order Generate the order the input source files should be\0A compiled in, but only if they need recompiling.\0A --manifest MANIFEST Filename for generated manifest.\0A -v, --verbose Output extra debugging information.\0A -h, --help Print this message.\0A -- Treat all remaining arguments as filenames.\0A\0AMore than one `--modulepath' option may be specified. The PATHs are\0Asearched in the order they appear. An interface file may be generated in\0Athe first PATH specified.\0A\0AReport bugs to <http://quality.runrev.com/>\0A\00"
define void @usage(i32 %0) {
%2 = alloca i32
store i32 %0, i32* %2
%3 = load i32, i32* @stderr
%4 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([1289 x i8], [1289 x i8]* @.str, i64 0, i64 0))
%5 = load i32, i32* %2
%6 = call i32 @exit(i32 %5)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [1289 x i8] c"Usage: lc-compile [OPTION ...] --output OUTFILE [--] LCBFILE\0A lc-compile [OPTION ...] --outputc OUTFILE [--] LCBFILE\0A lc-compile [OPTION ...] --deps DEPTYPE [--] LCBFILE ... LCBFILE\0A\0ACompile a LiveCode Builder source file.\0A\0AOptions:\0A --modulepath PATH Search PATH for module interface files.\0A --output OUTFILE Filename for bytecode output.\0A --outputc OUTFILE Filename for C source code output.\0A --deps make Generate lci file dependencies in make format for\0A the input source files.\0A --deps order Generate the order the input source files should be\0A compiled in.\0A --deps changed-order Generate the order the input source files should be\0A compiled in, but only if they need recompiling.\0A --manifest MANIFEST Filename for generated manifest.\0A -v, --verbose Output extra debugging information.\0A -h, --help Print this message.\0A -- Treat all remaining arguments as filenames.\0A\0AMore than one `--modulepath' option may be specified. The PATHs are\0Asearched in the order they appear. An interface file may be generated in\0Athe first PATH specified.\0A\0AReport bugs to <http://quality.runrev.com/>\0A\00"
define void @usage(i32 %0) {
%2 = load i32, i32* @stderr
%3 = tail call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([1289 x i8], [1289 x i8]* @.str, i64 0, i64 0))
%4 = tail call i32 @exit(i32 %0)
unreachable
}