#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*/ testCharToString();
int /*<<< orphan*/ testConcat();
int /*<<< orphan*/ testConvertToLowerCase();
int /*<<< orphan*/ testConvertToUpperCase();
int /*<<< orphan*/ testCopyString();
int /*<<< orphan*/ testEndsWith();
int /*<<< orphan*/ testFindChar();
int /*<<< orphan*/ testFindLastChar();
int /*<<< orphan*/ testFindLastString();
int /*<<< orphan*/ testFindString();
int /*<<< orphan*/ testIntegerToString();
int /*<<< orphan*/ testIthChar();
int /*<<< orphan*/ testQuoteHTML();
int /*<<< orphan*/ testQuoteString();
int /*<<< orphan*/ testRealToString();
int /*<<< orphan*/ testSearchStringArray();
int /*<<< orphan*/ testStartsWith();
int /*<<< orphan*/ testStringArrayLength();
int /*<<< orphan*/ testStringCompare();
int /*<<< orphan*/ testStringEqual();
int /*<<< orphan*/ testStringEqualIgnoreCase();
int /*<<< orphan*/ testStringLength();
int /*<<< orphan*/ testStringToInteger();
int /*<<< orphan*/ testStringToReal();
int /*<<< orphan*/ testSubString();
int /*<<< orphan*/ testTrim();
void testStrlibModule(void) {
  testConcat();
  testIthChar();
  testSubString();
  testCharToString();
  testStringLength();
  testCopyString();
  testStringEqual();
  testStringEqualIgnoreCase();
  testStringCompare();
  testStartsWith();
  testEndsWith();
  testFindChar();
  testFindString();
  testFindLastChar();
  testFindLastString();
  testConvertToLowerCase();
  testConvertToUpperCase();
  testIntegerToString();
  testStringToInteger();
  testRealToString();
  testStringToReal();
  testTrim();
  testQuoteString();
  testQuoteHTML();
  testStringArrayLength();
  testSearchStringArray();
}


x86 assembly (clang, -O0):
<testStrlibModule>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   1140 <testConcat@plt>
mov    $0x0,%al
call   1170 <testIthChar@plt>
mov    $0x0,%al
call   1120 <testSubString@plt>
mov    $0x0,%al
call   1130 <testCharToString@plt>
mov    $0x0,%al
call   1040 <testStringLength@plt>
mov    $0x0,%al
call   1060 <testCopyString@plt>
mov    $0x0,%al
call   1160 <testStringEqual@plt>
mov    $0x0,%al
call   1190 <testStringEqualIgnoreCase@plt>
mov    $0x0,%al
call   1150 <testStringCompare@plt>
mov    $0x0,%al
call   10e0 <testStartsWith@plt>
mov    $0x0,%al
call   1090 <testEndsWith@plt>
mov    $0x0,%al
call   10f0 <testFindChar@plt>
mov    $0x0,%al
call   11b0 <testFindString@plt>
mov    $0x0,%al
call   10a0 <testFindLastChar@plt>
mov    $0x0,%al
call   11a0 <testFindLastString@plt>
mov    $0x0,%al
call   11c0 <testConvertToLowerCase@plt>
mov    $0x0,%al
call   10c0 <testConvertToUpperCase@plt>
mov    $0x0,%al
call   1110 <testIntegerToString@plt>
mov    $0x0,%al
call   1070 <testStringToInteger@plt>
mov    $0x0,%al
call   10b0 <testRealToString@plt>
mov    $0x0,%al
call   1050 <testStringToReal@plt>
mov    $0x0,%al
call   10d0 <testTrim@plt>
mov    $0x0,%al
call   1030 <testQuoteString@plt>
mov    $0x0,%al
call   1100 <testQuoteHTML@plt>
mov    $0x0,%al
call   1180 <testStringArrayLength@plt>
mov    $0x0,%al
call   1080 <testSearchStringArray@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<testStrlibModule>:
push   %rax
xor    %eax,%eax
call   1140 <testConcat@plt>
xor    %eax,%eax
call   1170 <testIthChar@plt>
xor    %eax,%eax
call   1120 <testSubString@plt>
xor    %eax,%eax
call   1130 <testCharToString@plt>
xor    %eax,%eax
call   1040 <testStringLength@plt>
xor    %eax,%eax
call   1060 <testCopyString@plt>
xor    %eax,%eax
call   1160 <testStringEqual@plt>
xor    %eax,%eax
call   1190 <testStringEqualIgnoreCase@plt>
xor    %eax,%eax
call   1150 <testStringCompare@plt>
xor    %eax,%eax
call   10e0 <testStartsWith@plt>
xor    %eax,%eax
call   1090 <testEndsWith@plt>
xor    %eax,%eax
call   10f0 <testFindChar@plt>
xor    %eax,%eax
call   11b0 <testFindString@plt>
xor    %eax,%eax
call   10a0 <testFindLastChar@plt>
xor    %eax,%eax
call   11a0 <testFindLastString@plt>
xor    %eax,%eax
call   11c0 <testConvertToLowerCase@plt>
xor    %eax,%eax
call   10c0 <testConvertToUpperCase@plt>
xor    %eax,%eax
call   1110 <testIntegerToString@plt>
xor    %eax,%eax
call   1070 <testStringToInteger@plt>
xor    %eax,%eax
call   10b0 <testRealToString@plt>
xor    %eax,%eax
call   1050 <testStringToReal@plt>
xor    %eax,%eax
call   10d0 <testTrim@plt>
xor    %eax,%eax
call   1030 <testQuoteString@plt>
xor    %eax,%eax
call   1100 <testQuoteHTML@plt>
xor    %eax,%eax
call   1180 <testStringArrayLength@plt>
xor    %eax,%eax
pop    %rcx
jmp    1080 <testSearchStringArray@plt>

