#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*/ display_version();
int /*<<< orphan*/ printf(char *, char *);
void display_help(void) {
  display_version();
  printf("\n%s\n",
         "Options:\n"
         "  -v, --verbose\t\t\t Enable verbosity during output.\n"
         "  -s, --screenshot\t\t Take a screenshot.\n"
         "  -n, --no-logo\t\t\t Print output without a logo.\n"
         "  -D, --distro [DISTRO]\t\t Print output with DISTRO's logo.\n"
         "  -E, --suppress-errors\t\t Suppress error output.\n"
         "  -p, --portrait\t\t Print output in portrait mode.\n"
         "  -V, --version\t\t\t Output screenfetch-c's version and exit.\n"
         "  -h, --help\t\t\t Output this help information.\n"
         "  -L, --logo-only [DISTRO]\t Output only DISTRO's logo.\n"
         "For more information, consult screenfetch-c's man page.\n");
  return;
}


x86 assembly (clang, -O0):
<display_help>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   1030 <display_version@plt>
lea    0xece(%rip),%rdi
lea    0xecc(%rip),%rsi
call   1040 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<display_help>:
push   %rax
xor    %eax,%eax
call   1030 <display_version@plt>
lea    0xed1(%rip),%rdi
lea    0xecf(%rip),%rsi
pop    %rax
jmp    1040 <printf@plt>

LLVM IR (-O0):
@.str = [5 x i8] c"\0A%s\0A\00"
@.str.1 = [524 x i8] c"Options:\0A -v, --verbose\09\09\09 Enable verbosity during output.\0A -s, --screenshot\09\09 Take a screenshot.\0A -n, --no-logo\09\09\09 Print output without a logo.\0A -D, --distro [DISTRO]\09\09 Print output with DISTRO's logo.\0A -E, --suppress-errors\09\09 Suppress error output.\0A -p, --portrait\09\09 Print output in portrait mode.\0A -V, --version\09\09\09 Output screenfetch-c's version and exit.\0A -h, --help\09\09\09 Output this help information.\0A -L, --logo-only [DISTRO]\09 Output only DISTRO's logo.\0AFor more information, consult screenfetch-c's man page.\0A\00"
define void @display_help() {
%1 = call i32 (...) @display_version()
%2 = call i32 @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([524 x i8], [524 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [5 x i8] c"\0A%s\0A\00"
@.str.1 = [524 x i8] c"Options:\0A -v, --verbose\09\09\09 Enable verbosity during output.\0A -s, --screenshot\09\09 Take a screenshot.\0A -n, --no-logo\09\09\09 Print output without a logo.\0A -D, --distro [DISTRO]\09\09 Print output with DISTRO's logo.\0A -E, --suppress-errors\09\09 Suppress error output.\0A -p, --portrait\09\09 Print output in portrait mode.\0A -V, --version\09\09\09 Output screenfetch-c's version and exit.\0A -h, --help\09\09\09 Output this help information.\0A -L, --logo-only [DISTRO]\09 Output only DISTRO's logo.\0AFor more information, consult screenfetch-c's man page.\0A\00"
define void @display_help() {
%1 = tail call i32 (...) @display_version()
%2 = tail call i32 @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([524 x i8], [524 x i8]* @.str.1, i64 0, i64 0))
ret void
}