#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*/ printf(char *);
void fdasd_usage(void) {
  printf("\nUsage: fdasd [OPTIONS] [DEVICE]\n"
         "\n"
         "Partition a DASD device either in interactive mode or "
         "automatically.\n"
         "DEVICE is the node of the device (e.g. '/dev/dasda')\n"
         "\n"
         "-h, --help               Print this help, then exit\n"
         "-v, --version            Print version information, "
         "then exit\n"
         "-s, --silent             Suppress messages\n"
         "-r, --verbose            Provide more verbose output\n"
         "-a, --auto               Automatically create a partition "
         "using the entire disk\n"
         "-k, --keep_volser        Keep current volume serial when "
         "performing automatic\n"
         "                         partitioning\n"
         "-l, --label VOLSER       Set the volume serial to VOLSER "
         "when performing\n"
         "                         automatic partitioning\n"
         "-c, --config CONFIGFILE  Automatically create partition(s) "
         "using information\n"
         "                         found in CONFIGFILE\n"
         "-i, --volser             Print volume serial\n"
         "-p, --table              Print partition table\n");
}


x86 assembly (clang, -O0):
<fdasd_usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<fdasd_usage>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [899 x i8] c"\0AUsage: fdasd [OPTIONS] [DEVICE]\0A\0APartition a DASD device either in interactive mode or automatically.\0ADEVICE is the node of the device (e.g. '/dev/dasda')\0A\0A-h, --help Print this help, then exit\0A-v, --version Print version information, then exit\0A-s, --silent Suppress messages\0A-r, --verbose Provide more verbose output\0A-a, --auto Automatically create a partition using the entire disk\0A-k, --keep_volser Keep current volume serial when performing automatic\0A partitioning\0A-l, --label VOLSER Set the volume serial to VOLSER when performing\0A automatic partitioning\0A-c, --config CONFIGFILE Automatically create partition(s) using information\0A found in CONFIGFILE\0A-i, --volser Print volume serial\0A-p, --table Print partition table\0A\00"
define void @fdasd_usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([899 x i8], [899 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [898 x i8] c"\0AUsage: fdasd [OPTIONS] [DEVICE]\0A\0APartition a DASD device either in interactive mode or automatically.\0ADEVICE is the node of the device (e.g. '/dev/dasda')\0A\0A-h, --help Print this help, then exit\0A-v, --version Print version information, then exit\0A-s, --silent Suppress messages\0A-r, --verbose Provide more verbose output\0A-a, --auto Automatically create a partition using the entire disk\0A-k, --keep_volser Keep current volume serial when performing automatic\0A partitioning\0A-l, --label VOLSER Set the volume serial to VOLSER when performing\0A automatic partitioning\0A-c, --config CONFIGFILE Automatically create partition(s) using information\0A found in CONFIGFILE\0A-i, --volser Print volume serial\0A-p, --table Print partition table\00"
define void @fdasd_usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([898 x i8], [898 x i8]* @str, i64 0, i64 0))
ret void
}