#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_SUCCESS;
int /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char *);
int /*<<< orphan*/ stderr;
void prhelp(char *name) {
  fprintf(
      stderr,
      "Usage: %s [OPTION] [FILE]...\n"
      "Access an X server selection for reading or writing.\n"
      "\n"
      "  -i, -in          read text into X selection from stdin or files "
      "[DEFAULT]\n"
      "      -filter      text piped in to selection will also be printed out\n"
      "  -o, -out         prints the selection to standard out\n"
      "      -selection   primary [DEFAULT], clipboard, secondary, or "
      "buffer-cut\n"
      "      -target      specify target atom: image/jpeg, UTF8_STRING "
      "[DEFAULT]\n"
      "      -silent      errors only, (run in background) [DEFAULT]\n"
      "      -quiet       minimal output (foreground)\n"
      "      -verbose     running commentary (foreground)\n"
      "      -debug       garrulous verbiage (foreground)\n"
      "      -sensitive   only allow copied data to be pasted once\n"
      "  -l, -loops       number of selection requests to wait for before "
      "exiting\n"
      "      -wait n      exit n milliseconds pasting, timer restarts on each "
      "paste\n"
      "      -noutf8      don't treat text as utf-8, use old unicode\n"
      "      -rmlastnl    remove the last newline character if present\n"
      "  -d, -display     X display to connect to (eg localhost:0\")\n"
      "      -version     version information\n"
      "  -h, -help        this usage information\n"
      "\n"
      "Report bugs to <astrand@lysator.liu.se>\n",
      name);
  exit(EXIT_SUCCESS);
}


x86 assembly (clang, -O0):
<prhelp>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    0x2ead(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rdx
lea    0xec0(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x2e8c(%rip),%rax
mov    (%rax),%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<prhelp>:
push   %rax
mov    %rdi,%rdx
mov    0x2eb5(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x2e98(%rip),%rax
mov    (%rax),%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [1167 x i8] c"Usage: %s [OPTION] [FILE]...\0AAccess an X server selection for reading or writing.\0A\0A -i, -in read text into X selection from stdin or files [DEFAULT]\0A -filter text piped in to selection will also be printed out\0A -o, -out prints the selection to standard out\0A -selection primary [DEFAULT], clipboard, secondary, or buffer-cut\0A -target specify target atom: image/jpeg, UTF8_STRING [DEFAULT]\0A -silent errors only, (run in background) [DEFAULT]\0A -quiet minimal output (foreground)\0A -verbose running commentary (foreground)\0A -debug garrulous verbiage (foreground)\0A -sensitive only allow copied data to be pasted once\0A -l, -loops number of selection requests to wait for before exiting\0A -wait n exit n milliseconds pasting, timer restarts on each paste\0A -noutf8 don't treat text as utf-8, use old unicode\0A -rmlastnl remove the last newline character if present\0A -d, -display X display to connect to (eg localhost:0\22)\0A -version version information\0A -h, -help this usage information\0A\0AReport bugs to <astrand@lysator.liu.se>\0A\00"
@EXIT_SUCCESS = global i32 0
define void @prhelp(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i32, i32* @stderr
%4 = load i8*, i8** %2
%5 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([1167 x i8], [1167 x i8]* @.str, i64 0, i64 0), i8* %4)
%6 = load i32, i32* @EXIT_SUCCESS
%7 = call i32 @exit(i32 %6)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [1167 x i8] c"Usage: %s [OPTION] [FILE]...\0AAccess an X server selection for reading or writing.\0A\0A -i, -in read text into X selection from stdin or files [DEFAULT]\0A -filter text piped in to selection will also be printed out\0A -o, -out prints the selection to standard out\0A -selection primary [DEFAULT], clipboard, secondary, or buffer-cut\0A -target specify target atom: image/jpeg, UTF8_STRING [DEFAULT]\0A -silent errors only, (run in background) [DEFAULT]\0A -quiet minimal output (foreground)\0A -verbose running commentary (foreground)\0A -debug garrulous verbiage (foreground)\0A -sensitive only allow copied data to be pasted once\0A -l, -loops number of selection requests to wait for before exiting\0A -wait n exit n milliseconds pasting, timer restarts on each paste\0A -noutf8 don't treat text as utf-8, use old unicode\0A -rmlastnl remove the last newline character if present\0A -d, -display X display to connect to (eg localhost:0\22)\0A -version version information\0A -h, -help this usage information\0A\0AReport bugs to <astrand@lysator.liu.se>\0A\00"
@EXIT_SUCCESS = global i32 0
define void @prhelp(i8* %0) {
%2 = load i32, i32* @stderr
%3 = tail call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([1167 x i8], [1167 x i8]* @.str, i64 0, i64 0), i8* %0)
%4 = load i32, i32* @EXIT_SUCCESS
%5 = tail call i32 @exit(i32 %4)
unreachable
}