#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 */
typedef int int32_t;

/* Variables and functions */
#define E2BIG 199
#define EACCES 198
#define EADDRINUSE 197
#define EADDRNOTAVAIL 196
#define EAFNOSUPPORT 195
#define EAGAIN 194
#define EALREADY 193
#define EBADF 192
#define EBADMSG 191
#define ECHILD 190
#define ECONNABORTED 189
#define ECONNREFUSED 188
#define ECONNRESET 187
#define EDEADLK 186
#define EDESTADDRREQ 185
#define EDOM 184
#define EDQUOT 183
#define EEXIST 182
#define EFBIG 181
#define EHOSTDOWN 180
#define EHOSTUNREACH 179
#define EIDRM 178
#define EILSEQ 177
#define EINPROGRESS 176
#define EINVAL 175
#define EIO 174
#define EISCONN 173
#define EISDIR 172
#define ELOOP 171
#define EMLINK 170
#define EMSGSIZE 169
#define EMULTIHOP 168
#define ENAMETOOLONG 167
#define ENETDOWN 166
#define ENETRESET 165
#define ENETUNREACH 164
#define ENFILE 163
#define ENOBUFS 162
#define ENODATA 161
#define ENOENT 160
#define ENOEXEC 159
#define ENOLCK 158
#define ENOLINK 157
#define ENOMSG 156
#define ENOPROTOOPT 155
#define ENOSPC 154
#define ENOSR 153
#define ENOSTR 152
#define ENOSYS 151
#define ENOTBLK 150
#define ENOTCONN 149
#define ENOTEMPTY 148
#define ENOTSOCK 147
#define ENOTTY 146
#define EOPNOTSUPP 145
#define EOVERFLOW 144
#define EPERM 143
#define EPFNOSUPPORT 142
#define EPIPE 141
#define EPROTO 140
#define EPROTONOSUPPORT 139
#define EPROTOTYPE 138
#define ERANGE 137
#define EREMOTE 136
#define ESHUTDOWN 135
#define ESOCKTNOSUPPORT 134
#define ESRCH 133
#define ESTALE 132
#define ETIME 131
#define ETIMEDOUT 130
#define ETOOMANYREFS 129
#define EUSERS 128
int errno;
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, int);
int /*<<< orphan*/ perror(int /*<<< orphan*/ *);
int /*<<< orphan*/ stderr;
int32_t MapErrno() {
  switch (errno) {
  case 0:
    return 0;
  case ENOENT:
    return -33;
  case ESRCH:
    return -20;
  case EBADF:
    return -37;
  case ECHILD:
    return -21;
  case EDEADLK:
    return -22;
  case ENOTBLK:
    return -23;
  case EISDIR:
    return -24;
  case EINVAL:
    return -25;
  case ENOEXEC:
    return -66;
  case EILSEQ:
    return -27;
  case ENOSYS:
    return -32;
  case EACCES:
    return -36;
  case EPERM:
    return -38;
  case ENFILE:
    return -50;
  case EFBIG:
    return -71;
  case ELOOP:
    return -80;
  case EPIPE:
    return -81;
  case EMLINK:
    return -82;
  case ENOTEMPTY:
    return -83;
  case EEXIST:
    return -85;
  case ENAMETOOLONG:
    return -86;
  case ENOTTY:
    return -87;
  case ERANGE:
    return -88;
  case EDOM:
    return -89;
  case EIO:
    return -90;
  case ENOSPC:
    return -91;
  case EUSERS:
    return -101;
  case EDQUOT:
    return -102;
  case ESTALE:
    return -103;
  case EREMOTE:
    return -104;
  case ENOLCK:
    return -110;
  case EBADMSG:
    return -114;
  case EIDRM:
    return -115;
  case EMULTIHOP:
    return -116;
  case ENODATA:
    return -117;
  case ENOLINK:
    return -118;
  case ENOMSG:
    return -119;
  case ENOSR:
    return -120;
  case ENOSTR:
    return -121;
  case EOVERFLOW:
    return -122;
  case EPROTO:
    return -123;
  case ETIME:
    return -124;
  case E2BIG:
    return -125;
  case ENOTSOCK:
    return -300;
  case EDESTADDRREQ:
    return -301;
  case EMSGSIZE:
    return -302;
  case EPROTOTYPE:
    return -303;
  case ENOPROTOOPT:
    return -304;
  case EPROTONOSUPPORT:
    return -305;
  case ESOCKTNOSUPPORT:
    return -306;
  case EOPNOTSUPP:
    return -307;
  case EPFNOSUPPORT:
    return -308;
  case EAFNOSUPPORT:
    return -309;
  case EADDRINUSE:
    return -310;
  case EADDRNOTAVAIL:
    return -311;
  case ENETDOWN:
    return -312;
  case ENETUNREACH:
    return -313;
  case ENETRESET:
    return -314;
  case ECONNABORTED:
    return -315;
  case ECONNRESET:
    return -316;
  case EISCONN:
    return -317;
  case ENOTCONN:
    return -318;
  case ESHUTDOWN:
    return -319;
  case ETIMEDOUT:
    return -320;
  case ECONNREFUSED:
    return -321;
  case EHOSTDOWN:
    return -322;
  case EHOSTUNREACH:
    return -323;
  case EALREADY:
    return -324;
  case EINPROGRESS:
    return -325;
  case EAGAIN:
    return -326;
  case ENOBUFS:
    return -327;
  case ETOOMANYREFS:
    return -328;
  default:
    fprintf(stderr, "Unmapped errno %d ", errno);
    perror(NULL);
    return -1;
  }
}


