#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 *, char *);
void usage(void) {
  printf("htmlex %s - a powerful hypertext markup language "
         "preprocessor\nCopyright (C) 2001, 2002, 2003 by David "
         "Capello\n\nUsage:\n  htmlex [ OPTIONS ] [ FILES... ]\n\nOptions:\n  "
         "-c   compiles all subsequent files (gets an output file name\n       "
         "from '-o' or generates a name with .html extension, see -E)\n  -o   "
         "adds output files\n  -a   adds arguments for the input files\n  -I   "
         "adds search include paths (you can use old '-i' parameter)\n  -E   "
         "changes the HTML extension used by -c option (.html by default)\n  "
         "-k   kills comments (old htmlex behavior)\n  -d   calculates "
         "dependencies of the input files (output to STDOUT)\n  -v   activates "
         "the verbose mode (to see what htmlex does)\n  -V   activates very "
         "verbose mode (to debug .htex files)\n  -h   displays help screen and "
         "exit\n  --   breaks -coaI arguments\n\nReport bugs and patches to "
         "https://github.com/dacap/htmlex\n",
         "0.4.4");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
lea    0x1235(%rip),%rsi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
lea    0xee9(%rip),%rdi
lea    0x1239(%rip),%rsi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [855 x i8] c"htmlex %s - a powerful hypertext markup language preprocessor\0ACopyright (C) 2001, 2002, 2003 by David Capello\0A\0AUsage:\0A htmlex [ OPTIONS ] [ FILES... ]\0A\0AOptions:\0A -c compiles all subsequent files (gets an output file name\0A from '-o' or generates a name with .html extension, see -E)\0A -o adds output files\0A -a adds arguments for the input files\0A -I adds search include paths (you can use old '-i' parameter)\0A -E changes the HTML extension used by -c option (.html by default)\0A -k kills comments (old htmlex behavior)\0A -d calculates dependencies of the input files (output to STDOUT)\0A -v activates the verbose mode (to see what htmlex does)\0A -V activates very verbose mode (to debug .htex files)\0A -h displays help screen and exit\0A -- breaks -coaI arguments\0A\0AReport bugs and patches to https://github.com/dacap/htmlex\0A\00"
@.str.1 = [6 x i8] c"0.4.4\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([855 x i8], [855 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [855 x i8] c"htmlex %s - a powerful hypertext markup language preprocessor\0ACopyright (C) 2001, 2002, 2003 by David Capello\0A\0AUsage:\0A htmlex [ OPTIONS ] [ FILES... ]\0A\0AOptions:\0A -c compiles all subsequent files (gets an output file name\0A from '-o' or generates a name with .html extension, see -E)\0A -o adds output files\0A -a adds arguments for the input files\0A -I adds search include paths (you can use old '-i' parameter)\0A -E changes the HTML extension used by -c option (.html by default)\0A -k kills comments (old htmlex behavior)\0A -d calculates dependencies of the input files (output to STDOUT)\0A -v activates the verbose mode (to see what htmlex does)\0A -V activates very verbose mode (to debug .htex files)\0A -h displays help screen and exit\0A -- breaks -coaI arguments\0A\0AReport bugs and patches to https://github.com/dacap/htmlex\0A\00"
@.str.1 = [6 x i8] c"0.4.4\00"
define void @usage() {
%1 = tail call i32 @printf(i8* getelementptr inbounds ([855 x i8], [855 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0))
ret void
}