#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*/ puts(char *);
void parseHelp(void) {
  puts("Usage: systray-toggler [OPTION]... [ENTRY]...\n");
  puts("Every [ENTRY] must begin with an -o");
  puts("  -o, --option=STRING      String that is displayed in the menu for "
       "this [ENTRY]");
  puts("  -c, --command=STRING     Command that is run for this [ENTRY] - "
       "optional");
  puts("  -i, --icon=PATH          Icon that is shown for this [ENTRY] - "
       "optional");
  puts("  -t, --tooltip=STRING     Tooltip that is shown for this [ENTRY] - "
       "optional\n");
  puts("Other options, all off by default:");
  puts("      --run-at-start       Run the first [ENTRY]'s command on startup");
  puts("      --run-on-same        Run the [ENTRY]'s command when it's "
       "selected in the menu,");
  puts("                           even if that's the currently selected "
       "[ENTRY]");
  puts("      --quit-menu-option   Show a 'Quit' option in the menu");
  puts("      --icons-in-menu      Show icons for options in the menu\n");
  puts("      --debug              Display debug info");
  puts("  -h, --help               Display this text");
}


x86 assembly (clang, -O0):
<parseHelp>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <puts@plt>
lea    0xf08(%rip),%rdi
call   1030 <puts@plt>
lea    0xf20(%rip),%rdi
call   1030 <puts@plt>
lea    0xf65(%rip),%rdi
call   1030 <puts@plt>
lea    0xfa4(%rip),%rdi
call   1030 <puts@plt>
lea    0xfe2(%rip),%rdi
call   1030 <puts@plt>
lea    0x1024(%rip),%rdi
call   1030 <puts@plt>
lea    0x103b(%rip),%rdi
call   1030 <puts@plt>
lea    0x1075(%rip),%rdi
call   1030 <puts@plt>
lea    0x10be(%rip),%rdi
call   1030 <puts@plt>
lea    0x10fb(%rip),%rdi
call   1030 <puts@plt>
lea    0x112b(%rip),%rdi
call   1030 <puts@plt>
lea    0x115e(%rip),%rdi
call   1030 <puts@plt>
lea    0x1180(%rip),%rdi
call   1030 <puts@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<parseHelp>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0xf0b(%rip),%rdi
call   1030 <puts@plt>
lea    0xf23(%rip),%rdi
call   1030 <puts@plt>
lea    0xf68(%rip),%rdi
call   1030 <puts@plt>
lea    0xfa7(%rip),%rdi
call   1030 <puts@plt>
lea    0xfe5(%rip),%rdi
call   1030 <puts@plt>
lea    0x1027(%rip),%rdi
call   1030 <puts@plt>
lea    0x103e(%rip),%rdi
call   1030 <puts@plt>
lea    0x1078(%rip),%rdi
call   1030 <puts@plt>
lea    0x10c1(%rip),%rdi
call   1030 <puts@plt>
lea    0x10fe(%rip),%rdi
call   1030 <puts@plt>
lea    0x112e(%rip),%rdi
call   1030 <puts@plt>
lea    0x1161(%rip),%rdi
call   1030 <puts@plt>
lea    0x1183(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [47 x i8] c"Usage: systray-toggler [OPTION]... [ENTRY]...\0A\00"
@.str.1 = [36 x i8] c"Every [ENTRY] must begin with an -o\00"
@.str.2 = [81 x i8] c" -o, --option=STRING String that is displayed in the menu for this [ENTRY]\00"
@.str.3 = [75 x i8] c" -c, --command=STRING Command that is run for this [ENTRY] - optional\00"
@.str.4 = [74 x i8] c" -i, --icon=PATH Icon that is shown for this [ENTRY] - optional\00"
@.str.5 = [78 x i8] c" -t, --tooltip=STRING Tooltip that is shown for this [ENTRY] - optional\0A\00"
@.str.6 = [35 x i8] c"Other options, all off by default:\00"
@.str.7 = [70 x i8] c" --run-at-start Run the first [ENTRY]'s command on startup\00"
@.str.8 = [85 x i8] c" --run-on-same Run the [ENTRY]'s command when it's selected in the menu,\00"
@.str.9 = [73 x i8] c" even if that's the currently selected [ENTRY]\00"
@.str.10 = [60 x i8] c" --quit-menu-option Show a 'Quit' option in the menu\00"
@.str.11 = [63 x i8] c" --icons-in-menu Show icons for options in the menu\0A\00"
@.str.12 = [46 x i8] c" --debug Display debug info\00"
@.str.13 = [45 x i8] c" -h, --help Display this text\00"
define void @parseHelp() {
%1 = call i32 @puts(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @puts(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @puts(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @puts(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.3, i64 0, i64 0))
%5 = call i32 @puts(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.4, i64 0, i64 0))
%6 = call i32 @puts(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.5, i64 0, i64 0))
%7 = call i32 @puts(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.6, i64 0, i64 0))
%8 = call i32 @puts(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.7, i64 0, i64 0))
%9 = call i32 @puts(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.8, i64 0, i64 0))
%10 = call i32 @puts(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.9, i64 0, i64 0))
%11 = call i32 @puts(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.10, i64 0, i64 0))
%12 = call i32 @puts(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.11, i64 0, i64 0))
%13 = call i32 @puts(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.12, i64 0, i64 0))
%14 = call i32 @puts(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.13, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [47 x i8] c"Usage: systray-toggler [OPTION]... [ENTRY]...\0A\00"
@.str.1 = [36 x i8] c"Every [ENTRY] must begin with an -o\00"
@.str.2 = [81 x i8] c" -o, --option=STRING String that is displayed in the menu for this [ENTRY]\00"
@.str.3 = [75 x i8] c" -c, --command=STRING Command that is run for this [ENTRY] - optional\00"
@.str.4 = [74 x i8] c" -i, --icon=PATH Icon that is shown for this [ENTRY] - optional\00"
@.str.5 = [78 x i8] c" -t, --tooltip=STRING Tooltip that is shown for this [ENTRY] - optional\0A\00"
@.str.6 = [35 x i8] c"Other options, all off by default:\00"
@.str.7 = [70 x i8] c" --run-at-start Run the first [ENTRY]'s command on startup\00"
@.str.8 = [85 x i8] c" --run-on-same Run the [ENTRY]'s command when it's selected in the menu,\00"
@.str.9 = [73 x i8] c" even if that's the currently selected [ENTRY]\00"
@.str.10 = [60 x i8] c" --quit-menu-option Show a 'Quit' option in the menu\00"
@.str.11 = [63 x i8] c" --icons-in-menu Show icons for options in the menu\0A\00"
@.str.12 = [46 x i8] c" --debug Display debug info\00"
@.str.13 = [45 x i8] c" -h, --help Display this text\00"
define void @parseHelp() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @.str.1, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([81 x i8], [81 x i8]* @.str.2, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @.str.3, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @.str.4, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @.str.5, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.6, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @.str.7, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([85 x i8], [85 x i8]* @.str.8, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @.str.9, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.10, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @.str.11, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.12, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.13, i64 0, i64 0))
ret void
}