#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 /*<<< orphan*/);
int /*<<< orphan*/ printf(char *);
void help_text(void) {
  printf("Usage:  ferret [-memsize Mflts] [-batch [outfile]] [-server] "
         "[-secure] [-gif] [-unmapped] [-help] [-nojnl] [-noverify]  [-verify] "
         "[-script [args]]\n"
         "   -memsize:  specify the memory cache size (default 25.6) in mega "
         "(10^6) flts where a flt\n"
         "              is 8 bytes in double-precision Ferret\n"
         "   -batch:  output directly to metafile \"outfile\" w/out X windows\n"
         "   -unmapped:  use invisible output windows (superceded by -batch)\n"
         "   -gif:  output to GIF file w/o X windows only w/ FRAME command\n"
         "   -secure:  run securely -- don't allow system commands\n"
         "   -server:  run in server mode -- don't stop on message commands\n"
         "   -help:  obtain this listing\n"
         "   -nojnl:  on startup don't open a journal file (can be turned on "
         "later with SET MODE JOURNAL\n"
         "   -noverify:  on startup turn off verify mode (can be turned on "
         "later with SET MODE VERIFY\n"
         "   -verify:  on startup turn on the verify mode for all scripts in "
         "session (Cannot be changed in this session. Overrides -noverify.)\n"
         "   -script scriptname [arguments]: execute the specified script and "
         "exit: SPECIFY THIS LAST\n"
         "   -version lists the version number of Ferret and stops. \n");
  exit(0);
}


x86 assembly (clang, -O0):
<help_text>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<help_text>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [1114 x i8] c"Usage: ferret [-memsize Mflts] [-batch [outfile]] [-server] [-secure] [-gif] [-unmapped] [-help] [-nojnl] [-noverify] [-verify] [-script [args]]\0A -memsize: specify the memory cache size (default 25.6) in mega (10^6) flts where a flt\0A is 8 bytes in double-precision Ferret\0A -batch: output directly to metafile \22outfile\22 w/out X windows\0A -unmapped: use invisible output windows (superceded by -batch)\0A -gif: output to GIF file w/o X windows only w/ FRAME command\0A -secure: run securely -- don't allow system commands\0A -server: run in server mode -- don't stop on message commands\0A -help: obtain this listing\0A -nojnl: on startup don't open a journal file (can be turned on later with SET MODE JOURNAL\0A -noverify: on startup turn off verify mode (can be turned on later with SET MODE VERIFY\0A -verify: on startup turn on the verify mode for all scripts in session (Cannot be changed in this session. Overrides -noverify.)\0A -script scriptname [arguments]: execute the specified script and exit: SPECIFY THIS LAST\0A -version lists the version number of Ferret and stops. \0A\00"
define void @help_text() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1114 x i8], [1114 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@str = [1113 x i8] c"Usage: ferret [-memsize Mflts] [-batch [outfile]] [-server] [-secure] [-gif] [-unmapped] [-help] [-nojnl] [-noverify] [-verify] [-script [args]]\0A -memsize: specify the memory cache size (default 25.6) in mega (10^6) flts where a flt\0A is 8 bytes in double-precision Ferret\0A -batch: output directly to metafile \22outfile\22 w/out X windows\0A -unmapped: use invisible output windows (superceded by -batch)\0A -gif: output to GIF file w/o X windows only w/ FRAME command\0A -secure: run securely -- don't allow system commands\0A -server: run in server mode -- don't stop on message commands\0A -help: obtain this listing\0A -nojnl: on startup don't open a journal file (can be turned on later with SET MODE JOURNAL\0A -noverify: on startup turn off verify mode (can be turned on later with SET MODE VERIFY\0A -verify: on startup turn on the verify mode for all scripts in session (Cannot be changed in this session. Overrides -noverify.)\0A -script scriptname [arguments]: execute the specified script and exit: SPECIFY THIS LAST\0A -version lists the version number of Ferret and stops. \00"
define void @help_text() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1113 x i8], [1113 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @exit(i32 0)
unreachable
}