#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 usage(void) {
  printf("Usage:\n"
         "     ntkd [-hvaldrRD46] [-i net_interface] [-c conf_file] [-l "
         "logfile]\n\n"
         " -4	ipv4\n"
         " -6	ipv6\n"
         " -i	Specify the interface after this\n\n"
         " -a	Prevents running the ANDNA daemon\n"
         " -R	Prevents editting /etc/resolv.conf\n"
         " -D	Prevents running as daemon (Does not fork to the background)\n"
         "\n"
         " -r	Runs in restricted mode\n"
         " -I	Share your internet connection with other nodes\n"
         "\n"
         " -c	Configuration file\n"
         " -l	Enables logging to file\n"
         "\n"
         " -d	Debug (Add more ds to get more info)\n"
         " -h	Shows this help\n"
         " -v	Shows the version you are using\n"
         " -k     Kills the running instance of ntkd\n"
         " -C	Runs the console server for Ntk-Console to connect to\n"
         " -e     Excludes an interface from usage I.E all interfaces except "
         "this one\n"
         " -n     Experimental argument to implement ntk netsplit inet/INET or "
         "ntk/NTK\n        "
         "http://netsukuku.freaknet.org/docs/main_doc/ntk_rfc/Ntk_net_split\n");
}


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

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

LLVM IR (-O0):
@.str = [837 x i8] c"Usage:\0A ntkd [-hvaldrRD46] [-i net_interface] [-c conf_file] [-l logfile]\0A\0A -4\09ipv4\0A -6\09ipv6\0A -i\09Specify the interface after this\0A\0A -a\09Prevents running the ANDNA daemon\0A -R\09Prevents editting /etc/resolv.conf\0A -D\09Prevents running as daemon (Does not fork to the background)\0A\0A -r\09Runs in restricted mode\0A -I\09Share your internet connection with other nodes\0A\0A -c\09Configuration file\0A -l\09Enables logging to file\0A\0A -d\09Debug (Add more ds to get more info)\0A -h\09Shows this help\0A -v\09Shows the version you are using\0A -k Kills the running instance of ntkd\0A -C\09Runs the console server for Ntk-Console to connect to\0A -e Excludes an interface from usage I.E all interfaces except this one\0A -n Experimental argument to implement ntk netsplit inet/INET or ntk/NTK\0A http://netsukuku.freaknet.org/docs/main_doc/ntk_rfc/Ntk_net_split\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([837 x i8], [837 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [836 x i8] c"Usage:\0A ntkd [-hvaldrRD46] [-i net_interface] [-c conf_file] [-l logfile]\0A\0A -4\09ipv4\0A -6\09ipv6\0A -i\09Specify the interface after this\0A\0A -a\09Prevents running the ANDNA daemon\0A -R\09Prevents editting /etc/resolv.conf\0A -D\09Prevents running as daemon (Does not fork to the background)\0A\0A -r\09Runs in restricted mode\0A -I\09Share your internet connection with other nodes\0A\0A -c\09Configuration file\0A -l\09Enables logging to file\0A\0A -d\09Debug (Add more ds to get more info)\0A -h\09Shows this help\0A -v\09Shows the version you are using\0A -k Kills the running instance of ntkd\0A -C\09Runs the console server for Ntk-Console to connect to\0A -e Excludes an interface from usage I.E all interfaces except this one\0A -n Experimental argument to implement ntk netsplit inet/INET or ntk/NTK\0A http://netsukuku.freaknet.org/docs/main_doc/ntk_rfc/Ntk_net_split\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([836 x i8], [836 x i8]* @str, i64 0, i64 0))
ret void
}