#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*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ f10(int /*<<< orphan*/);
int /*<<< orphan*/ f11(int /*<<< orphan*/);
int /*<<< orphan*/ f12(int /*<<< orphan*/);
int /*<<< orphan*/ f13(int /*<<< orphan*/);
int /*<<< orphan*/ f14(int /*<<< orphan*/);
int /*<<< orphan*/ f15(int /*<<< orphan*/);
int /*<<< orphan*/ f16(int /*<<< orphan*/);
int /*<<< orphan*/ f17(int /*<<< orphan*/);
int /*<<< orphan*/ f18(int /*<<< orphan*/);
int /*<<< orphan*/ f19(int /*<<< orphan*/);
int /*<<< orphan*/ f20(int /*<<< orphan*/);
int /*<<< orphan*/ f21(int /*<<< orphan*/);
int /*<<< orphan*/ f22(int /*<<< orphan*/);
int /*<<< orphan*/ f23(int /*<<< orphan*/);
int /*<<< orphan*/ f24(int /*<<< orphan*/);
int /*<<< orphan*/ f25(int /*<<< orphan*/);
int /*<<< orphan*/ f26(int /*<<< orphan*/);
int /*<<< orphan*/ f27(int /*<<< orphan*/);
int /*<<< orphan*/ f28(int /*<<< orphan*/);
int /*<<< orphan*/ f29(int /*<<< orphan*/);
int /*<<< orphan*/ f3(int /*<<< orphan*/);
int /*<<< orphan*/ f30(int /*<<< orphan*/);
int /*<<< orphan*/ f31(int /*<<< orphan*/);
int /*<<< orphan*/ f4(int /*<<< orphan*/);
int /*<<< orphan*/ f5(int /*<<< orphan*/);
int /*<<< orphan*/ f6(int /*<<< orphan*/);
int /*<<< orphan*/ f7(int /*<<< orphan*/);
int /*<<< orphan*/ f8(int /*<<< orphan*/);
int /*<<< orphan*/ f9(int /*<<< orphan*/);
int main() {
  f3(0);
  f4(0);
  f5(0);
  f6(0);
  f7(0);
  f8(0);
  f9(0);
  f10(0);
  f11(0);
  f12(0);
  f13(0);
  f14(0);
  f15(0);
  f16(0);
  f17(0);
  f18(0);
  f19(0);
  f20(0);
  f21(0);
  f22(0);
  f23(0);
  f24(0);
  f25(0);
  f26(0);
  f27(0);
  f28(0);
  f29(0);
  f30(0);
  f31(0);
  exit(0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
xor    %edi,%edi
call   10f0 <f3@plt>
xor    %edi,%edi
call   1200 <f4@plt>
xor    %edi,%edi
call   1110 <f5@plt>
xor    %edi,%edi
call   1040 <f6@plt>
xor    %edi,%edi
call   1100 <f7@plt>
xor    %edi,%edi
call   1030 <f8@plt>
xor    %edi,%edi
call   1120 <f9@plt>
xor    %edi,%edi
call   11c0 <f10@plt>
xor    %edi,%edi
call   10d0 <f11@plt>
xor    %edi,%edi
call   11b0 <f12@plt>
xor    %edi,%edi
call   1050 <f13@plt>
xor    %edi,%edi
call   1160 <f14@plt>
xor    %edi,%edi
call   1070 <f15@plt>
xor    %edi,%edi
call   1140 <f16@plt>
xor    %edi,%edi
call   1060 <f17@plt>
xor    %edi,%edi
call   1150 <f18@plt>
xor    %edi,%edi
call   1080 <f19@plt>
xor    %edi,%edi
call   10e0 <f20@plt>
xor    %edi,%edi
call   11f0 <f21@plt>
xor    %edi,%edi
call   1090 <f22@plt>
xor    %edi,%edi
call   1190 <f23@plt>
xor    %edi,%edi
call   10b0 <f24@plt>
xor    %edi,%edi
call   1170 <f25@plt>
xor    %edi,%edi
call   10a0 <f26@plt>
xor    %edi,%edi
call   1180 <f27@plt>
xor    %edi,%edi
call   10c0 <f28@plt>
xor    %edi,%edi
call   11a0 <f29@plt>
xor    %edi,%edi
call   1130 <f30@plt>
xor    %edi,%edi
call   11d0 <f31@plt>
xor    %edi,%edi
call   11e0 <exit@plt>

x86 assembly (clang, -O2):
<main>:
push   %rax
xor    %edi,%edi
call   10f0 <f3@plt>
xor    %edi,%edi
call   1200 <f4@plt>
xor    %edi,%edi
call   1110 <f5@plt>
xor    %edi,%edi
call   1040 <f6@plt>
xor    %edi,%edi
call   1100 <f7@plt>
xor    %edi,%edi
call   1030 <f8@plt>
xor    %edi,%edi
call   1120 <f9@plt>
xor    %edi,%edi
call   11c0 <f10@plt>
xor    %edi,%edi
call   10d0 <f11@plt>
xor    %edi,%edi
call   11b0 <f12@plt>
xor    %edi,%edi
call   1050 <f13@plt>
xor    %edi,%edi
call   1160 <f14@plt>
xor    %edi,%edi
call   1070 <f15@plt>
xor    %edi,%edi
call   1140 <f16@plt>
xor    %edi,%edi
call   1060 <f17@plt>
xor    %edi,%edi
call   1150 <f18@plt>
xor    %edi,%edi
call   1080 <f19@plt>
xor    %edi,%edi
call   10e0 <f20@plt>
xor    %edi,%edi
call   11f0 <f21@plt>
xor    %edi,%edi
call   1090 <f22@plt>
xor    %edi,%edi
call   1190 <f23@plt>
xor    %edi,%edi
call   10b0 <f24@plt>
xor    %edi,%edi
call   1170 <f25@plt>
xor    %edi,%edi
call   10a0 <f26@plt>
xor    %edi,%edi
call   1180 <f27@plt>
xor    %edi,%edi
call   10c0 <f28@plt>
xor    %edi,%edi
call   11a0 <f29@plt>
xor    %edi,%edi
call   1130 <f30@plt>
xor    %edi,%edi
call   11d0 <f31@plt>
xor    %edi,%edi
call   11e0 <exit@plt>

LLVM IR (-O0):
define i32 @main() {
%1 = alloca i32
store i32 0, i32* %1
%2 = call i32 @f3(i32 0)
%3 = call i32 @f4(i32 0)
%4 = call i32 @f5(i32 0)
%5 = call i32 @f6(i32 0)
%6 = call i32 @f7(i32 0)
%7 = call i32 @f8(i32 0)
%8 = call i32 @f9(i32 0)
%9 = call i32 @f10(i32 0)
%10 = call i32 @f11(i32 0)
%11 = call i32 @f12(i32 0)
%12 = call i32 @f13(i32 0)
%13 = call i32 @f14(i32 0)
%14 = call i32 @f15(i32 0)
%15 = call i32 @f16(i32 0)
%16 = call i32 @f17(i32 0)
%17 = call i32 @f18(i32 0)
%18 = call i32 @f19(i32 0)
%19 = call i32 @f20(i32 0)
%20 = call i32 @f21(i32 0)
%21 = call i32 @f22(i32 0)
%22 = call i32 @f23(i32 0)
%23 = call i32 @f24(i32 0)
%24 = call i32 @f25(i32 0)
%25 = call i32 @f26(i32 0)
%26 = call i32 @f27(i32 0)
%27 = call i32 @f28(i32 0)
%28 = call i32 @f29(i32 0)
%29 = call i32 @f30(i32 0)
%30 = call i32 @f31(i32 0)
%31 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
define i32 @main() {
%1 = tail call i32 @f3(i32 0)
%2 = tail call i32 @f4(i32 0)
%3 = tail call i32 @f5(i32 0)
%4 = tail call i32 @f6(i32 0)
%5 = tail call i32 @f7(i32 0)
%6 = tail call i32 @f8(i32 0)
%7 = tail call i32 @f9(i32 0)
%8 = tail call i32 @f10(i32 0)
%9 = tail call i32 @f11(i32 0)
%10 = tail call i32 @f12(i32 0)
%11 = tail call i32 @f13(i32 0)
%12 = tail call i32 @f14(i32 0)
%13 = tail call i32 @f15(i32 0)
%14 = tail call i32 @f16(i32 0)
%15 = tail call i32 @f17(i32 0)
%16 = tail call i32 @f18(i32 0)
%17 = tail call i32 @f19(i32 0)
%18 = tail call i32 @f20(i32 0)
%19 = tail call i32 @f21(i32 0)
%20 = tail call i32 @f22(i32 0)
%21 = tail call i32 @f23(i32 0)
%22 = tail call i32 @f24(i32 0)
%23 = tail call i32 @f25(i32 0)
%24 = tail call i32 @f26(i32 0)
%25 = tail call i32 @f27(i32 0)
%26 = tail call i32 @f28(i32 0)
%27 = tail call i32 @f29(i32 0)
%28 = tail call i32 @f30(i32 0)
%29 = tail call i32 @f31(i32 0)
%30 = tail call i32 @exit(i32 0)
unreachable
}