#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("Usage:\n"
         "notify-desktop [OPTION...] <SUMMARY> [BODY] - create a notification\n"
         "\n"
         "Help Options:\n"
         "  -h, --help               Show help options\n"
         "  -v, --version            Version of the application\n"
         "\n");
  printf("Application Options:\n"
         "  -r, --replaces-id=ID     Specifies the notifications ID that will "
         "be replaced\n"
         "  -R, --id-file=PATH       Specifies the path to a file for storing "
         "the id that will be replace\n"
         "  -u, --urgency=LEVEL      Specifies the urgency level (low, normal, "
         "critical)\n"
         "  -t, --expire-time=TIME   Specifies the timeout in ms to expire the "
         "notification\n"
         "  -a, --app-name=APP_NAME  Specifies the app name for the icon\n"
         "  -i, --icon=ICON          Specifies an icon filename or stock icon "
         "to display\n"
         "  -c, --category=TYPE      Specifies the notification category\n"
         "\n");
  printf("Application Output:\n"
         "   On success:             Prints ID of sent notification and "
         "returns 0\n"
         "   On failure:             Prints error and returns 1\n"
         "\n");
}


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

x86 assembly (clang, -O2):
<show_help>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0xf9a(%rip),%rdi
call   1030 <puts@plt>
lea    0x11c2(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [191 x i8] c"Usage:\0Anotify-desktop [OPTION...] <SUMMARY> [BODY] - create a notification\0A\0AHelp Options:\0A -h, --help Show help options\0A -v, --version Version of the application\0A\0A\00"
@.str.1 = [565 x i8] c"Application Options:\0A -r, --replaces-id=ID Specifies the notifications ID that will be replaced\0A -R, --id-file=PATH Specifies the path to a file for storing the id that will be replace\0A -u, --urgency=LEVEL Specifies the urgency level (low, normal, critical)\0A -t, --expire-time=TIME Specifies the timeout in ms to expire the notification\0A -a, --app-name=APP_NAME Specifies the app name for the icon\0A -i, --icon=ICON Specifies an icon filename or stock icon to display\0A -c, --category=TYPE Specifies the notification category\0A\0A\00"
@.str.2 = [148 x i8] c"Application Output:\0A On success: Prints ID of sent notification and returns 0\0A On failure: Prints error and returns 1\0A\0A\00"
define void @show_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([191 x i8], [191 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([565 x i8], [565 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([148 x i8], [148 x i8]* @.str.2, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [190 x i8] c"Usage:\0Anotify-desktop [OPTION...] <SUMMARY> [BODY] - create a notification\0A\0AHelp Options:\0A -h, --help Show help options\0A -v, --version Version of the application\0A\00"
@str.3 = [564 x i8] c"Application Options:\0A -r, --replaces-id=ID Specifies the notifications ID that will be replaced\0A -R, --id-file=PATH Specifies the path to a file for storing the id that will be replace\0A -u, --urgency=LEVEL Specifies the urgency level (low, normal, critical)\0A -t, --expire-time=TIME Specifies the timeout in ms to expire the notification\0A -a, --app-name=APP_NAME Specifies the app name for the icon\0A -i, --icon=ICON Specifies an icon filename or stock icon to display\0A -c, --category=TYPE Specifies the notification category\0A\00"
@str.4 = [147 x i8] c"Application Output:\0A On success: Prints ID of sent notification and returns 0\0A On failure: Prints error and returns 1\0A\00"
define void @show_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([190 x i8], [190 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([564 x i8], [564 x i8]* @str.3, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([147 x i8], [147 x i8]* @str.4, i64 0, i64 0))
ret void
}