#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_FAILURE;
int /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ fputs(char *, int /*<<< orphan*/);
int /*<<< orphan*/ stderr;
void usage(void) {
  fputs(
      "Usage: mkfs.exfat\n"
      "\t-L | --volume-label=label                              Set volume "
      "label\n"
      "\t-c | --cluster-size=size(or suffixed by 'K' or 'M')    Specify "
      "cluster size\n"
      "\t-b | --boundary-align=size(or suffixed by 'K' or 'M')  Specify "
      "boundary alignment\n"
      "\t     --pack-bitmap                                     Move bitmap "
      "into FAT segment\n"
      "\t-f | --full-format                                     Full format\n"
      "\t-V | --version                                         Show version\n"
      "\t-v | --verbose                                         Print debug\n"
      "\t-h | --help                                            Show help\n",
      stderr);
  exit(EXIT_FAILURE);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2eb5(%rip),%rax
mov    (%rax),%esi
lea    0xecc(%rip),%rdi
call   1030 <fputs@plt>
mov    0x2e98(%rip),%rax
mov    (%rax),%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
mov    0x2eb8(%rip),%rax
mov    (%rax),%esi
lea    0xecf(%rip),%rdi
call   1030 <fputs@plt>
mov    0x2e9b(%rip),%rax
mov    (%rax),%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [608 x i8] c"Usage: mkfs.exfat\0A\09-L | --volume-label=label Set volume label\0A\09-c | --cluster-size=size(or suffixed by 'K' or 'M') Specify cluster size\0A\09-b | --boundary-align=size(or suffixed by 'K' or 'M') Specify boundary alignment\0A\09 --pack-bitmap Move bitmap into FAT segment\0A\09-f | --full-format Full format\0A\09-V | --version Show version\0A\09-v | --verbose Print debug\0A\09-h | --help Show help\0A\00"
@stderr = global i32 0
@EXIT_FAILURE = global i32 0
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fputs(i8* getelementptr inbounds ([608 x i8], [608 x i8]* @.str, i64 0, i64 0), i32 %1)
%3 = load i32, i32* @EXIT_FAILURE
%4 = call i32 @exit(i32 %3)
unreachable
}

LLVM IR (-O2):
@.str = [608 x i8] c"Usage: mkfs.exfat\0A\09-L | --volume-label=label Set volume label\0A\09-c | --cluster-size=size(or suffixed by 'K' or 'M') Specify cluster size\0A\09-b | --boundary-align=size(or suffixed by 'K' or 'M') Specify boundary alignment\0A\09 --pack-bitmap Move bitmap into FAT segment\0A\09-f | --full-format Full format\0A\09-V | --version Show version\0A\09-v | --verbose Print debug\0A\09-h | --help Show help\0A\00"
@stderr = global i32 0
@EXIT_FAILURE = global i32 0
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fputs(i8* getelementptr inbounds ([608 x i8], [608 x i8]* @.str, i64 0, i64 0), i32 %1)
%3 = load i32, i32* @EXIT_FAILURE
%4 = tail call i32 @exit(i32 %3)
unreachable
}