#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*/ fputs(char *, int /*<<< orphan*/);
int /*<<< orphan*/ stderr;
int _usage(int brief) {
  if (brief)
    fputs("Usage: "
          "pkg-config"
          " [-?] [--version] [--modversion]\n",
          stderr);
  else
    fputs("Usage: "
          "pkg-config"
          " [OPTIONS...] [PACKAGES...]\n"
          "  --cflags			Output all pre-processor and compiler "
          "flags\n"
          "  --cflags-only-I		Output -I flags\n"
          "  --cflags-only-other		Output non -I flags\n"
          "  --libs			Output all linker flags\n"
          "  --libs_only_L		Ouput -L flags\n"
          "  --libs_only_l		Ouput -l flags\n"
          "  --libs_only_other		other libs (e.g. -pthread)\n"
          "  --modversion			Output version for package\n"
          "  --print-requires		Output the requires packages\n"
          "  --print-requires_private	Output the requires private packages\n"
          "  --static			Output linker flags for static "
          "linking\n"
          "  --version			Output version of "
          "pkg-config"
          "\n"
          "\n"
          "Help options:\n"
          "  -?, --help		Show this help message\n"
          "  --usage		Display brief usage message\n",
          stderr);
  return 1;
}


x86 assembly (clang, -O0):
<_usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     113f <_usage+0x2f>
mov    0x2eb4(%rip),%rax
mov    (%rax),%esi
lea    0xecb(%rip),%rdi
call   1030 <fputs@plt>
jmp    1154 <_usage+0x44>
mov    0x2e9a(%rip),%rax
mov    (%rax),%esi
lea    0xee4(%rip),%rdi
call   1030 <fputs@plt>
mov    $0x1,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<_usage>:
push   %rax
test   %edi,%edi
mov    0x2ec6(%rip),%rax
mov    (%rax),%esi
lea    0xf10(%rip),%rax
lea    0xed6(%rip),%rdi
cmove  %rax,%rdi
call   1030 <fputs@plt>
mov    $0x1,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [51 x i8] c"Usage: pkg-config [-?] [--version] [--modversion]\0A\00"
@stderr = global i32 0
@.str.1 = [671 x i8] c"Usage: pkg-config [OPTIONS...] [PACKAGES...]\0A --cflags\09\09\09Output all pre-processor and compiler flags\0A --cflags-only-I\09\09Output -I flags\0A --cflags-only-other\09\09Output non -I flags\0A --libs\09\09\09Output all linker flags\0A --libs_only_L\09\09Ouput -L flags\0A --libs_only_l\09\09Ouput -l flags\0A --libs_only_other\09\09other libs (e.g. -pthread)\0A --modversion\09\09\09Output version for package\0A --print-requires\09\09Output the requires packages\0A --print-requires_private\09Output the requires private packages\0A --static\09\09\09Output linker flags for static linking\0A --version\09\09\09Output version of pkg-config\0A\0AHelp options:\0A -?, --help\09\09Show this help message\0A --usage\09\09Display brief usage message\0A\00"
define i32 @_usage(i32 %0) {
%2 = alloca i32
store i32 %0, i32* %2
%3 = load i32, i32* %2
%4 = icmp ne i32 %3, 0
br i1 %4, label %5, label %8
5: ; preds = %1
%6 = load i32, i32* @stderr
%7 = call i32 @fputs(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str, i64 0, i64 0), i32 %6)
br label %11
8: ; preds = %1
%9 = load i32, i32* @stderr
%10 = call i32 @fputs(i8* getelementptr inbounds ([671 x i8], [671 x i8]* @.str.1, i64 0, i64 0), i32 %9)
br label %11
11: ; preds = %8, %5
ret i32 1
}

LLVM IR (-O2):
@.str = [51 x i8] c"Usage: pkg-config [-?] [--version] [--modversion]\0A\00"
@stderr = global i32 0
@.str.1 = [671 x i8] c"Usage: pkg-config [OPTIONS...] [PACKAGES...]\0A --cflags\09\09\09Output all pre-processor and compiler flags\0A --cflags-only-I\09\09Output -I flags\0A --cflags-only-other\09\09Output non -I flags\0A --libs\09\09\09Output all linker flags\0A --libs_only_L\09\09Ouput -L flags\0A --libs_only_l\09\09Ouput -l flags\0A --libs_only_other\09\09other libs (e.g. -pthread)\0A --modversion\09\09\09Output version for package\0A --print-requires\09\09Output the requires packages\0A --print-requires_private\09Output the requires private packages\0A --static\09\09\09Output linker flags for static linking\0A --version\09\09\09Output version of pkg-config\0A\0AHelp options:\0A -?, --help\09\09Show this help message\0A --usage\09\09Display brief usage message\0A\00"
define i32 @_usage(i32 %0) {
%2 = icmp eq i32 %0, 0
%3 = load i32, i32* @stderr
%4 = select i1 %2, i8* getelementptr inbounds ([671 x i8], [671 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str, i64 0, i64 0)
%5 = tail call i32 @fputs(i8* %4, i32 %3)
ret i32 1
}