#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(int const);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char *, int);
int /*<<< orphan*/ stdout;
void __attribute((noreturn)) usage(const int status) {
  fprintf(
      stdout,
      "Usage: %s [OPTION]... [FILE]...\n\n"
      "        --retry      keep trying to open a file even if it is not\n"
      "                     accessible at start or becomes inaccessible\n"
      "                     later; useful when following by name\n"
      "  -c N, --bytes=N    output the last N bytes\n"
      "  -f,   --follow[={descriptor|name}]\n"
      "                     output as the file grows (default: descriptor)\n"
      "  -F                 same as --follow=name --retry\n"
      "  -n N, --lines=N    output the last N lines (default: %d)\n"
      "  -q,   --quiet, --slient\n"
      "                     never print headers with file names\n"
      "  -v,   --verbose    always print headers with file names\n"
      "  -h,   --help       show this help and exit\n"
      "  -V,   --version    show version and exit\n\n"
      "If the first character of N (the number of bytes or lines) is a `+',\n"
      "begin printing with the Nth item from the start of each file, "
      "otherwise,\n"
      "print the last N items in the file.\n",
      "inotail", 10);
  exit(status);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
mov    0x2eae(%rip),%rax
mov    (%rax),%edi
lea    0xec5(%rip),%rsi
lea    0x1239(%rip),%rdx
mov    $0xa,%ecx
call   1030 <fprintf@plt>
mov    -0x4(%rbp),%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rbx
mov    %edi,%ebx
mov    0x2eb6(%rip),%rax
mov    (%rax),%edi
lea    0xecd(%rip),%rsi
lea    0x1241(%rip),%rdx
mov    $0xa,%ecx
call   1030 <fprintf@plt>
mov    %ebx,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@stdout = global i32 0
@.str = [891 x i8] c"Usage: %s [OPTION]... [FILE]...\0A\0A --retry keep trying to open a file even if it is not\0A accessible at start or becomes inaccessible\0A later; useful when following by name\0A -c N, --bytes=N output the last N bytes\0A -f, --follow[={descriptor|name}]\0A output as the file grows (default: descriptor)\0A -F same as --follow=name --retry\0A -n N, --lines=N output the last N lines (default: %d)\0A -q, --quiet, --slient\0A never print headers with file names\0A -v, --verbose always print headers with file names\0A -h, --help show this help and exit\0A -V, --version show version and exit\0A\0AIf the first character of N (the number of bytes or lines) is a `+',\0Abegin printing with the Nth item from the start of each file, otherwise,\0Aprint the last N items in the file.\0A\00"
@.str.1 = [8 x i8] c"inotail\00"
define void @usage(i32 %0) {
%2 = alloca i32
store i32 %0, i32* %2
%3 = load i32, i32* @stdout
%4 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([891 x i8], [891 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 10)
%5 = load i32, i32* %2
%6 = call i32 @exit(i32 %5)
unreachable
}

LLVM IR (-O2):
@stdout = global i32 0
@.str = [891 x i8] c"Usage: %s [OPTION]... [FILE]...\0A\0A --retry keep trying to open a file even if it is not\0A accessible at start or becomes inaccessible\0A later; useful when following by name\0A -c N, --bytes=N output the last N bytes\0A -f, --follow[={descriptor|name}]\0A output as the file grows (default: descriptor)\0A -F same as --follow=name --retry\0A -n N, --lines=N output the last N lines (default: %d)\0A -q, --quiet, --slient\0A never print headers with file names\0A -v, --verbose always print headers with file names\0A -h, --help show this help and exit\0A -V, --version show version and exit\0A\0AIf the first character of N (the number of bytes or lines) is a `+',\0Abegin printing with the Nth item from the start of each file, otherwise,\0Aprint the last N items in the file.\0A\00"
@.str.1 = [8 x i8] c"inotail\00"
define void @usage(i32 %0) {
%2 = load i32, i32* @stdout
%3 = tail call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([891 x i8], [891 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 10)
%4 = tail call i32 @exit(i32 %0)
unreachable
}