#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 *);
int usage() {
  printf(
      "Usage: $0 [command] [options] \n"
      "\n"
      "Script to manipulate the XML-configuration data of GuF i.MX Boards\n"
      "inside the NAND Flash. \n"
      "\n"
      "xconfig expect one of the following commands to define its behavior: \n"
      "  list           show the current contents of the XML-configuration as\n"
      "                 obtained from NAND\n"
      "  import         import an external XML-configuration file into the "
      "NAND\n"
      "                 Flash\n"
      "  addnode        add a new (empty) XML node\n"
      "  delnode        delete XML node(s) and its/their children\n"
      "  addattribute   add a new or change an existing attribute\n"
      "  delattribute   delete an existing attribute\n"
      "If no command and option given xconfig will display its version and "
      "exit.\n"
      "\n"
      "Syntax:\n"
      "  xconfig list [-v] [-f] [-p <path>] \n"
      "    -v           show whole (sub)tree instead of summary, the format "
      "is\n"
      "	             suitable to be used as input to \"xconfig import\"\n"
      "	-f           by default xconfig operates on the <variables>-subtree\n"
      "	             only, this option switches to the <flash>-subtree\n"
      "				 defining the NAND partitions\n"
      "				 *strongly discouraged* - Use the \"fis\" "
      "commands instead\n"
      "	-p <path>    path to subtree, e.g.:\n"
      "	    -p /configurationFile/variables/setting[@key='enable_serialdiag]\n"
      "		         if omitted, the whole tree is shown\n"
      "  xconfig import [-v] [-f] [-y] [-b <addr>]\n"
      "    -v           be verbose\n"
      "	-f           same as above\n"
      "	-y           assume yes - apply changes without user interaction\n"
      "	-b <addr>    path to file to import\n"
      "  xconfig addnode [-f] [-y] -p <path> -n <name>\n"
      "	-f           same as above\n"
      "	-y           same as above\n"
      "	-p <path>    path to parent node\n"
      "	-n <name>    name of new node\n"
      "  xconfig delnode [-f] [-y] -p <path>\n"
      "	-f           same as above\n"
      "	-y           same as above\n"
      "	-p <path>    path to node\n"
      "  xconfig addattribute [-f] [-y] -p <path> -n <attr-name> -v <value>\n"
      "	-f           same as above\n"
      "	-y           same as above\n"
      "	-p <path>    path to parent node\n"
      "	-n <attr-name>   name of the attribute\n"
      "	-v <value>   new value of attribute\n"
      "  xconfig delattribute [-f] [-y] -p <path> -n <attr-name>\n"
      "	-f           same as above\n"
      "	-y           same as above\n"
      "	-p <path>    path to parent node\n"
      "	-n <attr-name>   name of the attribute\n");
  return 0;
}


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

x86 assembly (clang, -O2):
<usage>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [2161 x i8] c"Usage: $0 [command] [options] \0A\0AScript to manipulate the XML-configuration data of GuF i.MX Boards\0Ainside the NAND Flash. \0A\0Axconfig expect one of the following commands to define its behavior: \0A list show the current contents of the XML-configuration as\0A obtained from NAND\0A import import an external XML-configuration file into the NAND\0A Flash\0A addnode add a new (empty) XML node\0A delnode delete XML node(s) and its/their children\0A addattribute add a new or change an existing attribute\0A delattribute delete an existing attribute\0AIf no command and option given xconfig will display its version and exit.\0A\0ASyntax:\0A xconfig list [-v] [-f] [-p <path>] \0A -v show whole (sub)tree instead of summary, the format is\0A\09 suitable to be used as input to \22xconfig import\22\0A\09-f by default xconfig operates on the <variables>-subtree\0A\09 only, this option switches to the <flash>-subtree\0A\09\09\09\09 defining the NAND partitions\0A\09\09\09\09 *strongly discouraged* - Use the \22fis\22 commands instead\0A\09-p <path> path to subtree, e.g.:\0A\09 -p /configurationFile/variables/setting[@key='enable_serialdiag]\0A\09\09 if omitted, the whole tree is shown\0A xconfig import [-v] [-f] [-y] [-b <addr>]\0A -v be verbose\0A\09-f same as above\0A\09-y assume yes - apply changes without user interaction\0A\09-b <addr> path to file to import\0A xconfig addnode [-f] [-y] -p <path> -n <name>\0A\09-f same as above\0A\09-y same as above\0A\09-p <path> path to parent node\0A\09-n <name> name of new node\0A xconfig delnode [-f] [-y] -p <path>\0A\09-f same as above\0A\09-y same as above\0A\09-p <path> path to node\0A xconfig addattribute [-f] [-y] -p <path> -n <attr-name> -v <value>\0A\09-f same as above\0A\09-y same as above\0A\09-p <path> path to parent node\0A\09-n <attr-name> name of the attribute\0A\09-v <value> new value of attribute\0A xconfig delattribute [-f] [-y] -p <path> -n <attr-name>\0A\09-f same as above\0A\09-y same as above\0A\09-p <path> path to parent node\0A\09-n <attr-name> name of the attribute\0A\00"
define i32 @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([2161 x i8], [2161 x i8]* @.str, i64 0, i64 0))
ret i32 0
}

LLVM IR (-O2):
@str = [2160 x i8] c"Usage: $0 [command] [options] \0A\0AScript to manipulate the XML-configuration data of GuF i.MX Boards\0Ainside the NAND Flash. \0A\0Axconfig expect one of the following commands to define its behavior: \0A list show the current contents of the XML-configuration as\0A obtained from NAND\0A import import an external XML-configuration file into the NAND\0A Flash\0A addnode add a new (empty) XML node\0A delnode delete XML node(s) and its/their children\0A addattribute add a new or change an existing attribute\0A delattribute delete an existing attribute\0AIf no command and option given xconfig will display its version and exit.\0A\0ASyntax:\0A xconfig list [-v] [-f] [-p <path>] \0A -v show whole (sub)tree instead of summary, the format is\0A\09 suitable to be used as input to \22xconfig import\22\0A\09-f by default xconfig operates on the <variables>-subtree\0A\09 only, this option switches to the <flash>-subtree\0A\09\09\09\09 defining the NAND partitions\0A\09\09\09\09 *strongly discouraged* - Use the \22fis\22 commands instead\0A\09-p <path> path to subtree, e.g.:\0A\09 -p /configurationFile/variables/setting[@key='enable_serialdiag]\0A\09\09 if omitted, the whole tree is shown\0A xconfig import [-v] [-f] [-y] [-b <addr>]\0A -v be verbose\0A\09-f same as above\0A\09-y assume yes - apply changes without user interaction\0A\09-b <addr> path to file to import\0A xconfig addnode [-f] [-y] -p <path> -n <name>\0A\09-f same as above\0A\09-y same as above\0A\09-p <path> path to parent node\0A\09-n <name> name of new node\0A xconfig delnode [-f] [-y] -p <path>\0A\09-f same as above\0A\09-y same as above\0A\09-p <path> path to node\0A xconfig addattribute [-f] [-y] -p <path> -n <attr-name> -v <value>\0A\09-f same as above\0A\09-y same as above\0A\09-p <path> path to parent node\0A\09-n <attr-name> name of the attribute\0A\09-v <value> new value of attribute\0A xconfig delattribute [-f] [-y] -p <path> -n <attr-name>\0A\09-f same as above\0A\09-y same as above\0A\09-p <path> path to parent node\0A\09-n <attr-name> name of the attribute\00"
define i32 @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2160 x i8], [2160 x i8]* @str, i64 0, i64 0))
ret i32 0
}