#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*/ _PC_2_SYMLINKS;
int /*<<< orphan*/ _PC_ALLOC_SIZE_MIN;
int /*<<< orphan*/ _PC_ASYNC_IO;
int /*<<< orphan*/ _PC_CHOWN_RESTRICTED;
int /*<<< orphan*/ _PC_FILESIZEBITS;
int /*<<< orphan*/ _PC_LINK_MAX;
int /*<<< orphan*/ _PC_MAX_CANON;
int /*<<< orphan*/ _PC_MAX_INPUT;
int /*<<< orphan*/ _PC_NAME_MAX;
int /*<<< orphan*/ _PC_NO_TRUNC;
int /*<<< orphan*/ _PC_PATH_MAX;
int /*<<< orphan*/ _PC_PIPE_BUF;
int /*<<< orphan*/ _PC_PRIO_IO;
int /*<<< orphan*/ _PC_REC_INCR_XFER_SIZE;
int /*<<< orphan*/ _PC_REC_MAX_XFER_SIZE;
int /*<<< orphan*/ _PC_REC_MIN_XFER_SIZE;
int /*<<< orphan*/ _PC_REC_XFER_ALIGN;
int /*<<< orphan*/ _PC_SYMLINK_MAX;
int /*<<< orphan*/ _PC_SYNC_IO;
int /*<<< orphan*/ _PC_VDISABLE;
int /*<<< orphan*/ print_conf_value(int /*<<< orphan*/, char *);
void test_pathconf() {
  print_conf_value(_PC_FILESIZEBITS, "_PC_FILESIZEBITS");
  print_conf_value(_PC_LINK_MAX, "_PC_LINK_MAX");
  print_conf_value(_PC_MAX_CANON, "_PC_MAX_CANON");
  print_conf_value(_PC_MAX_INPUT, "_PC_MAX_INPUT");
  print_conf_value(_PC_NAME_MAX, "_PC_NAME_MAX");
  print_conf_value(_PC_PATH_MAX, "_PC_PATH_MAX");
  print_conf_value(_PC_PIPE_BUF, "_PC_PIPE_BUF");
  print_conf_value(_PC_2_SYMLINKS, "_PC_2_SYMLINKS");
  print_conf_value(_PC_ALLOC_SIZE_MIN, "_PC_ALLOC_SIZE_MIN");
  print_conf_value(_PC_REC_INCR_XFER_SIZE, "_PC_REC_INCR_XFER_SIZE");
  print_conf_value(_PC_REC_MAX_XFER_SIZE, "_PC_REC_MAX_XFER_SIZE");
  print_conf_value(_PC_REC_MIN_XFER_SIZE, "_PC_REC_MIN_XFER_SIZE");
  print_conf_value(_PC_REC_XFER_ALIGN, "_PC_REC_XFER_ALIGN");
  print_conf_value(_PC_SYMLINK_MAX, "_PC_SYMLINK_MAX");
  print_conf_value(_PC_CHOWN_RESTRICTED, "_PC_CHOWN_RESTRICTED");
  print_conf_value(_PC_NO_TRUNC, "_PC_NO_TRUNC");
  print_conf_value(_PC_VDISABLE, "_PC_VDISABLE");
  print_conf_value(_PC_ASYNC_IO, "_PC_ASYNC_IO");
  print_conf_value(_PC_PRIO_IO, "_PC_PRIO_IO");
  print_conf_value(_PC_SYNC_IO, "_PC_SYNC_IO");
}


