#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"
      "      --interface INTERFACE  Filename for generated interface.\n"
      "      -Werror                Turn all warnings into errors.\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.  If the `--interface' option is not\n"
      "specified, then an interface file may be generated in the first PATH\n"
      "specified.\n"
      "\n"
      "Report bugs to <http://quality.livecode.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 = [1491 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 --interface INTERFACE Filename for generated interface.\0A -Werror Turn all warnings into errors.\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. If the `--interface' option is not\0Aspecified, then an interface file may be generated in the first PATH\0Aspecified.\0A\0AReport bugs to <http://quality.livecode.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 ([1491 x i8], [1491 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 = [1491 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 --interface INTERFACE Filename for generated interface.\0A -Werror Turn all warnings into errors.\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. If the `--interface' option is not\0Aspecified, then an interface file may be generated in the first PATH\0Aspecified.\0A\0AReport bugs to <http://quality.livecode.com/>\0A\00"
define void @usage(i32 %0) {
%2 = load i32, i32* @stderr
%3 = tail call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([1491 x i8], [1491 x i8]* @.str, i64 0, i64 0))
%4 = tail call i32 @exit(i32 %0)
unreachable
}