#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*/ printf(char *, ...);
void show_help(void) {
  printf(
      "%s\n\n%s\nThe command syntax is:\n\n",
      "Brandy Basic V Interpreter Version "
      "1.20.1"
      " ("
      "Linux"
      ") "
      "24-Sep-2014",
      "Brandy is free software; you can redistribute it and/or modify\r\n"
      "it under the terms of the GNU General Public License as published by\r\n"
      "the Free Software Foundation. See the file COPYING for further "
      "details.\r\n");
  printf("    brandy [<options>]\n\n");
  printf("where <options> is one or more of the following options:\n");
  printf("  -help          Print this message\n");
  printf("  -size <size>   Set Basic workspace size to <size> bytes when "
         "starting\n");
  printf("  -path <list>   Look for programs and libraries in directories in "
         "list <list>\n");
  printf("  -load <file>   Load Basic program <file> when the interpreter "
         "starts\n");
  printf("  -chain <file>  Run Basic program <file> and stay in interpreter "
         "when it ends\n");
  printf("  -quit <file>   Run Basic program <file> and leave interpreter when "
         "it ends\n");
  printf("  -lib <file>    Load the Basic library <file> when the interpreter "
         "starts\n");
  printf(
      "  -ignore        Ignore 'unsupported feature' errors where possible\n");
  printf("  <file>         Run Basic program <file> and stay in interpreter "
         "when it ends\n\n");
}


x86 assembly (clang, -O0):
<show_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
lea    0xefe(%rip),%rsi
lea    0xf35(%rip),%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xff7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1002(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x102e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1045(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1080(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10c2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10fc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x113e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x117e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11bc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11f3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<show_help>:
push   %rax
lea    0xed8(%rip),%rdi
lea    0xef1(%rip),%rsi
lea    0xf28(%rip),%rdx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xfea(%rip),%rdi
call   1030 <puts@plt>
lea    0xff6(%rip),%rdi
call   1030 <puts@plt>
lea    0x1023(%rip),%rdi
call   1030 <puts@plt>
lea    0x103b(%rip),%rdi
call   1030 <puts@plt>
lea    0x1077(%rip),%rdi
call   1030 <puts@plt>
lea    0x10ba(%rip),%rdi
call   1030 <puts@plt>
lea    0x10f5(%rip),%rdi
call   1030 <puts@plt>
lea    0x1138(%rip),%rdi
call   1030 <puts@plt>
lea    0x1179(%rip),%rdi
call   1030 <puts@plt>
lea    0x11b8(%rip),%rdi
call   1030 <puts@plt>
lea    0x11f0(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [32 x i8] c"%s\0A\0A%s\0AThe command syntax is:\0A\0A\00"
@.str.1 = [62 x i8] c"Brandy Basic V Interpreter Version 1.20.1 (Linux) 24-Sep-2014\00"
@.str.2 = [208 x i8] c"Brandy is free software; you can redistribute it and/or modify\0D\0Ait under the terms of the GNU General Public License as published by\0D\0Athe Free Software Foundation. See the file COPYING for further details.\0D\0A\00"
@.str.3 = [25 x i8] c" brandy [<options>]\0A\0A\00"
@.str.4 = [58 x i8] c"where <options> is one or more of the following options:\0A\00"
@.str.5 = [37 x i8] c" -help Print this message\0A\00"
@.str.6 = [73 x i8] c" -size <size> Set Basic workspace size to <size> bytes when starting\0A\00"
@.str.7 = [80 x i8] c" -path <list> Look for programs and libraries in directories in list <list>\0A\00"
@.str.8 = [72 x i8] c" -load <file> Load Basic program <file> when the interpreter starts\0A\00"
@.str.9 = [80 x i8] c" -chain <file> Run Basic program <file> and stay in interpreter when it ends\0A\00"
@.str.10 = [78 x i8] c" -quit <file> Run Basic program <file> and leave interpreter when it ends\0A\00"
@.str.11 = [76 x i8] c" -lib <file> Load the Basic library <file> when the interpreter starts\0A\00"
@.str.12 = [69 x i8] c" -ignore Ignore 'unsupported feature' errors where possible\0A\00"
@.str.13 = [81 x i8] c" <file> Run Basic program <file> and stay in interpreter when it ends\0A\0A\00"
define void @show_help() {
%1 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([208 x i8], [208 x i8]* @.str.2, i64 0, i64 0))
%2 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.3, i64 0, i64 0))
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.4, i64 0, i64 0))
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.5, i64 0, i64 0))
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.6, i64 0, i64 0))
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.7, i64 0, i64 0))
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.8, i64 0, i64 0))
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.9, i64 0, i64 0))
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.10, i64 0, i64 0))
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.11, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.12, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.13, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [32 x i8] c"%s\0A\0A%s\0AThe command syntax is:\0A\0A\00"
@.str.1 = [62 x i8] c"Brandy Basic V Interpreter Version 1.20.1 (Linux) 24-Sep-2014\00"
@.str.2 = [208 x i8] c"Brandy is free software; you can redistribute it and/or modify\0D\0Ait under the terms of the GNU General Public License as published by\0D\0Athe Free Software Foundation. See the file COPYING for further details.\0D\0A\00"
@str = [24 x i8] c" brandy [<options>]\0A\00"
@str.14 = [57 x i8] c"where <options> is one or more of the following options:\00"
@str.15 = [36 x i8] c" -help Print this message\00"
@str.16 = [72 x i8] c" -size <size> Set Basic workspace size to <size> bytes when starting\00"
@str.17 = [79 x i8] c" -path <list> Look for programs and libraries in directories in list <list>\00"
@str.18 = [71 x i8] c" -load <file> Load Basic program <file> when the interpreter starts\00"
@str.19 = [79 x i8] c" -chain <file> Run Basic program <file> and stay in interpreter when it ends\00"
@str.20 = [77 x i8] c" -quit <file> Run Basic program <file> and leave interpreter when it ends\00"
@str.21 = [75 x i8] c" -lib <file> Load the Basic library <file> when the interpreter starts\00"
@str.22 = [68 x i8] c" -ignore Ignore 'unsupported feature' errors where possible\00"
@str.23 = [80 x i8] c" <file> Run Basic program <file> and stay in interpreter when it ends\0A\00"
define void @show_help() {
%1 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([208 x i8], [208 x i8]* @.str.2, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @str, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.14, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @str.15, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.16, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.17, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.18, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.19, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.20, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.21, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.22, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([80 x i8], [80 x i8]* @str.23, i64 0, i64 0))
ret void
}