x86 assembly (clang, -O0):
<test_pathconf>:
push   %rbp
mov    %rsp,%rbp
mov    0x2e55(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e18(%rip),%rax
mov    (%rax),%edi
lea    0xed8(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e6b(%rip),%rax
mov    (%rax),%edi
lea    0xed0(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e7e(%rip),%rax
mov    (%rax),%edi
lea    0xec9(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2df1(%rip),%rax
mov    (%rax),%edi
lea    0xec2(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e1c(%rip),%rax
mov    (%rax),%edi
lea    0xeba(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e1f(%rip),%rax
mov    (%rax),%edi
lea    0xeb2(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e12(%rip),%rax
mov    (%rax),%edi
lea    0xeaa(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2dd5(%rip),%rax
mov    (%rax),%edi
lea    0xea4(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2da0(%rip),%rax
mov    (%rax),%edi
lea    0xea2(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2da3(%rip),%rax
mov    (%rax),%edi
lea    0xea4(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2dc6(%rip),%rax
mov    (%rax),%edi
lea    0xea5(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2d69(%rip),%rax
mov    (%rax),%edi
lea    0xea6(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2d5c(%rip),%rax
mov    (%rax),%edi
lea    0xea4(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2db7(%rip),%rax
mov    (%rax),%edi
lea    0xe9f(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2cfa(%rip),%rax
mov    (%rax),%edi
lea    0xe9f(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2d65(%rip),%rax
mov    (%rax),%edi
lea    0xe97(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2ce8(%rip),%rax
mov    (%rax),%edi
lea    0xe8f(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2cab(%rip),%rax
mov    (%rax),%edi
lea    0xe87(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2d46(%rip),%rax
mov    (%rax),%edi
lea    0xe7e(%rip),%rsi
call   1030 <print_conf_value@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<test_pathconf>:
push   %rax
mov    0x2e58(%rip),%rax
mov    (%rax),%edi
lea    0xedf(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e1b(%rip),%rax
mov    (%rax),%edi
lea    0xedb(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e6e(%rip),%rax
mov    (%rax),%edi
lea    0xed3(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e81(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2df4(%rip),%rax
mov    (%rax),%edi
lea    0xec5(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e1f(%rip),%rax
mov    (%rax),%edi
lea    0xebd(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e22(%rip),%rax
mov    (%rax),%edi
lea    0xeb5(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2e15(%rip),%rax
mov    (%rax),%edi
lea    0xead(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2dd8(%rip),%rax
mov    (%rax),%edi
lea    0xea7(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2da3(%rip),%rax
mov    (%rax),%edi
lea    0xea5(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2da6(%rip),%rax
mov    (%rax),%edi
lea    0xea7(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2dc9(%rip),%rax
mov    (%rax),%edi
lea    0xea8(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2d6c(%rip),%rax
mov    (%rax),%edi
lea    0xea9(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2d5f(%rip),%rax
mov    (%rax),%edi
lea    0xea7(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2dba(%rip),%rax
mov    (%rax),%edi
lea    0xea2(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2cfd(%rip),%rax
mov    (%rax),%edi
lea    0xea2(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2d68(%rip),%rax
mov    (%rax),%edi
lea    0xe9a(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2ceb(%rip),%rax
mov    (%rax),%edi
lea    0xe92(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2cae(%rip),%rax
mov    (%rax),%edi
lea    0xe8a(%rip),%rsi
call   1030 <print_conf_value@plt>
mov    0x2d49(%rip),%rax
mov    (%rax),%edi
lea    0xe81(%rip),%rsi
pop    %rax
jmp    1030 <print_conf_value@plt>

LLVM IR (-O0):
@_PC_FILESIZEBITS = global i32 0
@.str = [17 x i8] c"_PC_FILESIZEBITS\00"
@_PC_LINK_MAX = global i32 0
@.str.1 = [13 x i8] c"_PC_LINK_MAX\00"
@_PC_MAX_CANON = global i32 0
@.str.2 = [14 x i8] c"_PC_MAX_CANON\00"
@_PC_MAX_INPUT = global i32 0
@.str.3 = [14 x i8] c"_PC_MAX_INPUT\00"
@_PC_NAME_MAX = global i32 0
@.str.4 = [13 x i8] c"_PC_NAME_MAX\00"
@_PC_PATH_MAX = global i32 0
@.str.5 = [13 x i8] c"_PC_PATH_MAX\00"
@_PC_PIPE_BUF = global i32 0
@.str.6 = [13 x i8] c"_PC_PIPE_BUF\00"
@_PC_2_SYMLINKS = global i32 0
@.str.7 = [15 x i8] c"_PC_2_SYMLINKS\00"
@_PC_ALLOC_SIZE_MIN = global i32 0
@.str.8 = [19 x i8] c"_PC_ALLOC_SIZE_MIN\00"
@_PC_REC_INCR_XFER_SIZE = global i32 0
@.str.9 = [23 x i8] c"_PC_REC_INCR_XFER_SIZE\00"
@_PC_REC_MAX_XFER_SIZE = global i32 0
@.str.10 = [22 x i8] c"_PC_REC_MAX_XFER_SIZE\00"
@_PC_REC_MIN_XFER_SIZE = global i32 0
@.str.11 = [22 x i8] c"_PC_REC_MIN_XFER_SIZE\00"
@_PC_REC_XFER_ALIGN = global i32 0
@.str.12 = [19 x i8] c"_PC_REC_XFER_ALIGN\00"
@_PC_SYMLINK_MAX = global i32 0
@.str.13 = [16 x i8] c"_PC_SYMLINK_MAX\00"
@_PC_CHOWN_RESTRICTED = global i32 0
@.str.14 = [21 x i8] c"_PC_CHOWN_RESTRICTED\00"
@_PC_NO_TRUNC = global i32 0
@.str.15 = [13 x i8] c"_PC_NO_TRUNC\00"
@_PC_VDISABLE = global i32 0
@.str.16 = [13 x i8] c"_PC_VDISABLE\00"
@_PC_ASYNC_IO = global i32 0
@.str.17 = [13 x i8] c"_PC_ASYNC_IO\00"
@_PC_PRIO_IO = global i32 0
@.str.18 = [12 x i8] c"_PC_PRIO_IO\00"
@_PC_SYNC_IO = global i32 0
@.str.19 = [12 x i8] c"_PC_SYNC_IO\00"
define void @test_pathconf() {
%1 = load i32, i32* @_PC_FILESIZEBITS
%2 = call i32 @print_conf_value(i32 %1, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @_PC_LINK_MAX
%4 = call i32 @print_conf_value(i32 %3, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0))
%5 = load i32, i32* @_PC_MAX_CANON
%6 = call i32 @print_conf_value(i32 %5, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i64 0, i64 0))
%7 = load i32, i32* @_PC_MAX_INPUT
%8 = call i32 @print_conf_value(i32 %7, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.3, i64 0, i64 0))
%9 = load i32, i32* @_PC_NAME_MAX
%10 = call i32 @print_conf_value(i32 %9, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.4, i64 0, i64 0))
%11 = load i32, i32* @_PC_PATH_MAX
%12 = call i32 @print_conf_value(i32 %11, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0))
%13 = load i32, i32* @_PC_PIPE_BUF
%14 = call i32 @print_conf_value(i32 %13, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.6, i64 0, i64 0))
%15 = load i32, i32* @_PC_2_SYMLINKS
%16 = call i32 @print_conf_value(i32 %15, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.7, i64 0, i64 0))
%17 = load i32, i32* @_PC_ALLOC_SIZE_MIN
%18 = call i32 @print_conf_value(i32 %17, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.8, i64 0, i64 0))
%19 = load i32, i32* @_PC_REC_INCR_XFER_SIZE
%20 = call i32 @print_conf_value(i32 %19, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.9, i64 0, i64 0))
%21 = load i32, i32* @_PC_REC_MAX_XFER_SIZE
%22 = call i32 @print_conf_value(i32 %21, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.10, i64 0, i64 0))
%23 = load i32, i32* @_PC_REC_MIN_XFER_SIZE
%24 = call i32 @print_conf_value(i32 %23, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.11, i64 0, i64 0))
%25 = load i32, i32* @_PC_REC_XFER_ALIGN
%26 = call i32 @print_conf_value(i32 %25, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.12, i64 0, i64 0))
%27 = load i32, i32* @_PC_SYMLINK_MAX
%28 = call i32 @print_conf_value(i32 %27, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.13, i64 0, i64 0))
%29 = load i32, i32* @_PC_CHOWN_RESTRICTED
%30 = call i32 @print_conf_value(i32 %29, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i64 0, i64 0))
%31 = load i32, i32* @_PC_NO_TRUNC
%32 = call i32 @print_conf_value(i32 %31, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.15, i64 0, i64 0))
%33 = load i32, i32* @_PC_VDISABLE
%34 = call i32 @print_conf_value(i32 %33, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.16, i64 0, i64 0))
%35 = load i32, i32* @_PC_ASYNC_IO
%36 = call i32 @print_conf_value(i32 %35, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i64 0, i64 0))
%37 = load i32, i32* @_PC_PRIO_IO
%38 = call i32 @print_conf_value(i32 %37, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i64 0, i64 0))
%39 = load i32, i32* @_PC_SYNC_IO
%40 = call i32 @print_conf_value(i32 %39, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@_PC_FILESIZEBITS = global i32 0
@.str = [17 x i8] c"_PC_FILESIZEBITS\00"
@_PC_LINK_MAX = global i32 0
@.str.1 = [13 x i8] c"_PC_LINK_MAX\00"
@_PC_MAX_CANON = global i32 0
@.str.2 = [14 x i8] c"_PC_MAX_CANON\00"
@_PC_MAX_INPUT = global i32 0
@.str.3 = [14 x i8] c"_PC_MAX_INPUT\00"
@_PC_NAME_MAX = global i32 0
@.str.4 = [13 x i8] c"_PC_NAME_MAX\00"
@_PC_PATH_MAX = global i32 0
@.str.5 = [13 x i8] c"_PC_PATH_MAX\00"
@_PC_PIPE_BUF = global i32 0
@.str.6 = [13 x i8] c"_PC_PIPE_BUF\00"
@_PC_2_SYMLINKS = global i32 0
@.str.7 = [15 x i8] c"_PC_2_SYMLINKS\00"
@_PC_ALLOC_SIZE_MIN = global i32 0
@.str.8 = [19 x i8] c"_PC_ALLOC_SIZE_MIN\00"
@_PC_REC_INCR_XFER_SIZE = global i32 0
@.str.9 = [23 x i8] c"_PC_REC_INCR_XFER_SIZE\00"
@_PC_REC_MAX_XFER_SIZE = global i32 0
@.str.10 = [22 x i8] c"_PC_REC_MAX_XFER_SIZE\00"
@_PC_REC_MIN_XFER_SIZE = global i32 0
@.str.11 = [22 x i8] c"_PC_REC_MIN_XFER_SIZE\00"
@_PC_REC_XFER_ALIGN = global i32 0
@.str.12 = [19 x i8] c"_PC_REC_XFER_ALIGN\00"
@_PC_SYMLINK_MAX = global i32 0
@.str.13 = [16 x i8] c"_PC_SYMLINK_MAX\00"
@_PC_CHOWN_RESTRICTED = global i32 0
@.str.14 = [21 x i8] c"_PC_CHOWN_RESTRICTED\00"
@_PC_NO_TRUNC = global i32 0
@.str.15 = [13 x i8] c"_PC_NO_TRUNC\00"
@_PC_VDISABLE = global i32 0
@.str.16 = [13 x i8] c"_PC_VDISABLE\00"
@_PC_ASYNC_IO = global i32 0
@.str.17 = [13 x i8] c"_PC_ASYNC_IO\00"
@_PC_PRIO_IO = global i32 0
@.str.18 = [12 x i8] c"_PC_PRIO_IO\00"
@_PC_SYNC_IO = global i32 0
@.str.19 = [12 x i8] c"_PC_SYNC_IO\00"
define void @test_pathconf() {
%1 = load i32, i32* @_PC_FILESIZEBITS
%2 = tail call i32 @print_conf_value(i32 %1, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @_PC_LINK_MAX
%4 = tail call i32 @print_conf_value(i32 %3, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0))
%5 = load i32, i32* @_PC_MAX_CANON
%6 = tail call i32 @print_conf_value(i32 %5, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i64 0, i64 0))
%7 = load i32, i32* @_PC_MAX_INPUT
%8 = tail call i32 @print_conf_value(i32 %7, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.3, i64 0, i64 0))
%9 = load i32, i32* @_PC_NAME_MAX
%10 = tail call i32 @print_conf_value(i32 %9, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.4, i64 0, i64 0))
%11 = load i32, i32* @_PC_PATH_MAX
%12 = tail call i32 @print_conf_value(i32 %11, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0))
%13 = load i32, i32* @_PC_PIPE_BUF
%14 = tail call i32 @print_conf_value(i32 %13, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.6, i64 0, i64 0))
%15 = load i32, i32* @_PC_2_SYMLINKS
%16 = tail call i32 @print_conf_value(i32 %15, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.7, i64 0, i64 0))
%17 = load i32, i32* @_PC_ALLOC_SIZE_MIN
%18 = tail call i32 @print_conf_value(i32 %17, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.8, i64 0, i64 0))
%19 = load i32, i32* @_PC_REC_INCR_XFER_SIZE
%20 = tail call i32 @print_conf_value(i32 %19, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.9, i64 0, i64 0))
%21 = load i32, i32* @_PC_REC_MAX_XFER_SIZE
%22 = tail call i32 @print_conf_value(i32 %21, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.10, i64 0, i64 0))
%23 = load i32, i32* @_PC_REC_MIN_XFER_SIZE
%24 = tail call i32 @print_conf_value(i32 %23, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.11, i64 0, i64 0))
%25 = load i32, i32* @_PC_REC_XFER_ALIGN
%26 = tail call i32 @print_conf_value(i32 %25, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.12, i64 0, i64 0))
%27 = load i32, i32* @_PC_SYMLINK_MAX
%28 = tail call i32 @print_conf_value(i32 %27, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.13, i64 0, i64 0))
%29 = load i32, i32* @_PC_CHOWN_RESTRICTED
%30 = tail call i32 @print_conf_value(i32 %29, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i64 0, i64 0))
%31 = load i32, i32* @_PC_NO_TRUNC
%32 = tail call i32 @print_conf_value(i32 %31, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.15, i64 0, i64 0))
%33 = load i32, i32* @_PC_VDISABLE
%34 = tail call i32 @print_conf_value(i32 %33, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.16, i64 0, i64 0))
%35 = load i32, i32* @_PC_ASYNC_IO
%36 = tail call i32 @print_conf_value(i32 %35, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i64 0, i64 0))
%37 = load i32, i32* @_PC_PRIO_IO
%38 = tail call i32 @print_conf_value(i32 %37, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i64 0, i64 0))
%39 = load i32, i32* @_PC_SYNC_IO
%40 = tail call i32 @print_conf_value(i32 %39, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0))
ret void
}