#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 syntax(int argc, char **argv) {
  printf(("Translation extractor for LGeneral resource-files.\n"
          "\n"
          "Syntax: %s [options] [files]\n"),
         "ltrextract");
  printf(("\nOptions:\n"
          "-d, --domain=<domain>\n"
          "\t\tExtract only translations for files matching <domain>\n"
          "-o, --output=<file>\n"
          "\t\tWrite changes to <file> instead of the standard output.\n"
          "-v, --verbose\tIncrease verbosity.\n"
          "    --version\tDisplay version information and exit.\n"));
  printf((
      "\nIf no domain is set, the domain will be read from the first input "
      "file\n"
      "If this file has no domain entry, the domain name will be derived from\n"
      "the filename\n"));
}


x86 assembly (clang, -O0):
<syntax>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
lea    0xeda(%rip),%rdi
lea    0xf25(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf22(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1011(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<syntax>:
push   %rax
lea    0xed8(%rip),%rdi
lea    0xf23(%rip),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xf20(%rip),%rdi
call   1030 <puts@plt>
lea    0x1010(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [82 x i8] c"Translation extractor for LGeneral resource-files.\0A\0ASyntax: %s [options] [files]\0A\00"
@.str.1 = [11 x i8] c"ltrextract\00"
@.str.2 = [253 x i8] c"\0AOptions:\0A-d, --domain=<domain>\0A\09\09Extract only translations for files matching <domain>\0A-o, --output=<file>\0A\09\09Write changes to <file> instead of the standard output.\0A-v, --verbose\09Increase verbosity.\0A --version\09Display version information and exit.\0A\00"
@.str.3 = [157 x i8] c"\0AIf no domain is set, the domain will be read from the first input file\0AIf this file has no domain entry, the domain name will be derived from\0Athe filename\0A\00"
define void @syntax(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i8**
store i32 %0, i32* %3
store i8** %1, i8*** %4
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([82 x i8], [82 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.1, i64 0, i64 0))
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([253 x i8], [253 x i8]* @.str.2, i64 0, i64 0))
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([157 x i8], [157 x i8]* @.str.3, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [82 x i8] c"Translation extractor for LGeneral resource-files.\0A\0ASyntax: %s [options] [files]\0A\00"
@.str.1 = [11 x i8] c"ltrextract\00"
@str = [252 x i8] c"\0AOptions:\0A-d, --domain=<domain>\0A\09\09Extract only translations for files matching <domain>\0A-o, --output=<file>\0A\09\09Write changes to <file> instead of the standard output.\0A-v, --verbose\09Increase verbosity.\0A --version\09Display version information and exit.\00"
@str.4 = [156 x i8] c"\0AIf no domain is set, the domain will be read from the first input file\0AIf this file has no domain entry, the domain name will be derived from\0Athe filename\00"
define void @syntax(i32 %0, i8** nocapture readnone %1) {
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([82 x i8], [82 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.1, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([252 x i8], [252 x i8]* @str, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([156 x i8], [156 x i8]* @str.4, i64 0, i64 0))
ret void
}