LLVM IR (-O0):
define void @testStrlibModule() {
%1 = call i32 (...) @testConcat()
%2 = call i32 (...) @testIthChar()
%3 = call i32 (...) @testSubString()
%4 = call i32 (...) @testCharToString()
%5 = call i32 (...) @testStringLength()
%6 = call i32 (...) @testCopyString()
%7 = call i32 (...) @testStringEqual()
%8 = call i32 (...) @testStringEqualIgnoreCase()
%9 = call i32 (...) @testStringCompare()
%10 = call i32 (...) @testStartsWith()
%11 = call i32 (...) @testEndsWith()
%12 = call i32 (...) @testFindChar()
%13 = call i32 (...) @testFindString()
%14 = call i32 (...) @testFindLastChar()
%15 = call i32 (...) @testFindLastString()
%16 = call i32 (...) @testConvertToLowerCase()
%17 = call i32 (...) @testConvertToUpperCase()
%18 = call i32 (...) @testIntegerToString()
%19 = call i32 (...) @testStringToInteger()
%20 = call i32 (...) @testRealToString()
%21 = call i32 (...) @testStringToReal()
%22 = call i32 (...) @testTrim()
%23 = call i32 (...) @testQuoteString()
%24 = call i32 (...) @testQuoteHTML()
%25 = call i32 (...) @testStringArrayLength()
%26 = call i32 (...) @testSearchStringArray()
ret void
}

LLVM IR (-O2):
define void @testStrlibModule() {
%1 = tail call i32 (...) @testConcat()
%2 = tail call i32 (...) @testIthChar()
%3 = tail call i32 (...) @testSubString()
%4 = tail call i32 (...) @testCharToString()
%5 = tail call i32 (...) @testStringLength()
%6 = tail call i32 (...) @testCopyString()
%7 = tail call i32 (...) @testStringEqual()
%8 = tail call i32 (...) @testStringEqualIgnoreCase()
%9 = tail call i32 (...) @testStringCompare()
%10 = tail call i32 (...) @testStartsWith()
%11 = tail call i32 (...) @testEndsWith()
%12 = tail call i32 (...) @testFindChar()
%13 = tail call i32 (...) @testFindString()
%14 = tail call i32 (...) @testFindLastChar()
%15 = tail call i32 (...) @testFindLastString()
%16 = tail call i32 (...) @testConvertToLowerCase()
%17 = tail call i32 (...) @testConvertToUpperCase()
%18 = tail call i32 (...) @testIntegerToString()
%19 = tail call i32 (...) @testStringToInteger()
%20 = tail call i32 (...) @testRealToString()
%21 = tail call i32 (...) @testStringToReal()
%22 = tail call i32 (...) @testTrim()
%23 = tail call i32 (...) @testQuoteString()
%24 = tail call i32 (...) @testQuoteHTML()
%25 = tail call i32 (...) @testStringArrayLength()
%26 = tail call i32 (...) @testSearchStringArray()
ret void
}