x86 assembly (clang, -O0):
<MapErrno>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    0x2ea9(%rip),%rax
mov    (%rax),%eax
mov    %rax,-0x10(%rbp)
sub    $0xc7,%rax
ja     14c1 <MapErrno+0x3a1>
mov    -0x10(%rbp),%rax
lea    0xeb4(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x0,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffdf,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffec,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffdb,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffeb,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffea,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffe9,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffe8,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffe7,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffbe,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffe5,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffe0,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffdc,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffda,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffce,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffb9,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffb0,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffaf,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffae,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffad,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffab,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffaa,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffa9,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffa8,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffa7,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffa6,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffffa5,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff9b,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff9a,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff99,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff98,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff92,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff8e,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff8d,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff8c,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff8b,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff8a,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff89,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff88,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff87,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff86,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff85,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff84,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xffffff83,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffed4,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffed3,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffed2,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffed1,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffed0,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffecf,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffece,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffecd,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffecc,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffecb,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffeca,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec9,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec8,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec7,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec6,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec5,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec4,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec3,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec2,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec1,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffec0,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffebf,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffebe,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffebd,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffebc,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffebb,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffeba,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffeb9,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
movl   $0xfffffeb8,-0x4(%rbp)
jmp    14ef <MapErrno+0x3cf>
mov    0x2b18(%rip),%rax
mov    (%rax),%edi
mov    0x2b07(%rip),%rax
mov    (%rax),%edx
lea    0xe46(%rip),%rsi
call   1030 <fprintf@plt>
xor    %eax,%eax
mov    %eax,%edi
call   1040 <perror@plt>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<MapErrno>:
push   %rax
mov    0x2eb0(%rip),%rax
mov    (%rax),%eax
cmp    $0xc7,%rax
ja     133e <MapErrno+0x21e>
lea    0xec3(%rip),%rcx
movslq (%rcx,%rax,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
mov    $0xffffff9b,%eax
pop    %rcx
ret
mov    $0xfffffeb8,%eax
pop    %rcx
ret
mov    $0xfffffec0,%eax
pop    %rcx
ret
mov    $0xffffff84,%eax
pop    %rcx
ret
mov    $0xffffff99,%eax
pop    %rcx
ret
mov    $0xffffffec,%eax
pop    %rcx
ret
mov    $0xfffffece,%eax
pop    %rcx
ret
mov    $0xfffffec1,%eax
pop    %rcx
ret
mov    $0xffffff98,%eax
pop    %rcx
ret
mov    $0xffffffa8,%eax
pop    %rcx
ret
mov    $0xfffffed1,%eax
pop    %rcx
ret
mov    $0xfffffecf,%eax
pop    %rcx
ret
mov    $0xffffff85,%eax
pop    %rcx
ret
mov    $0xffffffaf,%eax
pop    %rcx
ret
mov    $0xfffffecc,%eax
pop    %rcx
ret
mov    $0xffffffda,%eax
pop    %rcx
ret
mov    $0xffffff86,%eax
pop    %rcx
ret
mov    $0xfffffecd,%eax
pop    %rcx
ret
mov    $0xffffffa9,%eax
pop    %rcx
ret
mov    $0xfffffed4,%eax
pop    %rcx
ret
mov    $0xffffffad,%eax
pop    %rcx
ret
mov    $0xfffffec2,%eax
pop    %rcx
ret
mov    $0xffffffe9,%eax
pop    %rcx
ret
mov    $0xffffffe0,%eax
pop    %rcx
ret
mov    $0xffffff87,%eax
pop    %rcx
ret
mov    $0xffffff88,%eax
pop    %rcx
ret
mov    $0xffffffa5,%eax
pop    %rcx
ret
mov    $0xfffffed0,%eax
pop    %rcx
ret
mov    $0xffffff89,%eax
pop    %rcx
ret
mov    $0xffffff8a,%eax
pop    %rcx
ret
mov    $0xffffff92,%eax
pop    %rcx
ret
mov    $0xffffffbe,%eax
pop    %rcx
ret
mov    $0xffffffdf,%eax
pop    %rcx
ret
mov    $0xffffff8b,%eax
pop    %rcx
ret
mov    $0xfffffeb9,%eax
pop    %rcx
ret
mov    $0xffffffce,%eax
pop    %rcx
ret
mov    $0xfffffec7,%eax
pop    %rcx
ret
mov    $0xfffffec6,%eax
pop    %rcx
ret
mov    $0xfffffec8,%eax
pop    %rcx
ret
mov    $0xffffffaa,%eax
pop    %rcx
ret
mov    $0xffffff8c,%eax
pop    %rcx
ret
mov    $0xfffffed2,%eax
pop    %rcx
ret
mov    $0xffffffae,%eax
pop    %rcx
ret
mov    $0xffffffb0,%eax
pop    %rcx
ret
mov    $0xffffffe8,%eax
pop    %rcx
ret
mov    $0xfffffec3,%eax
pop    %rcx
ret
mov    $0xffffffa6,%eax
pop    %rcx
ret
mov    $0xffffffe7,%eax
pop    %rcx
ret
mov    $0xfffffebb,%eax
pop    %rcx
ret
mov    $0xffffffe5,%eax
pop    %rcx
ret
mov    $0xffffff8d,%eax
pop    %rcx
ret
mov    $0xfffffebd,%eax
pop    %rcx
ret
mov    $0xfffffebe,%eax
pop    %rcx
ret
mov    $0xffffffb9,%eax
pop    %rcx
ret
mov    $0xffffffab,%eax
pop    %rcx
ret
mov    $0xffffff9a,%eax
pop    %rcx
ret
mov    $0xffffffa7,%eax
pop    %rcx
ret
mov    $0xfffffed3,%eax
pop    %rcx
ret
mov    $0xffffffea,%eax
pop    %rcx
ret
mov    $0xfffffec4,%eax
pop    %rcx
ret
mov    $0xfffffebf,%eax
pop    %rcx
ret
mov    $0xfffffec5,%eax
pop    %rcx
ret
mov    $0xffffffeb,%eax
pop    %rcx
ret
mov    $0xffffff8e,%eax
pop    %rcx
ret
mov    $0xffffffdb,%eax
pop    %rcx
ret
mov    $0xfffffebc,%eax
pop    %rcx
ret
mov    $0xfffffeba,%eax
pop    %rcx
ret
mov    $0xfffffecb,%eax
pop    %rcx
ret
mov    $0xfffffec9,%eax
pop    %rcx
ret
mov    $0xfffffeca,%eax
pop    %rcx
ret
mov    $0xffffffdc,%eax
pop    %rcx
ret
mov    $0xffffff83,%eax
pop    %rcx
ret
mov    0x2c9b(%rip),%rcx
mov    (%rcx),%edi
lea    0xfd2(%rip),%rsi
mov    %eax,%edx
call   1030 <fprintf@plt>
xor    %edi,%edi
call   1040 <perror@plt>
mov    $0xffffffff,%eax
pop    %rcx
ret

LLVM IR (-O0):
@errno = global i32 0
@stderr = global i32 0
@.str = [19 x i8] c"Unmapped errno %d \00"
define i32 @MapErrno() {
%1 = alloca i32
%2 = load i32, i32* @errno
switch i32 %2, label %76 [
i32 0, label %3
i32 160, label %4
i32 133, label %5
i32 192, label %6
i32 190, label %7
i32 186, label %8
i32 150, label %9
i32 172, label %10
i32 175, label %11
i32 159, label %12
i32 177, label %13
i32 151, label %14
i32 198, label %15
i32 143, label %16
i32 163, label %17
i32 181, label %18
i32 171, label %19
i32 141, label %20
i32 170, label %21
i32 148, label %22
i32 182, label %23
i32 167, label %24
i32 146, label %25
i32 137, label %26
i32 184, label %27
i32 174, label %28
i32 154, label %29
i32 128, label %30
i32 183, label %31
i32 132, label %32
i32 136, label %33
i32 158, label %34
i32 191, label %35
i32 178, label %36
i32 168, label %37
i32 161, label %38
i32 157, label %39
i32 156, label %40
i32 153, label %41
i32 152, label %42
i32 144, label %43
i32 140, label %44
i32 131, label %45
i32 199, label %46
i32 147, label %47
i32 185, label %48
i32 169, label %49
i32 138, label %50
i32 155, label %51
i32 139, label %52
i32 134, label %53
i32 145, label %54
i32 142, label %55
i32 195, label %56
i32 197, label %57
i32 196, label %58
i32 166, label %59
i32 164, label %60
i32 165, label %61
i32 189, label %62
i32 187, label %63
i32 173, label %64
i32 149, label %65
i32 135, label %66
i32 130, label %67
i32 188, label %68
i32 180, label %69
i32 179, label %70
i32 193, label %71
i32 176, label %72
i32 194, label %73
i32 162, label %74
i32 129, label %75
]
3: ; preds = %0
store i32 0, i32* %1
br label %81
4: ; preds = %0
store i32 -33, i32* %1
br label %81
5: ; preds = %0
store i32 -20, i32* %1
br label %81
6: ; preds = %0
store i32 -37, i32* %1
br label %81
7: ; preds = %0
store i32 -21, i32* %1
br label %81
8: ; preds = %0
store i32 -22, i32* %1
br label %81
9: ; preds = %0
store i32 -23, i32* %1
br label %81
10: ; preds = %0
store i32 -24, i32* %1
br label %81
11: ; preds = %0
store i32 -25, i32* %1
br label %81
12: ; preds = %0
store i32 -66, i32* %1
br label %81
13: ; preds = %0
store i32 -27, i32* %1
br label %81
14: ; preds = %0
store i32 -32, i32* %1
br label %81
15: ; preds = %0
store i32 -36, i32* %1
br label %81
16: ; preds = %0
store i32 -38, i32* %1
br label %81
17: ; preds = %0
store i32 -50, i32* %1
br label %81
18: ; preds = %0
store i32 -71, i32* %1
br label %81
19: ; preds = %0
store i32 -80, i32* %1
br label %81
20: ; preds = %0
store i32 -81, i32* %1
br label %81
21: ; preds = %0
store i32 -82, i32* %1
br label %81
22: ; preds = %0
store i32 -83, i32* %1
br label %81
23: ; preds = %0
store i32 -85, i32* %1
br label %81
24: ; preds = %0
store i32 -86, i32* %1
br label %81
25: ; preds = %0
store i32 -87, i32* %1
br label %81
26: ; preds = %0
store i32 -88, i32* %1
br label %81
27: ; preds = %0
store i32 -89, i32* %1
br label %81
28: ; preds = %0
store i32 -90, i32* %1
br label %81
29: ; preds = %0
store i32 -91, i32* %1
br label %81
30: ; preds = %0
store i32 -101, i32* %1
br label %81
31: ; preds = %0
store i32 -102, i32* %1
br label %81
32: ; preds = %0
store i32 -103, i32* %1
br label %81
33: ; preds = %0
store i32 -104, i32* %1
br label %81
34: ; preds = %0
store i32 -110, i32* %1
br label %81
35: ; preds = %0
store i32 -114, i32* %1
br label %81
36: ; preds = %0
store i32 -115, i32* %1
br label %81
37: ; preds = %0
store i32 -116, i32* %1
br label %81
38: ; preds = %0
store i32 -117, i32* %1
br label %81
39: ; preds = %0
store i32 -118, i32* %1
br label %81
40: ; preds = %0
store i32 -119, i32* %1
br label %81
41: ; preds = %0
store i32 -120, i32* %1
br label %81
42: ; preds = %0
store i32 -121, i32* %1
br label %81
43: ; preds = %0
store i32 -122, i32* %1
br label %81
44: ; preds = %0
store i32 -123, i32* %1
br label %81
45: ; preds = %0
store i32 -124, i32* %1
br label %81
46: ; preds = %0
store i32 -125, i32* %1
br label %81
47: ; preds = %0
store i32 -300, i32* %1
br label %81
48: ; preds = %0
store i32 -301, i32* %1
br label %81
49: ; preds = %0
store i32 -302, i32* %1
br label %81
50: ; preds = %0
store i32 -303, i32* %1
br label %81
51: ; preds = %0
store i32 -304, i32* %1
br label %81
52: ; preds = %0
store i32 -305, i32* %1
br label %81
53: ; preds = %0
store i32 -306, i32* %1
br label %81
54: ; preds = %0
store i32 -307, i32* %1
br label %81
55: ; preds = %0
store i32 -308, i32* %1
br label %81
56: ; preds = %0
store i32 -309, i32* %1
br label %81
57: ; preds = %0
store i32 -310, i32* %1
br label %81
58: ; preds = %0
store i32 -311, i32* %1
br label %81
59: ; preds = %0
store i32 -312, i32* %1
br label %81
60: ; preds = %0
store i32 -313, i32* %1
br label %81
61: ; preds = %0
store i32 -314, i32* %1
br label %81
62: ; preds = %0
store i32 -315, i32* %1
br label %81
63: ; preds = %0
store i32 -316, i32* %1
br label %81
64: ; preds = %0
store i32 -317, i32* %1
br label %81
65: ; preds = %0
store i32 -318, i32* %1
br label %81
66: ; preds = %0
store i32 -319, i32* %1
br label %81
67: ; preds = %0
store i32 -320, i32* %1
br label %81
68: ; preds = %0
store i32 -321, i32* %1
br label %81
69: ; preds = %0
store i32 -322, i32* %1
br label %81
70: ; preds = %0
store i32 -323, i32* %1
br label %81
71: ; preds = %0
store i32 -324, i32* %1
br label %81
72: ; preds = %0
store i32 -325, i32* %1
br label %81
73: ; preds = %0
store i32 -326, i32* %1
br label %81
74: ; preds = %0
store i32 -327, i32* %1
br label %81
75: ; preds = %0
store i32 -328, i32* %1
br label %81
76: ; preds = %0
%77 = load i32, i32* @stderr
%78 = load i32, i32* @errno
%79 = call i32 @fprintf(i32 %77, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str, i64 0, i64 0), i32 %78)
%80 = call i32 @perror(i32* null)
store i32 -1, i32* %1
br label %81
81: ; preds = %76, %75, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %43, %42, %41, %40, %39, %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3
%82 = load i32, i32* %1
ret i32 %82
}

LLVM IR (-O2):
@errno = global i32 0
@stderr = global i32 0
@.str = [19 x i8] c"Unmapped errno %d \00"
define i32 @MapErrno() {
%1 = load i32, i32* @errno
switch i32 %1, label %74 [
i32 0, label %78
i32 160, label %2
i32 133, label %3
i32 192, label %4
i32 190, label %5
i32 186, label %6
i32 150, label %7
i32 172, label %8
i32 175, label %9
i32 159, label %10
i32 177, label %11
i32 151, label %12
i32 198, label %13
i32 143, label %14
i32 163, label %15
i32 181, label %16
i32 171, label %17
i32 141, label %18
i32 170, label %19
i32 148, label %20
i32 182, label %21
i32 167, label %22
i32 146, label %23
i32 137, label %24
i32 184, label %25
i32 174, label %26
i32 154, label %27
i32 128, label %28
i32 183, label %29
i32 132, label %30
i32 136, label %31
i32 158, label %32
i32 191, label %33
i32 178, label %34
i32 168, label %35
i32 161, label %36
i32 157, label %37
i32 156, label %38
i32 153, label %39
i32 152, label %40
i32 144, label %41
i32 140, label %42
i32 131, label %43
i32 199, label %44
i32 147, label %45
i32 185, label %46
i32 169, label %47
i32 138, label %48
i32 155, label %49
i32 139, label %50
i32 134, label %51
i32 145, label %52
i32 142, label %53
i32 195, label %54
i32 197, label %55
i32 196, label %56
i32 166, label %57
i32 164, label %58
i32 165, label %59
i32 189, label %60
i32 187, label %61
i32 173, label %62
i32 149, label %63
i32 135, label %64
i32 130, label %65
i32 188, label %66
i32 180, label %67
i32 179, label %68
i32 193, label %69
i32 176, label %70
i32 194, label %71
i32 162, label %72
i32 129, label %73
]
2: ; preds = %0
br label %78
3: ; preds = %0
br label %78
4: ; preds = %0
br label %78
5: ; preds = %0
br label %78
6: ; preds = %0
br label %78
7: ; preds = %0
br label %78
8: ; preds = %0
br label %78
9: ; preds = %0
br label %78
10: ; preds = %0
br label %78
11: ; preds = %0
br label %78
12: ; preds = %0
br label %78
13: ; preds = %0
br label %78
14: ; preds = %0
br label %78
15: ; preds = %0
br label %78
16: ; preds = %0
br label %78
17: ; preds = %0
br label %78
18: ; preds = %0
br label %78
19: ; preds = %0
br label %78
20: ; preds = %0
br label %78
21: ; preds = %0
br label %78
22: ; preds = %0
br label %78
23: ; preds = %0
br label %78
24: ; preds = %0
br label %78
25: ; preds = %0
br label %78
26: ; preds = %0
br label %78
27: ; preds = %0
br label %78
28: ; preds = %0
br label %78
29: ; preds = %0
br label %78
30: ; preds = %0
br label %78
31: ; preds = %0
br label %78
32: ; preds = %0
br label %78
33: ; preds = %0
br label %78
34: ; preds = %0
br label %78
35: ; preds = %0
br label %78
36: ; preds = %0
br label %78
37: ; preds = %0
br label %78
38: ; preds = %0
br label %78
39: ; preds = %0
br label %78
40: ; preds = %0
br label %78
41: ; preds = %0
br label %78
42: ; preds = %0
br label %78
43: ; preds = %0
br label %78
44: ; preds = %0
br label %78
45: ; preds = %0
br label %78
46: ; preds = %0
br label %78
47: ; preds = %0
br label %78
48: ; preds = %0
br label %78
49: ; preds = %0
br label %78
50: ; preds = %0
br label %78
51: ; preds = %0
br label %78
52: ; preds = %0
br label %78
53: ; preds = %0
br label %78
54: ; preds = %0
br label %78
55: ; preds = %0
br label %78
56: ; preds = %0
br label %78
57: ; preds = %0
br label %78
58: ; preds = %0
br label %78
59: ; preds = %0
br label %78
60: ; preds = %0
br label %78
61: ; preds = %0
br label %78
62: ; preds = %0
br label %78
63: ; preds = %0
br label %78
64: ; preds = %0
br label %78
65: ; preds = %0
br label %78
66: ; preds = %0
br label %78
67: ; preds = %0
br label %78
68: ; preds = %0
br label %78
69: ; preds = %0
br label %78
70: ; preds = %0
br label %78
71: ; preds = %0
br label %78
72: ; preds = %0
br label %78
73: ; preds = %0
br label %78
74: ; preds = %0
%75 = load i32, i32* @stderr
%76 = tail call i32 @fprintf(i32 %75, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str, i64 0, i64 0), i32 %1)
%77 = tail call i32 @perror(i32* null)
br label %78
78: ; preds = %0, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %43, %42, %41, %40, %39, %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2
%79 = phi i32 [ -1, %74 ], [ -328, %73 ], [ -327, %72 ], [ -326, %71 ], [ -325, %70 ], [ -324, %69 ], [ -323, %68 ], [ -322, %67 ], [ -321, %66 ], [ -320, %65 ], [ -319, %64 ], [ -318, %63 ], [ -317, %62 ], [ -316, %61 ], [ -315, %60 ], [ -314, %59 ], [ -313, %58 ], [ -312, %57 ], [ -311, %56 ], [ -310, %55 ], [ -309, %54 ], [ -308, %53 ], [ -307, %52 ], [ -306, %51 ], [ -305, %50 ], [ -304, %49 ], [ -303, %48 ], [ -302, %47 ], [ -301, %46 ], [ -300, %45 ], [ -125, %44 ], [ -124, %43 ], [ -123, %42 ], [ -122, %41 ], [ -121, %40 ], [ -120, %39 ], [ -119, %38 ], [ -118, %37 ], [ -117, %36 ], [ -116, %35 ], [ -115, %34 ], [ -114, %33 ], [ -110, %32 ], [ -104, %31 ], [ -103, %30 ], [ -102, %29 ], [ -101, %28 ], [ -91, %27 ], [ -90, %26 ], [ -89, %25 ], [ -88, %24 ], [ -87, %23 ], [ -86, %22 ], [ -85, %21 ], [ -83, %20 ], [ -82, %19 ], [ -81, %18 ], [ -80, %17 ], [ -71, %16 ], [ -50, %15 ], [ -38, %14 ], [ -36, %13 ], [ -32, %12 ], [ -27, %11 ], [ -66, %10 ], [ -25, %9 ], [ -24, %8 ], [ -23, %7 ], [ -22, %6 ], [ -21, %5 ], [ -37, %4 ], [ -20, %3 ], [ -33, %2 ], [ %1, %0 ]
ret i32 %79
}