Verified Commit da25a9cb authored by Tim Gymnich's avatar Tim Gymnich
Browse files

added sparse matrix

parent c54342d7
......@@ -105,7 +105,7 @@ set(PAIN_SOURCES
src/simple_interval.cpp
src/normalized_conjunction.cpp
src/linear_equality.cpp
src/affine_relation.cpp
src/linear_subspace.cpp
)
set(PAIN_HEADERS
......@@ -118,8 +118,9 @@ set(PAIN_HEADERS
src/global.h
src/abstract_state.h
src/hash_utils.h
src/affine_relation.h
src/matrix.h
src/linear_subspace.h
src/simple_matrix.h
src/sparse_matrix.h
)
include_directories(${LLVM_INCLUDE_DIRS})
......@@ -134,6 +135,10 @@ add_llvm_library(llvm-pain MODULE
opt
)
#
# Tests
#
add_llvm_executable(simple_interval_test
test/simple_interval_test.cpp
${PAIN_HEADERS}
......@@ -160,8 +165,8 @@ target_link_libraries(normalized_conjunction_test
${LLVM_AVAILABLE_LIBS}
)
add_llvm_executable(affine_relation_test
test/affine_relation_test.cpp
add_llvm_executable(linear_subspace_test
test/linear_subspace_test.cpp
${PAIN_HEADERS}
${PAIN_SOURCES}
DEPENDS
......@@ -169,17 +174,27 @@ add_llvm_executable(affine_relation_test
intrinsics_gen
)
target_link_libraries(affine_relation_test
target_link_libraries(linear_subspace_test
${LLVM_AVAILABLE_LIBS}
)
add_llvm_executable(matrix_test
test/matrix_test.cpp
add_llvm_executable(simple_matrix_test
test/simple_matrix_test.cpp
${PAIN_HEADERS}
${PAIN_SOURCES}
)
target_link_libraries(matrix_test
target_link_libraries(simple_matrix_test
${LLVM_AVAILABLE_LIBS}
)
add_llvm_executable(sparse_matrix_test
test/sparse_matrix_test.cpp
${PAIN_HEADERS}
${PAIN_SOURCES}
)
target_link_libraries(sparse_matrix_test
${LLVM_AVAILABLE_LIBS}
)
......@@ -198,13 +213,21 @@ add_test(NAME normalizedConjunctionTest
)
add_test(NAME affineRelationTest
COMMAND affine_relation_test
COMMAND linear_subspace_test
)
add_test(NAME matrixTest
COMMAND matrix_test
add_test(NAME simpleMatrixTest
COMMAND simple_matrix_test
)
add_test(NAME sparseMatrixTest
COMMAND sparse_matrix_test
)
#
# Samples
#
set(SAMPLES
add-1-float
add-1
......@@ -248,6 +271,10 @@ set(SAMPLES
while-bigger-steps
while-neg
example-1
A
B
C
D
)
# Older CMake version do not support list transformations
......
/*
* This is a RANDOMLY GENERATED PROGRAM.
*
* Generator: csmith 2.3.0
* Git version: 30dccd7
* Options: --output A.c --no-argc --no-arrays --no-bitfields --no-checksum --no-comma-operators --no-compound-assignment --no-divs --no-float --no-structs --no-unions --no-packed-struct --no-pointers --no-builtins --no-math64 --no-longlong --no-checksum --no-safe-math --max-block-size 2 --max-funcs 2
* Seed: 7117265377608335715
*/
#define NO_LONGLONG
#define int8_t signed char
#define uint8_t unsigned char
#define int16_t short
#define uint16_t unsigned short
#define int32_t int
#define uint32_t unsigned
#define int64_t long long
#define uint64_t unsigned long long
static inline void
platform_main_end (uint64_t x, int flag)
{
#ifndef NOT_PRINT_CHECKSUM
if (!flag) {
#ifdef NO_PRINTF
int i;
my_puts ("checksum = ");
for (i=0; i<16; i++) {
put_hex (x & 0xf);
x >>= 4;
}
putchar ('\n');
#else
printf ("checksum = %llx\n", x);
#endif
}
#endif
}
volatile uint32_t csmith_sink_ = 0;
static long __undefined;
/* --- Struct/Union Declarations --- */
/* --- GLOBAL VARIABLES --- */
static int32_t g_2 = (-1);
static int32_t g_3 = 0x245F1DBE;
static int16_t g_62 = 0xE6DE;
static int32_t g_65 = 0;
static int8_t g_66 = (-5);
/* --- FORWARD DECLARATIONS --- */
static uint16_t func_1(void);
static int8_t func_16(const int16_t p_17, uint8_t p_18, int8_t p_19, int32_t p_20, uint32_t p_21);
/* --- FUNCTIONS --- */
/* ------------------------------------------ */
/*
* reads : g_2 g_3 g_66
* writes: g_3 g_62 g_65 g_66 g_2
*/
static uint16_t func_1(void)
{ /* block id: 0 */
const uint16_t l_22 = 65526U;
int32_t l_32 = (-1);
g_2 = ((g_3 = g_2) && ((uint8_t)(((((g_66 = ((((uint8_t)g_2 % (uint8_t)((uint16_t)((uint16_t)(0x8951 >= (-1)) >> (uint16_t)((int8_t)(g_65 = ((int8_t)func_16(l_22, ((uint16_t)(l_32 = (l_22 && (g_2 || ((0U ^ ((uint16_t)(((((uint8_t)((uint8_t)(+g_3) << (uint8_t)3) >> (uint8_t)0) <= 0U) <= g_3) <= 0xAF9CA3EA) + (uint16_t)g_2)) == l_22)))) << (uint16_t)g_3), l_22, g_2, g_2) >> (int8_t)g_2)) >> (int8_t)l_22)) >> (uint16_t)2)) <= g_2) & 0U)) | l_22) || l_32) > g_2) ^ 1) + (uint8_t)l_22));
return g_66;
}
/* ------------------------------------------ */
/*
* reads : g_2 g_3
* writes: g_62 g_3
*/
static int8_t func_16(const int16_t p_17, uint8_t p_18, int8_t p_19, int32_t p_20, uint32_t p_21)
{ /* block id: 3 */
uint32_t l_35 = 4294967293U;
uint16_t l_41 = 1U;
int32_t l_61 = 0xBF2A6BC6;
int32_t l_63 = 4;
int32_t l_64 = 0x4FFA2B87;
g_3 = (((uint8_t)(((l_35 && ((int16_t)(!l_35) + (int16_t)((uint16_t)(((0x6D23205E <= (l_64 = ((l_63 = ((l_41 = p_19) || ((int32_t)((int16_t)(g_62 = ((int8_t)(((((uint8_t)((int16_t)((p_19 = p_20) ^ 0U) - (int16_t)(((int16_t)0xCCFE >> (int16_t)8) < g_2)) << (uint8_t)((uint16_t)(((l_61 = ((int8_t)((int8_t)(!p_18) - (int8_t)g_3) >> (int8_t)5)) && l_35) & p_20) << (uint16_t)1)) != 0xD9) <= l_35) > 1) % (int8_t)g_2)) * (int16_t)p_18) + (int32_t)p_20))) & l_35))) == p_17) || p_20) << (uint16_t)g_2))) == g_3) && 0x412C2192) - (uint8_t)9) > p_21);
return p_21;
}
/* ---------------------------------------- */
int main (void)
{
int print_hash_value = 0;
platform_main_begin();
func_1();
csmith_sink_ = g_2;
csmith_sink_ = g_3;
csmith_sink_ = g_62;
csmith_sink_ = g_65;
csmith_sink_ = g_66;
platform_main_end(0,0);
return 0;
}
/************************ statistics *************************
XXX max struct depth: 0
breakdown:
depth: 0, occurrence: 12
XXX total union variables: 0
XXX max expression depth: 35
breakdown:
depth: 1, occurrence: 4
depth: 35, occurrence: 2
XXX total number of pointers: 0
XXX times a non-volatile is read: 41
XXX times a non-volatile is write: 12
XXX times a volatile is read: 0
XXX times read thru a pointer: 0
XXX times a volatile is write: 0
XXX times written thru a pointer: 0
XXX times a volatile is available for access: 0
XXX percentage of non-volatile access: 100
XXX forward jumps: 0
XXX backward jumps: 0
XXX stmts: 4
XXX max block depth: 0
breakdown:
depth: 0, occurrence: 4
XXX percentage a fresh-made variable is used: 22.6
XXX percentage an existing variable is used: 77.4
********************* end of statistics **********************/
/*
* This is a RANDOMLY GENERATED PROGRAM.
*
* Generator: csmith 2.3.0
* Git version: 30dccd7
* Options: --output B.c --no-argc --no-arrays --no-bitfields --no-checksum --no-comma-operators --no-compound-assignment --no-divs --no-float --no-structs --no-unions --no-packed-struct --no-pointers --no-builtins --no-math64 --no-longlong --no-checksum --no-safe-math --max-block-size 2 --max-funcs 4
* Seed: 2537522965051140364
*/
#define NO_LONGLONG
#define int8_t signed char
#define uint8_t unsigned char
#define int16_t short
#define uint16_t unsigned short
#define int32_t int
#define uint32_t unsigned
#define int64_t long long
#define uint64_t unsigned long long
static inline void
platform_main_end (uint64_t x, int flag)
{
#ifndef NOT_PRINT_CHECKSUM
if (!flag) {
#ifdef NO_PRINTF
int i;
my_puts ("checksum = ");
for (i=0; i<16; i++) {
put_hex (x & 0xf);
x >>= 4;
}
putchar ('\n');
#else
printf ("checksum = %llx\n", x);
#endif
}
#endif
}
volatile uint32_t csmith_sink_ = 0;
static long __undefined;
/* --- Struct/Union Declarations --- */
/* --- GLOBAL VARIABLES --- */
static uint32_t g_6 = 0x964A53AA;
static uint32_t g_74 = 4294967292U;
static int16_t g_75 = 3;
static uint16_t g_79 = 1U;
static uint32_t g_95 = 0U;
static int32_t g_106 = 0x4023A1BF;
static int32_t g_116 = 0x105BA918;
static int32_t g_139 = 0xB1B1B7DE;
static uint16_t g_168 = 0x385D;
static int16_t g_204 = 5;
static uint16_t g_209 = 0x5A12;
static int32_t g_233 = (-1);
static uint16_t g_268 = 0U;
static volatile int32_t g_296 = 2;/* VOLATILE GLOBAL g_296 */
static uint32_t g_298 = 6U;
/* --- FORWARD DECLARATIONS --- */
static int32_t func_1(void);
static uint8_t func_8(uint32_t p_9, uint32_t p_10, int32_t p_11, int16_t p_12, int8_t p_13);
static int32_t func_15(uint32_t p_16, uint32_t p_17, int8_t p_18, uint16_t p_19);
static int8_t func_20(uint16_t p_21, uint32_t p_22, uint32_t p_23);
/* --- FUNCTIONS --- */
/* ------------------------------------------ */
/*
* reads : g_6 g_74 g_75 g_79 g_95 g_116 g_106 g_139 g_168 g_204 g_209 g_233 g_268 g_296
* writes: g_75 g_79 g_95 g_106 g_74 g_116 g_139 g_168 g_204 g_209 g_233 g_268 g_298
*/
static int32_t func_1(void)
{ /* block id: 0 */
uint32_t l_7 = 0x3099CFE0;
int32_t l_14 = 0x7BEDEDB5;
int32_t l_36 = (-5);
int32_t l_37 = 0xD76270E7;
int32_t l_38 = (-1);
uint32_t l_39 = 0x26A9D9E1;
uint8_t l_203 = 0x4E;
uint32_t l_234 = 0U;
g_139 = ((int8_t)((int8_t)(l_7 = g_6) - (int8_t)func_8(g_6, l_14, (g_79 = func_15(g_6, g_6, func_20(((((int16_t)((int8_t)l_14 >> (int8_t)1) * (int16_t)((int8_t)((int8_t)((l_38 = ((l_37 = ((uint32_t)((uint16_t)((l_36 = g_6) > g_6) + (uint16_t)1) - (uint32_t)g_6)) > 0x53A38D06)) >= l_14) << (int8_t)0) % (int8_t)g_6)) | g_6) == l_39), l_39, g_6), g_6)), l_14, l_14)) - (int8_t)1U);
if (((uint32_t)g_6 - (uint32_t)l_36))
{ /* block id: 59 */
int8_t l_161 = 0xCE;
g_116 = ((int16_t)(g_106 || 0xB671) >> (int16_t)9);
if ((l_37 = ((uint16_t)g_6 + (uint16_t)(9U != ((uint8_t)(g_168 = ((int8_t)(-(uint32_t)((int8_t)(((uint16_t)(((int8_t)((uint8_t)0x57 * (uint8_t)(((g_139 && (((g_106 == ((int8_t)((l_37 < l_161) < ((uint32_t)(((int32_t)(g_95 >= ((int32_t)(g_116 = (g_74 & l_161)) - (int32_t)4294967290U)) - (int32_t)1) || 9U) + (uint32_t)l_161)) >> (int8_t)4)) != l_161) <= l_38)) || 0x3E) <= 0x93B69C79)) % (int8_t)g_106) == 0U) + (uint16_t)3) || g_75) << (int8_t)6)) >> (int8_t)5)) + (uint8_t)g_75)))))
{ /* block id: 64 */
int32_t l_171 = 1;
g_106 = ((uint8_t)l_171 << (uint8_t)4);
}
else
{ /* block id: 66 */
return g_168;
}
}
else
{ /* block id: 69 */
uint8_t l_201 = 250U;
int32_t l_205 = 0x5094A51A;
int32_t l_215 = 6;
int32_t l_287 = 0xAE1B71C9;
int32_t l_297 = 0;
if (g_106)
{ /* block id: 70 */
int16_t l_184 = 0x6D60;
int16_t l_202 = (-9);
int32_t l_225 = 0x87346C39;
int32_t l_235 = 0x077A8CD5;
if (((((g_6 != ((int16_t)((uint32_t)g_139 - (uint32_t)(l_205 = (g_204 = (g_74 = ((int32_t)((int32_t)(((l_14 = ((uint8_t)(l_38 = ((int16_t)l_184 + (int16_t)g_6)) % (uint8_t)((int16_t)(l_202 = ((int16_t)((((int8_t)((uint8_t)(((int16_t)(l_37 = (((int32_t)((((uint16_t)0x42E7 << (uint16_t)(l_184 && 0xF7E8)) > (((uint8_t)l_184 >> (uint8_t)3) && g_116)) <= l_201) + (int32_t)g_79) <= g_95)) >> (int16_t)l_184) < 0x52EA) - (uint8_t)g_116) * (int8_t)l_201) & 0xBA) | 0) * (int16_t)0x072C)) - (int16_t)1U))) != l_203) == g_79) % (int32_t)g_74) + (int32_t)g_95))))) * (int16_t)l_39)) != g_139) == g_75) != g_116))
{ /* block id: 78 */
g_116 = (-3);
}
else
{ /* block id: 80 */
for (g_95 = 0; (g_95 <= 11); g_95 += 1)
{ /* block id: 83 */
const int32_t l_208 = 0x5ADCE77D;
g_209 = (l_208 <= g_168);
}
}
l_38 = (l_235 = (!((uint8_t)((int8_t)(((l_215 <= ((int16_t)(249U ^ (((uint16_t)(((int16_t)(g_74 || (~((int8_t)(g_233 = ((((l_225 = l_37) || g_204) && g_106) ^ ((int8_t)(((int8_t)g_75 % (int8_t)((int16_t)g_139 >> (int16_t)12)) ^ (-(uint16_t)(g_79 && g_6))) >> (int8_t)g_6))) << (int8_t)3))) + (int16_t)1U) <= 0xE64536AC) * (uint16_t)g_204) == g_116)) * (int16_t)g_75)) <= 0xE7461C8C) != l_184) << (int8_t)3) >> (uint8_t)l_234)));
}
else
{ /* block id: 91 */
return l_205;
}
if (((uint32_t)g_79 - (uint32_t)g_74))
{ /* block id: 94 */
uint32_t l_255 = 0x295DAE69;
int32_t l_269 = 0xEBDA9155;
l_205 = ((int32_t)(((int16_t)(((int8_t)((~(((int16_t)((l_205 && g_116) == ((int8_t)((uint16_t)((g_106 = (((uint8_t)((int16_t)(g_204 = l_255) * (int16_t)((l_269 = ((int32_t)((l_201 | (((0x62 | (g_209 | ((((uint16_t)((int8_t)((uint8_t)(g_268 = (((((uint8_t)((int8_t)(l_215 > l_255) % (int8_t)g_233) - (uint8_t)0xBC) < 1U) || (-1)) >= g_116)) % (uint8_t)g_95) % (int8_t)g_75) << (uint16_t)l_255) && g_79) <= (-1)))) || 0xD10CE58A) >= l_39)) & l_255) % (int32_t)l_255)) && g_139)) + (uint8_t)0x85) && 4294967295U)) | l_201) + (uint16_t)0xD827) * (int8_t)g_6)) + (int16_t)l_201) < g_233)) && 0x87BBF4A9) << (int8_t)1) == g_168) * (int16_t)g_95) && g_268) + (int32_t)l_234);
g_116 = g_139;
}
else
{ /* block id: 101 */
uint32_t l_277 = 4294967295U;
g_116 = ((uint8_t)(g_298 = ((l_297 = ((uint8_t)(~((uint16_t)(((g_106 = (l_277 = 0x7E71CC03)) >= (+(((((uint8_t)(l_203 ^ 4U) * (uint8_t)((int8_t)((uint8_t)((uint8_t)(l_205 = l_234) * (uint8_t)0U) + (uint8_t)((l_287 = (l_14 = g_139)) >= (0 <= ((uint16_t)7U >> (uint16_t)11)))) << (int8_t)1)) == ((uint32_t)((int8_t)((uint32_t)((0xECE6 > l_201) & g_168) - (uint32_t)g_6) % (int8_t)l_201) + (uint32_t)g_296)) || g_204) == 0x3FA2BBC1))) != 0x824737F3) << (uint16_t)g_168)) >> (uint8_t)l_37)) < g_204)) - (uint8_t)l_215);
}
}
return l_36;
}
/* ------------------------------------------ */
/*
* reads : g_79 g_6 g_74 g_75 g_95 g_116
* writes: g_95 g_106 g_74 g_75 g_116
*/
static uint8_t func_8(uint32_t p_9, uint32_t p_10, int32_t p_11, int16_t p_12, int8_t p_13)
{ /* block id: 25 */
uint32_t l_98 = 1U;
int32_t l_107 = 0x1B5D7EC3;
int32_t l_108 = 1;
uint32_t l_130 = 0U;
int8_t l_132 = 0x9F;
l_108 = ((uint8_t)p_13 % (uint8_t)(((uint8_t)((int8_t)((uint16_t)((((l_107 = ((uint16_t)p_10 << (uint16_t)((((-(int8_t)(((int8_t)(p_10 ^ ((g_95 = ((int8_t)0x6C >> (int8_t)2)) ^ ((int16_t)(((g_79 <= (-1)) >= l_98) & ((uint8_t)p_12 * (uint8_t)((g_106 = ((((((uint16_t)(((uint16_t)(~l_98) + (uint16_t)p_13) < p_11) * (uint16_t)p_10) > g_6) & 0x87233ED7) ^ g_6) >= 0xE5)) > p_11))) << (int16_t)p_10))) << (int8_t)l_98) & 2)) | p_9) || p_10) | 0x83BD))) < l_98) ^ l_98) == p_13) + (uint16_t)l_98) << (int8_t)3) << (uint8_t)4) && 1));
if (p_9)
{ /* block id: 30 */
for (p_11 = 24; (p_11 == 14); --p_11)
{ /* block id: 33 */
if (p_9)
break;
g_106 = p_10;
}
}
else
{ /* block id: 37 */
for (g_74 = 0; (g_74 > 46); g_74++)
{ /* block id: 40 */
int16_t l_129 = 0xED4C;
for (g_75 = 0; (g_75 < 12); g_75 += 1)
{ /* block id: 43 */
const uint8_t l_131 = 0x0C;
g_106 = (0x7436 && ((((+(g_75 != ((((0x20E1BCB0 & (g_116 = g_95)) | (4 > (((int16_t)((int16_t)(((uint16_t)((uint32_t)((uint32_t)(((uint16_t)6U - (uint16_t)((((((-1) <= l_129) >= (((((l_130 = l_108) ^ 1) < 1) ^ g_95) <= l_131)) ^ p_10) && 3U) >= l_108)) == p_11) + (uint32_t)p_11) % (uint32_t)p_11) * (uint16_t)p_12) >= 4U) >> (int16_t)g_74) >> (int16_t)15) || l_129))) != 0xE99C) == l_131))) > l_132) != g_79) == l_132));
g_116 = (((uint8_t)((int8_t)(g_116 == p_11) + (int8_t)p_10) - (uint8_t)l_131) ^ l_129);
}
}
for (p_13 = (-19); (p_13 != (-2)); p_13++)
{ /* block id: 52 */
l_108 = g_95;
return l_107;
}
}
return l_107;
}
/* ------------------------------------------ */
/*
* reads : g_6 g_74 g_75
* writes: g_75
*/
static int32_t func_15(uint32_t p_16, uint32_t p_17, int8_t p_18, uint16_t p_19)
{ /* block id: 10 */
uint32_t l_50 = 0x2097756E;
int32_t l_76 = (-1);
if ((l_50 = (p_18 < g_6)))
{ /* block id: 12 */
int8_t l_51 = (-4);
int32_t l_56 = (-3);
int32_t l_77 = 0xD7B9758A;
l_51 = g_6;
l_77 = (l_76 = ((uint16_t)0x0270 * (uint16_t)((int32_t)(g_6 > ((((l_56 = g_6) ^ ((uint8_t)g_6 >> (uint8_t)(p_18 = (g_75 = (0xBB <= (((uint8_t)0xB0 * (uint8_t)(((int8_t)((int8_t)(((int8_t)(~(((((((int16_t)((uint8_t)((uint16_t)(p_19 = (p_17 > l_51)) << (uint16_t)13) - (uint8_t)p_18) << (int16_t)l_50) < g_6) ^ 0x88841F9F) && g_74) > p_16) && 0x6485393F)) + (int8_t)g_74) >= 4U) * (int8_t)p_16) >> (int8_t)1) & p_17)) == p_16)))))) & l_50) && g_75)) - (int32_t)g_74)));
}
else
{ /* block id: 20 */
uint32_t l_78 = 4294967293U;
l_78 = 0xA659E808;
}
return p_18;
}
/* ------------------------------------------ */
/*
* reads : g_6
* writes:
*/
static int8_t func_20(uint16_t p_21, uint32_t p_22, uint32_t p_23)
{ /* block id: 5 */
uint16_t l_46 = 0x91CB;
int32_t l_47 = 0x1CAF1E2C;
int32_t l_48 = 0xE7BAA9D7;
int32_t l_49 = 0x3FD90538;
l_49 = (((int16_t)(p_22 != (((int8_t)((l_46 ^ ((((((l_47 = 1U) != ((g_6 >= l_46) >= (0U & (g_6 | p_23)))) < ((l_48 = (0x24B13B10 <= p_23)) > p_23)) == p_23) ^ l_46) || g_6)) & p_23) % (int8_t)g_6) | 0)) >> (int16_t)l_46) ^ l_46);
return g_6;
}
/* ---------------------------------------- */
int main (void)
{
int print_hash_value = 0;
platform_main_begin();
func_1();
csmith_sink_ = g_6;
csmith_sink_ = g_74;
csmith_sink_ = g_75;
csmith_sink_ = g_79;
csmith_sink_ = g_95;
csmith_sink_ = g_106;
csmith_sink_ = g_116;
csmith_sink_ = g_139;
csmith_sink_ = g_168;
csmith_sink_ = g_204;
csmith_sink_ = g_209;
csmith_sink_ = g_233;
csmith_sink_ = g_268;
csmith_sink_ = g_296;
csmith_sink_ = g_298;
platform_main_end(0,0);
return 0;
}
/************************ statistics *************************
XXX max struct depth: 0
breakdown:
depth: 0, occurrence: 55
XXX total union variables: 0
XXX max expression depth: 40
breakdown:
depth: 1, occurrence: 34
depth: 2, occurrence: 9
depth: 3, occurrence: 2
depth: 5, occurrence: 1
depth: 21, occurrence: 1
depth: 25, occurrence: 1
depth: 29, occurrence: 1
depth: 30, occurrence: 2
depth: 31, occurrence: 2
depth: 34, occurrence: 1
depth: 36, occurrence: 1
depth: 40, occurrence: 1
XXX total number of pointers: 0
XXX times a non-volatile is read: 210
XXX times a non-volatile is write: 65
XXX times a volatile is read: 1
XXX times read thru a pointer: 0
XXX times a volatile is write: 0
XXX times written thru a pointer: 0
XXX times a volatile is available for access: 2
XXX percentage of non-volatile access: 99.6
XXX forward jumps: 0
XXX backward jumps: 0
XXX stmts: 38
XXX max block depth: 4
breakdown:
depth: 0, occurrence: 10
depth: 1, occurrence: 10
depth: 2, occurrence: 13
depth: 3, occurrence: 4
depth: 4, occurrence: 1
XXX percentage a fresh-made variable is used: 20.5
XXX percentage an existing variable is used: 79.5
********************* end of statistics **********************/
/*
* This is a RANDOMLY GENERATED PROGRAM.
*
* Generator: csmith 2.3.0
* Git version: 30dccd7
* Options: --output C.c --no-argc --no-arrays --no-bitfields --no-checksum --no-comma-operators --no-compound-assignment --no-divs --no-float --no-structs --no-unions --no-packed-struct --no-pointers --no-builtins --no-math64 --no-longlong --no-checksum --no-safe-math --max-block-size 4 --max-funcs 2
* Seed: 4773875934381650930
*/
#define NO_LONGLONG
#define int8_t signed char
#define uint8_t unsigned char
#define int16_t short
#define uint16_t unsigned short
#define int32_t int
#define uint32_t unsigned
#define int64_t long long
#define uint64_t unsigned long long
static inline void
platform_main_end (uint64_t x, int flag)
{
#ifndef NOT_PRINT_CHECKSUM
if (!flag) {
#ifdef NO_PRINTF
int i;
my_puts ("checksum = ");
for (i=0; i<16; i++) {
put_hex (x & 0xf);
x >>= 4;
}
putchar ('\n');
#else
printf ("checksum = %llx\n", x);
#endif
}
#endif
}
volatile uint32_t csmith_sink_ = 0;
static long __undefined;