#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*/ STDERR_FILENO;
int /*<<< orphan*/ exit(int);
int /*<<< orphan*/ write(int /*<<< orphan*/, char *, int);
void version(void) {
  write(STDERR_FILENO,
        "bfc 2.1\n"
        "usage: bfc [-fh] [-a cc] [-y size] file [options]\n\n"
        "Copyright (c) 2017-2018 Brian Callahan <bcallah@openbsd.org>\n"
        "\nPermission to use, copy, modify, and distribute this software"
        " for any\npurpose with or without fee is hereby granted, "
        "provided that the above\ncopyright notice and this permission "
        "notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS "
        "IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO "
        "THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n",
        467);
  write(STDERR_FILENO,
        "MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL"
        "THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR "
        "CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM"
        " LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRAC"
        "T, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN "
        "CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n",
        348);
  exit(1);
}


x86 assembly (clang, -O0):
<version>:
push   %rbp
mov    %rsp,%rbp
mov    0x2eb5(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
mov    $0x1d3,%edx
call   1030 <write@plt>
mov    0x2e9b(%rip),%rax
mov    (%rax),%edi
lea    0x1086(%rip),%rsi
mov    $0x15c,%edx
call   1030 <write@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<version>:
push   %rbx
mov    0x2eb8(%rip),%rbx
mov    (%rbx),%edi
lea    0xecf(%rip),%rsi
mov    $0x1d3,%edx
call   1030 <write@plt>
mov    (%rbx),%edi
lea    0x1090(%rip),%rsi
mov    $0x15c,%edx
call   1030 <write@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@STDERR_FILENO = global i32 0
@.str = [468 x i8] c"bfc 2.1\0Ausage: bfc [-fh] [-a cc] [-y size] file [options]\0A\0ACopyright (c) 2017-2018 Brian Callahan <bcallah@openbsd.org>\0A\0APermission to use, copy, modify, and distribute this software for any\0Apurpose with or without fee is hereby granted, provided that the above\0Acopyright notice and this permission notice appear in all copies.\0A\0ATHE SOFTWARE IS PROVIDED \22AS IS\22 AND THE AUTHOR DISCLAIMS ALL WARRANTIES\0AWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\0A\00"
@.str.1 = [348 x i8] c"MERCHANTABILITY AND FITNESS. IN NO EVENT SHALLTHE AUTHOR BE LIABLE FOR\0AANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\0AWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\0AACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\0AOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\0A\00"
define void @version() {
%1 = load i32, i32* @STDERR_FILENO
%2 = call i32 @write(i32 %1, i8* getelementptr inbounds ([468 x i8], [468 x i8]* @.str, i64 0, i64 0), i32 467)
%3 = load i32, i32* @STDERR_FILENO
%4 = call i32 @write(i32 %3, i8* getelementptr inbounds ([348 x i8], [348 x i8]* @.str.1, i64 0, i64 0), i32 348)
%5 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@STDERR_FILENO = global i32 0
@.str = [468 x i8] c"bfc 2.1\0Ausage: bfc [-fh] [-a cc] [-y size] file [options]\0A\0ACopyright (c) 2017-2018 Brian Callahan <bcallah@openbsd.org>\0A\0APermission to use, copy, modify, and distribute this software for any\0Apurpose with or without fee is hereby granted, provided that the above\0Acopyright notice and this permission notice appear in all copies.\0A\0ATHE SOFTWARE IS PROVIDED \22AS IS\22 AND THE AUTHOR DISCLAIMS ALL WARRANTIES\0AWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\0A\00"
@.str.1 = [348 x i8] c"MERCHANTABILITY AND FITNESS. IN NO EVENT SHALLTHE AUTHOR BE LIABLE FOR\0AANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\0AWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\0AACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\0AOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\0A\00"
define void @version() {
%1 = load i32, i32* @STDERR_FILENO
%2 = tail call i32 @write(i32 %1, i8* getelementptr inbounds ([468 x i8], [468 x i8]* @.str, i64 0, i64 0), i32 467)
%3 = load i32, i32* @STDERR_FILENO
%4 = tail call i32 @write(i32 %3, i8* getelementptr inbounds ([348 x i8], [348 x i8]* @.str.1, i64 0, i64 0), i32 348)
%5 = tail call i32 @exit(i32 1)
unreachable
}